المكوّن الإضافي للذكاء الاصطناعي التوليدي من Google

يقدّم المكوّن الإضافي "الذكاء الاصطناعي التوليدي من 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.

    1. لتحديد بيانات الاعتماد، يُرجى اتّباع الخطوات التالية:

      • إذا كنت تشغّل عملية المعالجة من بيئة Google Cloud (Cloud Functions وCloud Run وما إلى ذلك)، يتم ضبط هذا الإعداد تلقائيًا.

      • في بيئة التطوير المحلية، يمكنك إجراء ذلك من خلال تشغيل:

      gcloud auth application-default login
    2. بالإضافة إلى ذلك، تأكَّد من منح الحساب دور "مستخدم 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) للحصول على مزيد من المعلومات.