הפלאגין של Google Generative AI

הפלאגין של 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).