پلاگین Vertex AI

افزونه Vertex AI رابط هایی را برای چندین مدل هوش مصنوعی مولد گوگل از طریق 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، باید اعتبارنامه پیش‌فرض Google Cloud Application را تنظیم کنید.

    1. برای مشخص کردن اعتبار خود:

      • اگر جریان خود را از یک محیط Google Cloud (توابع Cloud، Cloud Run و غیره) اجرا می کنید، این به طور خودکار تنظیم می شود.

      • در محیط توسعه دهنده محلی خود، این کار را با اجرای:

      gcloud auth application-default login
      
    2. علاوه بر این، مطمئن شوید که نقش Vertex AI User IAM ( roles/aiplatform.user ) به حساب داده شده است. اسناد کنترل دسترسی Vertex AI را ببینید.

استفاده

مدل های مولد

برای دریافت ارجاع به یک مدل پشتیبانی شده، شناسه آن را مشخص کنید:

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

مدل‌های زیر پشتیبانی می‌شوند: gemini-1.0-pro ، gemini-1.5-pro ، و gemini-1.5-flash .

مراجع مدل دارای یک متد 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- multimodalembedding text-multilingual-embedding-002 .

مراجع Embedder دارای یک متد Embed() هستند که Vertex AI API را فراخوانی می کند:

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

همچنین می توانید یک Embedder را به متد Index Index() نمایه ساز و متد 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) مراجعه کنید.