پلاگین هوش مصنوعی Google Generative

افزونه Google Generative AI رابط هایی را برای مدل های Gemini گوگل از طریق 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 .

مراجع Embedder دارای یک متد Embed() هستند که Google 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) مراجعه کنید.