הפלאגין של Google Generative AI מספק ממשקים למודלים של Gemini מבית Google דרך Gemini API.
תצורה
כדי להשתמש בפלאגין הזה, מייבאים את החבילה googleai
ומפעילים את googleai.Init()
:
import "github.com/firebase/genkit/go/plugins/googleai"
if err := googleai.Init(ctx, nil); err != nil {
return err
}
כדי להשתמש בפלאגין נדרש מפתח API ל-Gemini API, ואפשר לקבל אותו מ-Google AI Studio.
מגדירים את הפלאגין כך שישתמש במפתח ה-API שלכם באחת מהדרכים הבאות:
מגדירים את משתנה הסביבה
GOOGLE_GENAI_API_KEY
למפתח ה-API.מציינים את מפתח ה-API כשמאתחלים את הפלאגין:
if err := googleai.Init(ctx, &googleai.Config{APIKey: yourKey}); err != nil { return err }
עם זאת, אל תטמיעו את מפתח ה-API ישירות בקוד! מומלץ להשתמש בתכונה הזו רק בשילוב עם שירות כמו Cloud Secret Manager או שירות דומה.
שימוש
מודלים גנרטיביים
כדי לקבל הפניה למודל נתמך, מציינים את המזהה שלו:
model := googleai.Model("gemini-1.5-flash")
הדגמים הנתמכים הם: gemini-1.0-pro
, gemini-1.5-pro
ו-gemini-1.5-flash
.
למפנה למודלים יש שיטה Generate()
שמפעילה את Google AI API:
text, err := ai.GenerateText(ctx, model, ai.WithTextPrompt("Tell me a joke."))
if err != nil {
return err
}
מידע נוסף זמין במאמר יצירת תוכן.
הטמעת מודלים
כדי לקבל הפניה למודל הטמעה נתמך, צריך לציין את המזהה שלו:
embeddingModel := googleai.Embedder("text-embedding-004")
המודלים הבאים נתמכים: text-embedding-004
ו-embedding-001
.
להפניות של מוטמעים יש שיטה Embed()
שמפעילה את Google AI API:
embedRes, err := ai.Embed(ctx, embeddingModel, ai.WithEmbedText(userInput))
if err != nil {
return err
}
אפשר גם להעביר את ה-Embedder לשיטה Index()
של ה-indexer ולשיטה Retrieve()
של ה-retriever:
if err := ai.Index(ctx, myIndexer, ai.WithIndexerDocs(docsToIndex...)); err != nil {
return err
}
retrieveRes, err := ai.Retrieve(ctx, myRetriever, ai.WithRetrieverText(userInput))
if err != nil {
return err
}
מידע נוסף זמין במאמר יצירה עם שיפור לאחזור (RAG).