יצירת טקסט באמצעות Gemini API

Gemini API יכול ליצור פלט טקסט מסוגים שונים של קלט, כולל טקסט, תמונות, וידאו ואודיו. אפשר להשתמש כולל:

  • כתיבה יצירתית
  • תיאור או פירוש של נכסי מדיה
  • השלמת טקסט
  • סיכום של טקסט חופשי
  • תרגום בין שפות
  • צ'אט בוטים
  • תרחישים חדשים לדוגמה

במדריך הזה נראה לכם איך ליצור טקסט באמצעות generateContent ו- streamGenerateContent ממשקי API ו-SDK בצד השרת, לפי בחירתכם. ההתמקדות היא בפלט טקסט מתוך טקסט בלבד וגם קלט של טקסט ותמונה. מידע נוסף על הנחיות רב-אופניים עם קובצי וידאו ואודיו, הצגת הנחיות עם קובצי מדיה.

לפני שמתחילים: מגדירים את הפרויקט ואת מפתח ה-API

לפני הקריאה ל-Gemini API, צריך להגדיר את הפרויקט ולהגדיר במפתח ה-API.

יצירת טקסט מקלט טקסט בלבד

הדרך הפשוטה ביותר ליצור טקסט באמצעות Gemini API היא לספק את המודל באמצעות קלט טקסט בלבד, כמו בדוגמה הבאה:

model = genai.GenerativeModel("gemini-1.5-flash")
response = model.generate_content("Write a story about a magic backpack.")
print(response.text)

במקרה כזה, ההנחיה ("כתיבת סיפור על תיק גב קסום") לא כולל דוגמאות לפלט, הוראות מערכת או פרטי פורמט. מדובר באפס שוטים. . בתרחישים מסוימים, one-shot או הנחיה עם few-shot עשויה להפיק פלט שתואם יותר לציפיות של המשתמשים. במקרים מסוימים, כדאי גם לספק הוראות המערכת כדי לעזור למודל להבין את המשימה או לפעול לפי הנחיות ספציפיות.

יצירת טקסט מקלט טקסט ותמונה

ב-Gemini API יש תמיכה קלט רב-אופני שמשלבים טקסט עם קובצי מדיה. הדוגמה הבאה מראה איך ליצור טקסט מקלט טקסט ותמונה:

import PIL.Image

model = genai.GenerativeModel("gemini-1.5-flash")
organ = PIL.Image.open(media / "organ.jpg")
response = model.generate_content(["Tell me about this instrument", organ])
print(response.text)

בדומה להנחיות בטקסט בלבד, הנחיות מרובות מודלים יכולות לכלול גישות שונות ושיפורים. בהתאם לפלט של הדוגמה הזו, יכול להיות להוסיף שלבים להנחיה או להיות ספציפיים יותר בהוראות. למידע נוסף, ראו אסטרטגיות ליצירת הנחיות לקבצים.

איך יוצרים זרם טקסט

כברירת מחדל, המודל מחזיר תשובה אחרי השלמת הטקסט כולו ליצירת שפה. אפשר להשיג אינטראקציות מהר יותר אם לא מחכים את כל התוצאה, ובמקום זאת להשתמש בסטרימינג כדי לטפל בתוצאות חלקיות.

הדוגמה הבאה מראה איך להטמיע סטרימינג באמצעות השיטה streamGenerateContent ליצור טקסט מהנחיה של טקסט בלבד.

model = genai.GenerativeModel("gemini-1.5-flash")
response = model.generate_content("Write a story about a magic backpack.", stream=True)
for chunk in response:
    print(chunk.text)
    print("_" * 80)

איך יוצרים צ'אט אינטראקטיבי

אפשר להשתמש ב-Gemini API כדי ליצור חוויות צ'אט אינטראקטיביות למשתמשים. שימוש בתכונת הצ'אט ב-API מאפשרת לאסוף מספר סבבים של שאלות ותגובות, כדי לאפשר למשתמשים להתקדם בהדרגה לקבלת תשובות או לקבל עזרה בבעיות מרובות חלקים. התכונה הזו אידיאלית לאפליקציות שדורשות תקשורת מתמשכת, כמו צ'אט בוטים, מורים פרטיים אינטראקטיביים או תמיכת לקוחות מהעוזרים שלהם.

הקוד לדוגמה הבא מציג הטמעה בסיסית של Chat:

model = genai.GenerativeModel("gemini-1.5-flash")
chat = model.start_chat(
    history=[
        {"role": "user", "parts": "Hello"},
        {"role": "model", "parts": "Great to meet you. What would you like to know?"},
    ]
)
response = chat.send_message("I have 2 dogs in my house.")
print(response.text)
response = chat.send_message("How many paws are in my house?")
print(response.text)

הגדרה של יצירת טקסט

כל הנחיה ששולחים למודל כוללת פרמטרים לשלוט באופן שבו המודל יוצר תשובות. אפשר להשתמש GenerationConfig עד להגדיר את הפרמטרים האלה. אם לא מגדירים את הפרמטרים, המודל משתמשת באפשרויות ברירת מחדל, שיכולות להשתנות בהתאם למודל.

בדוגמה הבאה אפשר לראות איך להגדיר כמה מהאפשרויות הזמינות.

model = genai.GenerativeModel("gemini-1.5-flash")
response = model.generate_content(
    "Tell me a story about a magic backpack.",
    generation_config=genai.types.GenerationConfig(
        # Only one candidate for now.
        candidate_count=1,
        stop_sequences=["x"],
        max_output_tokens=20,
        temperature=1.0,
    ),
)

print(response.text)

candidateCount מציין את מספר התגובות שנוצרו שיוחזרו. נכון לעכשיו, אפשר להגדיר את הערך הזה רק כ-1. אם המדיניות לא מוגדרת, ברירת המחדל תהיה 1.

stopSequences מציין את הקבוצה של רצפי תווים (עד 5) שיעשו שימוש להפסיק את יצירת הפלט. אם צוין, ה-API יופסק במראה הראשון של stop_sequence. רצף העצירה לא ייכלל תשובה.

maxOutputTokens מגדיר את המספר המקסימלי של אסימונים שניתן לכלול במועמד.

temperature שולט ברנדומיזציה של הפלט. משתמשים בערכים גבוהים יותר כדי לקבל יותר תגובות יצירתיות וערכים נמוכים יותר לתגובות דטרמיניסטיות יותר. ערכים יכול לנוע בין [0.0, 2.0].

אפשר גם להגדיר שיחות ספציפיות ל-generateContent:

response = model.generate_content(
    'Write a story about a magic backpack.',
    generation_config = genai.GenerationConfig(
        max_output_tokens=1000,
        temperature=0.1,
    )
)

כל הערכים שמוגדרים בקריאה הנפרדת לערכים מבוטלים ב-constructor של המודלים.

המאמרים הבאים

במדריך הזה מוסבר איך משתמשים generateContent ו- streamGenerateContent כדי ליצור פלטי טקסט מערכי קלט של טקסט בלבד וטקסט של תמונות. מידע נוסף למידע על יצירת טקסט באמצעות Gemini API, אפשר לעיין במקורות המידע הבאים:

  • הצגת הנחיות עם קובצי מדיה: Gemini API תומך בהנחיות באמצעות נתונים של טקסט, תמונה, אודיו ווידאו, שנקרא 'הנחיות מרובות מצבים'.
  • הוראות מערכת: מערכת מאפשרות לכם להשפיע על אופן הפעולה של המודל לצרכים ולתרחישים לדוגמה.
  • הנחיות בטיחות: לפעמים בינה מלאכותית גנרטיבית מודלים שמקורם בפלט לא צפוי, כמו פלט לא מדויק מוטה או פוגעני. חשוב מאוד לבצע הערכה לאחר עיבוד והערכה אנושית להגביל את הסיכון לנזק מפלט כזה.