הפלאגין של Vertex AI

הפלאגין של Vertex AI מספק ממשקים לכמה מודלים של AI גנרטיבי של Google באמצעות Vertex AI API.

דרישות

כדי להריץ באופן מקומי תהליכים שמשתמשים בפלאגין הזה, צריך להתקין את הכלי Google Cloud CLI.

תצורה

כדי להשתמש בפלאגין הזה, מייבאים את החבילה vertexai ומפעילים את vertexai.Init():

import "github.com/firebase/genkit/go/plugins/vertexai"
if err := vertexai.Init(ctx, nil); err != nil {
	return err
}

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

  • כברירת מחדל, vertexai.Init() מקבל את מזהה הפרויקט ב-Google Cloud ממשתנה הסביבה GCLOUD_PROJECT.

    אפשר גם להעביר את הערך הזה ישירות:

    if err := vertexai.Init(ctx, &vertexai.Config{ProjectID: yourProjectID}); err != nil {
    	return err
    }
    
  • כברירת מחדל, vertexai.Init() מקבל את המיקום של Vertex AI API ממשתנה הסביבה GCLOUD_LOCATION.

    אפשר גם להעביר את הערך הזה ישירות:

    if err := vertexai.Init(ctx, &vertexai.Config{Location: "asia-south1"}); err != nil {
    	return err
    }
    
  • כדי לספק פרטי כניסה ל-API, צריך להגדיר את Application Default Credentials של Google Cloud.

    1. כדי לציין את פרטי הכניסה:

      • אם אתם מריצים את התהליך מסביבת Google Cloud (Cloud Functions,‏ Cloud Run וכו'), ההגדרה הזו מוגדרת באופן אוטומטי.

      • בסביבת הפיתוח המקומית, מריצים את הפקודה הבאה:

      gcloud auth application-default login
      
    2. בנוסף, חשוב לוודא שלחשבון הוקצה תפקיד ה-IAM למשתמש ב-Vertex AI (roles/aiplatform.user). עיינו במסמכי בקרת הגישה של Vertex AI.

שימוש

Generative models

כדי לקבל הפניה למודל נתמך, מציינים את המזהה שלו:

langModel := vertexai.Model("gemini-1.5-flash")

הדגמים הנתמכים הם: gemini-1.0-pro,‏ gemini-1.5-pro ו-gemini-1.5-flash.

למפנה למודל יש method‏ Generate() שמפעיל את Vertex AI API:

genRes, err := ai.GenerateText(ctx, langModel, ai.WithTextPrompt("Tell me a joke."))
if err != nil {
	return err
}

מידע נוסף זמין במאמר יצירת תוכן.

הטמעת מודלים

כדי לקבל הפניה למודל הטמעה נתמך, מציינים את המזהה שלו:

embeddingModel := vertexai.Embedder("text-embedding-004")

הדגמים הבאים נתמכים: textembedding-gecko@003,‏ textembedding-gecko@002,‏ textembedding-gecko@001,‏ text-embedding-004,‏ textembedding-gecko-multilingual@001,‏ text-multilingual-embedding-002 ו-multimodalembedding.

להפניות של מוטמעים יש method‏ Embed() שמפעיל את Vertex AI API:

embedRes, err := ai.Embed(ctx, embeddingModel, ai.WithEmbedText(userInput))
if err != nil {
	return err
}

אפשר גם להעביר Embedder ל-method Index() של אינדקס ולשיטת Retrieve() של רטריבר:

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).