הפלאגין של Google Generative AI מספק ממשקים למודלים של Gemini מבית Google דרך Gemini API או דרך Gemini API in Vertex AI.
תצורה
ההגדרה תלויה בספק שבחרתם:
AI מבית Google
כדי להשתמש בפלאגין הזה, מייבאים את החבילה googlegenai
ומעבירים את googlegenai.GoogleAI
אל WithPlugins()
במפעיל של Genkit:
import "github.com/firebase/genkit/go/plugins/googlegenai"
g, err := genkit.Init(context.Background(), ai.WithPlugins(&googlegenai.GoogleAI{}))
כדי להשתמש בפלאגין, צריך מפתח API ל-Gemini API. אפשר לקבל אותו מ-Google AI Studio.
מגדירים את הפלאגין כך שישתמש במפתח ה-API שלכם באחת מהדרכים הבאות:
מגדירים את משתנה הסביבה
GEMINI_API_KEY
למפתח ה-API.מציינים את מפתח ה-API כשמאתחלים את הפלאגין:
ai.WithPlugins(&googlegenai.GoogleAI{APIKey: "YOUR_API_KEY"})
עם זאת, אל תטמיעו את מפתח ה-API ישירות בקוד! מומלץ להשתמש בתכונה הזו רק בשילוב עם שירות כמו Cloud Secret Manager או שירות דומה.
Vertex AI
כדי להשתמש בפלאגין הזה, מייבאים את החבילה googlegenai
ומעבירים את googlegenai.VertexAI
אל WithPlugins()
במפעיל של Genkit:
import "github.com/firebase/genkit/go/plugins/googlegenai"
g, err := genkit.Init(context.Background(), genkit.WithPlugins(&googlegenai.VertexAI{}))
כדי להשתמש בפלאגין, צריך לציין את מזהה הפרויקט ב-Google Cloud, את האזור שאליו רוצים לשלוח בקשות ל-Vertex API ואת פרטי הכניסה לפרויקט ב-Google Cloud.
כברירת מחדל, המשתנה
googlegenai.VertexAI
מקבל את מזהה הפרויקט ב-Google Cloud ממשתנה הסביבהGOOGLE_CLOUD_PROJECT
.אפשר גם להעביר את הערך הזה ישירות:
genkit.WithPlugins(&googlegenai.VertexAI{ProjectID: "my-project-id"})
כברירת מחדל,
googlegenai.VertexAI
מקבל את המיקום של Vertex AI API ממשתנה הסביבהGOOGLE_CLOUD_LOCATION
.אפשר גם להעביר את הערך הזה ישירות:
genkit.WithPlugins(&googlegenai.VertexAI{Location: "us-central1"})
כדי לספק פרטי כניסה ל-API, צריך להגדיר את Application Default Credentials של Google Cloud.
כדי לציין את פרטי הכניסה:
אם אתם מריצים את התהליך מסביבת Google Cloud (Cloud Functions, Cloud Run וכו'), ההגדרה הזו מוגדרת באופן אוטומטי.
בסביבת הפיתוח המקומית, מריצים את הפקודה הבאה:
gcloud auth application-default login
- למידע על סביבות אחרות, אפשר לעיין במסמכי העזרה של Application Default Credentials.
בנוסף, חשוב לוודא שהחשבון קיבל את התפקיד Vertex AI User ב-IAM (
roles/aiplatform.user
). אפשר לעיין במסמכים בנושא בקרת גישה ב-Vertex AI.
שימוש
מודלים גנרטיביים
כדי לקבל הפניה לדגם נתמך, צריך לציין את המזהה שלו בתור googlegenai.GoogleAIModel
או googlgenai.VertexAIModel
:
model := googlegenai.GoogleAIModel(g, "gemini-2.0-flash")
לחלופין, אפשר ליצור ModelRef
שמתאיל את שם המודל להגדרות שלו:
modelRef := googlegenai.GoogleAIModelRef("gemini-2.0-flash", &googlegenai.GeminiConfig{
Temperature: 0.5,
MaxOutputTokens: 500,
// Other configuration...
})
הדגמים הבאים נתמכים: gemini-1.5-pro
, gemini-1.5-flash
, gemini-2.0-pro
, gemini-2.0-flash
ודגמים ניסיוניים אחרים.
להפניות למודלים יש שיטה Generate()
שמפעילה את Google API:
resp, err := genkit.Generate(ctx, g, ai.WithModel(modelRef), ai.WithPrompt("Tell me a joke."))
if err != nil {
return err
}
log.Println(resp.Text())
מידע נוסף זמין במאמר יצירת תוכן באמצעות מודלים של AI.
הטמעת מודלים
כדי לקבל הפניה למודל הטמעה נתמך, צריך לציין את המזהה שלו בתור googlegenai.GoogleAIEmbedder
או googlgenai.VertexAIEmbedder
:
embeddingModel := googlegenai.GoogleAIEmbedder(g, "text-embedding-004")
המודלים הבאים נתמכים:
AI מבית Google
text-embedding-004
וגםembedding-001
Vertex AI
textembedding-gecko@003
,textembedding-gecko@002
,textembedding-gecko@001
,text-embedding-004
,textembedding-gecko-multilingual@001
,text-multilingual-embedding-002
, ו-multimodalembedding
להפניות של מוטמעים יש שיטה Embed()
שמפעילה את Google AI API:
resp, err := ai.Embed(ctx, embeddingModel, ai.WithDocs(userInput))
if err != nil {
return err
}
אפשר גם להעביר את ה-Embedder ל-method Index()
של ה-indexer ול-method Retrieve()
של ה-retriever:
if err := ai.Index(ctx, myIndexer, ai.WithDocs(docsToIndex...)); err != nil {
return err
}
resp, err := ai.Retrieve(ctx, myRetriever, ai.WithDocs(userInput))
if err != nil {
return err
}
מידע נוסף זמין במאמר יצירה עם שיפור לאחזור (RAG).