יצירת טקסט

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

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

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

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

import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI("GEMINI_API_KEY");

const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });

const prompt = "Explain how AI works";

const result = await model.generateContent(prompt);
console.log(result.response.text());

במקרה כזה, ההנחיה ('Explain how AI works') לא כוללת דוגמאות לפלט, הוראות למערכת או מידע על פורמט. זוהי גישה של הנחיה ישירה (zero-shot). בתרחישי שימוש מסוימים, הנחיה חד-פעמית או לכמה הנחיות עשויה להניב פלט שמתאים יותר לציפיות של המשתמשים. במקרים מסוימים, כדאי גם לספק הוראות מערכת כדי לעזור למודל להבין את המשימה או לפעול לפי הנחיות ספציפיות.

יצירת טקסט ממידע שמוזן כטקסט ותמונה

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

import { GoogleGenerativeAI } from "@google/generative-ai";
import * as fs from 'node:fs';

const genAI = new GoogleGenerativeAI("GEMINI_API_KEY");
const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });

function fileToGenerativePart(path, mimeType) {
  return {
    inlineData: {
      data: Buffer.from(fs.readFileSync(path)).toString("base64"),
      mimeType,
    },
  };
}

const prompt = "Describe how this product might be manufactured.";
const imagePart = fileToGenerativePart("/path/to/image.png", "image/png");

const result = await model.generateContent([prompt, imagePart]);
console.log(result.response.text());

יצירת מקור טקסט

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

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

import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI("GEMINI_API_KEY");
const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });

const prompt = "Explain how AI works";

const result = await model.generateContentStream(prompt);

for await (const chunk of result.stream) {
  const chunkText = chunk.text();
  process.stdout.write(chunkText);
}

יצירת שיחת צ'אט

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

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

import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI("GEMINI_API_KEY");
const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
const chat = model.startChat({
  history: [
    {
      role: "user",
      parts: [{ text: "Hello" }],
    },
    {
      role: "model",
      parts: [{ text: "Great to meet you. What would you like to know?" }],
    },
  ],
});

let result = await chat.sendMessage("I have 2 dogs in my house.");
console.log(result.response.text());
let result2 = await chat.sendMessage("How many paws are in my house?");
console.log(result2.response.text());

אפשר גם להשתמש בשידור חי עם צ'אט, כמו בדוגמה הבאה:

import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI("GEMINI_API_KEY");
const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });

const chat = model.startChat({
  history: [
    {
      role: "user",
      parts: [{ text: "Hello" }],
    },
    {
      role: "model",
      parts: [{ text: "Great to meet you. What would you like to know?" }],
    },
  ],
});

let result = await chat.sendMessageStream("I have 2 dogs in my house.");
for await (const chunk of result.stream) {
  const chunkText = chunk.text();
  process.stdout.write(chunkText);
}
let result2 = await chat.sendMessageStream("How many paws are in my house?");
for await (const chunk of result2.stream) {
  const chunkText = chunk.text();
  process.stdout.write(chunkText);
}

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

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

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

import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI("GEMINI_API_KEY");

const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });

const result = await model.generateContent({
    contents: [
        {
          role: 'user',
          parts: [
            {
              text: "Explain how AI works",
            }
          ],
        }
    ],
    generationConfig: {
      maxOutputTokens: 1000,
      temperature: 0.1,
    }
});

console.log(result.response.text());

הוספת הוראות למערכת

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

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

אפשר להגדיר הוראות מערכת כשמאתחלים את המודל:

// Set the system instruction during model initialization
const model = genAI.getGenerativeModel({
  model: "gemini-1.5-flash",
  systemInstruction: "You are a cat. Your name is Neko.",
});

לאחר מכן תוכלו לשלוח בקשות למודל כרגיל.

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

עכשיו, אחרי שסיימתם לקרוא את ההסבר הבסיסי על Gemini API, כדאי לנסות:

  • ניתוח תמונות: איך משתמשים בניתוח התמונות המובנה של Gemini כדי לעבד תמונות וסרטונים.
  • ניתוח אודיו: איך משתמשים בניתוח האודיו המקורי של Gemini כדי לעבד קובצי אודיו.