يقدّم المكوّن الإضافي "الذكاء الاصطناعي التوليدي من Google" واجهات لنماذج Gemini من Google من خلال Gemini API أو Gemini API in Vertex 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{}))
يتطلّب المكوّن الإضافي مفتاح واجهة برمجة تطبيقات لواجهة Gemini API، والذي يمكنك الحصول عليه من Google AI Studio.
يمكنك ضبط المكوّن الإضافي لاستخدام مفتاح واجهة برمجة التطبيقات من خلال تنفيذ أحد الإجراءَين التاليَين:
اضبط متغيّر البيئة
GEMINI_API_KEY
على مفتاح واجهة برمجة التطبيقات.حدِّد مفتاح واجهة برمجة التطبيقات عند إعداد المكوّن الإضافي:
ai.WithPlugins(&googlegenai.GoogleAI{APIKey: "YOUR_API_KEY"})
ومع ذلك، لا تُدرِج مفتاح واجهة برمجة التطبيقات مباشرةً في الرمز البرمجي. لا تستخدِم هذه الميزة إلا مع خدمة مثل 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"})
لتقديم بيانات اعتماد واجهة برمجة التطبيقات، عليك إعداد "بيانات الاعتماد التلقائية" لتطبيق Google Cloud.
لتحديد بيانات الاعتماد، يُرجى اتّباع الخطوات التالية:
إذا كنت تشغّل عملية المعالجة من بيئة Google Cloud (Cloud Functions وCloud Run وما إلى ذلك)، يتم ضبط هذا الإعداد تلقائيًا.
في بيئة التطوير المحلية، يمكنك إجراء ذلك من خلال تشغيل:
gcloud auth application-default login
- بالنسبة إلى البيئات الأخرى، يُرجى الاطّلاع على مستندات بيانات الاعتماد التلقائية للتطبيق.
بالإضافة إلى ذلك، تأكَّد من منح الحساب دور "مستخدم Vertex AI" في إدارة الهوية وإمكانية الوصول (
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())
اطّلِع على إنشاء المحتوى باستخدام نماذج الذكاء الاصطناعي للحصول على مزيد من المعلومات.
نماذج التضمين
للحصول على إشارة إلى نموذج تضمين متوافق، حدِّد معرّفه على النحو التالي:
googlegenai.GoogleAIEmbedder
أو googlgenai.VertexAIEmbedder
:
embeddingModel := googlegenai.GoogleAIEmbedder(g, "text-embedding-004")
الطُرز التالية متوافقة:
تكنولوجيات الذكاء الاصطناعي من 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
}
يمكنك أيضًا تمرير عنصر تضمين إلى طريقة Index()
لمُفهرس وطريقة
Retrieve()
لمُسترجع:
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) للحصول على مزيد من المعلومات.