עם התמיכה של OpenAI במודלים עד GPT-4 Turbo, מפתחים Python זוכים להזדמנות מדהימה לחקור פונקציות AI מתקדמות. הדרכה זו מספקת מבט מעמיק על איך לשלב את ממשק ChatGPT API בתוכניות Python שלך, מדריך אותך דרך שלבי ההתקנה הראשונים ומוביל לשימוש יעיל ב-API.
ChatGPT API מתייחס לממשק התכנותי שמאפשר למפתחים לתקשר עם ולהשתמש במודלים GPT ליצירת תגובות שיחה. אך זה למעשה רק API הכולל של OpenAI שעובד עבור כל המודלים שלהם.
כש-GPT-4 Turbo הוא יותר מתקדם וזול פי שלושה מ-GPT-4, לא היה מעולם זמן טוב יותר לנצל את ה-API העוצמתי הזה ב-Python, אז בואו נתחיל!
הגדרת סביבת העבודה שלך
כדי להתחיל, נדרך אותך בהגדרת סביבת העבודה שלך לעבודה עם שירותי OpenAI API בפייתון. הצעדים הראשונים כוללים התקנת הספריות הנחוצות, הגדרת גישה ל-API, וטיפול במפתחות ה-API ובאימות.
התקנת ספריות פייתון הנחוצות
לפני שאתה מתחיל, וודא שיש לך את פייתון התוכנה מותקן במערכת שלך. אנו ממליצים להשתמש בסביבת וירטואלית כדי לשמור על הכל מסודר. אתה יכול ליצור סביבה וירטואלית עם הפקודה הבאה:
python -m venv chatgpt_env
הפעל את הסביבה הוירטואלית על ידי הרצת:
chatgpt_env\Scripts\activate
(Windows)source chatgpt_env/bin/activate
(macOS או Linux)
לאחר מכן, תצטרך להתקין את הספריות הנדרשות בפייתון שכוללות את ספריית הלקוח של OpenAI בפייתון לבзаירה עם שירותי OpenAI API, ואת חבילת python-dotenv לטיפול בתצורה. כדי להתקין את שתי החבילות, הריץ את הפקודה הבאה:
pip install openai python-dotenv
הגדרת גישה ל-OpenAI API
כדי לבצע בקשת OpenAI API, עליך להירשם לראשונה בפלטפורמת OpenAI ולייצר את המפתח ה-API הייחודי שלך. בצע את הצעדים הבאים:
- בקר בדף API Key של OpenAI והירשם חדש, או התחבר אם יש לך כבר חשבון.
- ברגע שאתה מחובר, עבור לסעיף מפתחות API ולחץ על צור מפתח סודי חדש.
- העתק את המפתח ה-API שנוצר כדי להשתמש בו בהמשך. אחרת, יש לך ליצור מפתח API חדש אם אתה מאבד אותו. לא תוכל לצפות במפתחות API דרך אתר OpenAI.
דף מפתחות API של OpenAI
מפתח API שנוצר שניתן להשתמש בו כעת
מפתח API ואימות
לאחר שקיבלת את המפתח ה-API שלך, אנו ממליצים לאחסן אותו כמשתנה סביבה למטרות אבטחה. כדי לנהל משתנים סביבה, השתמש בחבילה python-dotenv. כדי להגדיר משתנה סביבה המכיל את המפתח ה-API שלך, בצע את השלבים הבאים:
-
צור קובץ בשם
.env
בספריית הפרויקט שלך. -
הוסף את השורה הבאה לקובץ
.env
, והחלף אתyour_api_key
במפתח ה-API האמיתי שהעתקת קודם:CHAT_GPT_API_KEY=your_api_key
. -
בקוד הפייתון שלך, הטען את המפתח ה-API מהקובץ
.env
באמצעות פונקציתload_dotenv
מהחבילה python-dotenv:
import openai
from openai import OpenAI
import os
from dotenv import load_dotenv
# הטענת המפתח ה-API מהקובץ .env
load_dotenv()
client = OpenAI(api_key=os.environ.get("CHAT_GPT_API_KEY"))
הערה: בגרסה האחרונה של ספריית Python של OpenAI, עליך ליצור משתמש של OpenAI כדי לבצע שיחות API, כפי שמוצג להלן. זו שינוי מגרסאות קודמות, שם הייתם משתמשים ישירות בשיטות גלובליות.
עכשיו הוספת את מפתח ה-API שלך והסביבה שלך מוכנה לשימוש ב-API של OpenAI ב-Python. בחלקים הבאים של המאמר הזה, נחקור את האינטראקציה עם ה-API ובניית אפליקציות צ'אט באמצעות כלי חזק זה.
זכור להוסיף את קטע הקוד לעיל לכל קטע קוד למטה לפני הרצתו.
שימוש ב-API של OpenAI ב-Python
לאחר טעינת ה-API מקובץ .env
, ניתן להתחיל להשתמש בו בתוך Python. כדי להשתמש ב-API של OpenAI ב-Python, ניתן לבצע שיחות API באמצעות אובייקט הלקוח. לאחר מכן ניתן להעביר סדרה של הודעות כקלט ל-API ולקבל הודעה מיוצרת על ידי המודל כפלט.
יצירת בקשה פשוטה של ChatGPT
-
ודא שביצעת את השלבים הקודמים: יצירת סביבה וירטואלית, התקנת הספריות ההכרחיות, ויצירת מפתח הסודי של OpenAI וקובץ
.env
במדריך הפרויקט. -
השתמש בקטע הקוד הבא כדי להגדיר בקשה פשוטה של ChatGPT:
# יצירת מילולית
chat_completion = client.chat.completions.create(
model="gpt-4",
messages=[{"role": "user", "content": "query"}]
)
print(chat_completion.choices[0].message.content)
כאן, client.chat.completions.create
הוא קריאה לשיטה על אובייקט client
. התכונה chat
משתמשת בפונקציות ספציפיות לשיחה של ה-API, ו-completions.create
היא שיטה המבקשת מהמודל הבינה המלאכותית ליצור תגובה או השלמה על סמך הקלט שמסופק.
החלף את query
בפרוט שברצונך להריץ, ואל תהסס להשתמש בכל מודל GPT נתמך במקום ה-GPT-4 שנבחר לעיל.
ניהול שגיאות
במהלך בקשות, עשויות להתרחש סוגי בעיות שונות, כולל בעיות חיבור רשת, חריגה מקסום השידור, או מספר תגובה מצב שאינו סטנדרטי. לכן, חשוב לנהל באופן תקין את מספרי התגובה הללו. אנו יכולים להשתמש בפיתוח ה-Python של try
ו-except
בלוקים עבור שמירת זרימת התכנית וניהול שגיאות טוב:
# נסה ליצור מילולית
try:
chat_completion = client.chat.completions.create(
model="gpt-4",
messages=[{"role": "user", "content": "query"}],
temperature=1,
max_tokens=150 # התאם את מספר הקידומות כצורך
)
print(chat_completion.choices[0].message.content)
except openai.APIConnectionError as e:
print("The server could not be reached")
print(e.__cause__)
except openai.RateLimitError as e:
print("A 429 status code was received; we should back off a bit.")
except openai.APIStatusError as e:
print("Another non-200-range status code was received")
print(e.status_code)
print(e.response)
הערה: עליך להיות ברשותך אשראי זמין כדי להשתמש בכל מודל של API של OpenAI. אם עברו יותר משלושה חודשים מאז יצירת החשבון שלך, סביר שהאשראי החינמי שלך פג תוקף, ותצטרך לרכוש אשראי נוסף (מינימום $5).
הנה כמה דרכים בהן אפשר להתאים דרכי הבקשה שלך נוספות:
- מטריצות מקסימליות. מגבילים את הפלט המקסימלי האפשרי לפי הצרכים שלך על ידי הגדרת הפרמטר
max_tokens
. זו יכולה להיות צעד לחסות בעלות, אך שים לב שזה פשוט חותך את הטקסט המיוצר מלעבור את הגבול, לא מקטין את הפלט הכולל. - טמפרטורה. שנה את פרמטר הטמפרטורה כדי לשלוט באקראיות. (ערכים גבוהים יותר גורמים לתגובות יותר שונות, וערכים נמוכים יותר מייצרים תשובות יותר עקביות.)
אם פרמטר כלשהו אינו מוגדר באופן ידני, הוא משתמש בערך ברירת המחדל של המודל המתאים, כמו 0 – 7 ו-1 ל-GPT-3.5-turbo ו-GPT-4 בהתאמה.
מלבד הפרמטרים לעיל, יש דרכים רבות נוספות להתאמה ולהגדרה שאפשר לעשות כדי לנצל את היכולות של GPT בדיוק כפי שאתה רוצה. מומלץ ללמוד תיעוד API של OpenAI לצורך התייחסות.
עם זאת, עדיין נדרשות הפניות יעילות וקשורות להקשר, לא משנה כמה הגדרות פרמטר נעשות.
טכניקות מתקדמות בשילוב API
בסעיף זה, נחקור טכניקות מתקדמות לשילוב ה-API של OpenAI בפרויקטים שלך ב-Python, עם דגש על אוטומציה של משימות, שימוש בבקשות Python להשגת נתונים וניהול בקשות API בקנה מידה גדול.
אוטומציה של משימות עם ה-API של OpenAI
כדי להפוך את הפרויקט שלך ב-Python ליעיל יותר, תוכל לבצע אוטומציה של מגוון משימות באמצעות ה-API של OpenAI. לדוגמא, אולי תרצה לבצע אוטומציה של יצירת תגובות דואר אלקטרוני, תשובות לתמיכת לקוחות או יצירת תוכן.
הנה דוגמא לאופן שבו ניתן לבצע אוטומציה של משימה באמצעות ה-API של OpenAI:
def automated_task(prompt):
try:
chat_completion = client.chat.completions.create(
model="gpt-4",
messages=[{"role": "user", "content": prompt}],
max_tokens=250
)
return chat_completion.choices[0].message.content
except Exception as e:
return str(e)
# שימוש דוגמא
generated_text = automated_task("Write an short note that's less than 50 words to the development team asking for an update on the current status of the software update")
print(generated_text)
פונקציה זו מקבלת פרמט ומחזירה את הטקסט המופק כפלט.
שימוש בבקשות Python להשגת נתונים
ניתן להשתמש בספריית ה-requests הפופולרית כדי לפעול במפורש עם ה-API של OpenAI מבלי להסתמך על ספריית OpenAI. שיטה זו מעניקה לך שליטה רבה יותר על בקשת GET וגמישות על קריאות ה-API שלך.
הדוגמא הבאה דורשת את ספריית requests (אם אין לך אותה, הפעל קודם pip install requests
):
headers = {
'Content-Type': 'application/json',
'Authorization': f'Bearer {api_key}',
}
data = {
'model': 'gpt-4', # עדכון למודל הרצוי
'messages': [{'role': 'user', 'content': 'Write an interesting fact about Christmas.'}]
}
response = requests.post('https://api.openai.com/v1/chat/completions', headers=headers, json=data)
print(response.json())
קטע הקוד הבא מדגים בקשת POST ל-API של OpenAI, עם ראשי בקשות ונתונים כטיעונים. תשובת ה-JSON יכולה להיפרשת ולשמש בפרויקט ה-Python שלך.
ניהול בקשות API בקנה מידה גדול
כשעובדים עם פרויקטים בקנה מידה גדול, חשוב לנהל ביצועי בקשות API ביעילות. זה יכול להתבצע על ידי שילוב טכניקות כמו חיבור, דופק וזיכרון.
- חיבור. משלבים מספר בקשות לתוך קריאה API אחת, באמצעות פרמטר ה-
n
בספריית OpenAI:n = number_of_responses_needed
. - דופק. יצירת מערכת להגבלת הקצב שבו מבוצעות קריאות API, כדי להימנע משימוש מופרז או המון על ה-API.
- זיכרון. שמירת תוצאות של בקשות API שהושלמו כדי להימנע מקריאות מיותרות לבקשות דומות.
כדי לנהל ביצועי בקשות API ביעילות, עקבו אחרישימוש שלכם והתאמו את ההגדרות שלכם בהתאם. שקולו להשתמש ב-ספריית זמן להוספת עיכובים או זמני ריסוק בין בקשות אם יש צורך.
יישום טכניקות מתקדמות אלו בפרויקטים Python שלכם יעזור לכם להשיג את המרב מ-API של OpenAI תוך הבטחת אינטגרציה יעילה ומתקדמת של API.
יישומים פרקטיים: API של OpenAI בפרויקטים בעולם האמיתי
שילוב API של OpenAI בפרויקטים בעולם האמיתי יכול לספק יתרונות רבים. בסעיף זה, נדון בשני יישומים ספציפיים: שילוב ChatGPT בפיתוח אינטרנט ובניית דואטים עם ChatGPT ו-Python.
שילוב ChatGPT בפיתוח אינטרנט
API של OpenAI יכול לשמש ליצירת תוכן אינטראקטיבי ודינאמי מותאם אישית לשאלות או לצרכים של המשתמש. לדוגמה, אפשר להשתמש ב-ChatGPT כדי לייצר תיאורי מוצר מותאמים אישית, ליצור פוסטים בלוג מרתקים, או לענות על שאלות נפוצות בנוגע לשירותים שלך. עם כוחו של API של OpenAI וקצת קוד פייתון, האפשרויות אינן מוגבלות.
קחו בחשבון דוגמה פשוטה זו של שימוש בקריאת API מרשת האחסון האחורי של פייתון:
def generate_content(prompt):
try:
response = client.chat.completions.create(
model="gpt-4",
messages=[{"role": "user", "content": prompt}]
)
return response.choices[0].message.content
except Exception as e:
return str(e)
# השתמש בפונקציה זו ליצירת תוכן
description = generate_content("Write a short description of a hiking backpack")
אז גם אפשר לכתוב קוד כדי לשלב את תיאור
עם ה-HTML וה-JavaScript שלך כדי להציג את התוכן הנוצר באתר האינטרנט שלך.
בניית chatbots עם ChatGPT ו-Python
chatbots המונעים על ידי בינה מלאכותית מתחילים למלא תפקיד חשוב בשיפור חווית המשתמש. על ידי שילוב יכולות עיבוד שפה טבעית של ChatGPT עם Python, אפשר לבנות chatbots שמבינים את ההקשר ומגיבים באופן תבוני לקלט של המשתמש.
קחו בחשבון דוגמה זו לעיבוד קלט משתמש וקבלת תשובה:
def get_chatbot_response(prompt):
try:
response = client.chat.completions.create(
model="gpt-4",
messages=[{"role": "user", "content": prompt}]
)
return response.choices[0].message.content
except Exception as e:
return str(e)
# קבלת קלט משתמש משורת הפקודה
user_input = input("Enter your prompt: ")
response = get_chatbot_response(user_input)
print(response)
אך מאחר שאין לולאה, התוכנית תסתיים לאחר שתרוץ פעם אחת, אז שקלו להוסיף לוגיקה מותנית. לדוגמה, הוספנו לוגיקה מותנית בסיסית שבה התוכנית תמשיך לחפש בקשות משתמש עד שהמשתמש יאמר את המילה הסוף "צא" או "הפסק".
בהתחשב בלוגיקה שהוזכרה, הקוד הסופי המלא שלנו להפעלת chatbot בסמכות API של OpenAI עשוי להיראות כך:
from openai import OpenAI
import os
from dotenv import load_dotenv
# טעינת המפתח ה-API מקובץ .env
load_dotenv()
client = OpenAI(api_key=os.environ.get("CHAT_GPT_API_KEY"))
def get_chatbot_response(prompt):
try:
response = client.chat.completions.create(
model="gpt-4",
messages=[{"role": "user", "content": prompt}]
)
return response.choices[0].message.content
except Exception as e:
return str(e)
while True:
user_input = input("You: ")
if user_input.lower() in ["exit", "quit"]:
print("Chat session ended.")
break
response = get_chatbot_response(user_input)
print("ChatGPT:", response)
ככה זה נראה כשמריצים אותו בתיבת הפקודות של Windows.
בתקווה, הדוגמאות האלה יעזרו לך להתחיל לחקור עם ה-AI של ChatGPT. בסך הכל, OpenAI פתחה הזדמנויות עצומות למפתחים ליצור מוצרים חדשים ומרגשים באמצעות ה-API שלהם, והאפשרויות הן אינסופיות.
מגבלות ומחירים של API של OpenAI
למרות ש-API של OpenAI הוא עוצמתי, יש כמה מגבלות:
-
אחסון נתונים. OpenAI שומרת על הנתונים שלך ב-API למשך 30 יום, ושימוש ב-API משמעותי סכמת איכסון נתונים. היזהר בנתונים שאתה שולח.
-
קיבולת מודל. למודלים שיחה יש גבול מזערי של זנבות. (לדוגמה, GPT-3 תומך ב-4096 זנבות.) אם בקשת API עוברת את הגבול הזה, תצטרך לקצץ או להשמיט טקסט.
- מחירים. API של OpenAI אינו זמין בחינם ומשמש מערכת מחירים משלה, נפרדת מתשלומי המנוי למודלים. למידע נוסף על המחירים, ראה פרטים המחירים של OpenAI. (שוב, GPT-4 Turbo זול פי שלושה מ-GPT-4!)
מסקנה
לחקור את הפוטנציאל של API מודל ChatGPT ב-Python יכול להביא להתקדמות משמעותית ביישומים רבים כגון תמיכה ללקוחות, סביבות עוזרים וירטואליים וייצור תוכן. על ידי שילוב חיבור זה חזק לפרויקטים שלך, תוכל לנצל את היכולות של מודלי GPT באופן חלק ביישומים ה-Python שלך.
אם נהניתם מהדרכה זו, אולי תיהנו גם מאלו:
Source:
https://www.sitepoint.com/python-build-ai-tools-openai-api/