المكوّن الإضافي Vertex AI

يوفّر مكوّن Vertex 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 من متغيّر البيئة GCLOUD_LOCATION.

    يمكنك أيضًا تمرير هذه القيمة مباشرةً:

    if err := vertexai.Init(ctx, &vertexai.Config{Location: "asia-south1"}); err != nil {
      return err
    }
    
  • لتقديم بيانات اعتماد واجهة برمجة التطبيقات، يجب إعداد تطبيق Google Cloud. بيانات الاعتماد التلقائية.

    1. لتحديد بيانات الاعتماد:

      • إذا كنت تشغّل التدفق من بيئة Google Cloud (Cloud والوظائف، وتشغيل السحابة، وما إلى ذلك)، يتم تعيين ذلك تلقائيًا.

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

      gcloud auth application-default login
      
    2. بالإضافة إلى ذلك، تأكَّد من منح الحساب دور "إدارة الهوية وإمكانية الوصول لمستخدم Vertex AI" (roles/aiplatform.user). الاطّلاع على التحكّم في الوصول إلى Vertex AI المستندات.

الاستخدام

النماذج التوليدية

للحصول على إشارة إلى نموذج متوافق، حدِّد معرِّفه:

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

النماذج التالية متاحة: gemini-1.0-pro وgemini-1.5-pro و gemini-1.5-flash

تستخدِم مراجع النماذج طريقة Generate() تستدعي واجهة برمجة تطبيقات Vertex AI:

genRes, err := langModel.Generate(ctx, ai.NewGenerateRequest(
    nil, ai.NewUserTextMessage("Tell me a joke.")), nil)
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

تستخدِم مراجع أداة التضمين طريقة Embed() تطلب البيانات من Vertex AI API:

embedRes, err := embeddingModel.Embed(ctx, &ai.EmbedRequest{
    Documents: []*ai.Document{ai.DocumentFromText(userInput, nil)},
})
if err != nil {
    return err
}

يمكنك أيضًا تمرير أداة تضمين إلى طريقة Index() للمفهرس وأداة استرداد طريقة Retrieve():

if err := myIndexer.Index(ctx, &ai.IndexerRequest{Documents: docsToIndex}); err != nil {
    return err
}
retrieveRes, err := myRetriever.Retrieve(ctx, &ai.RetrieverRequest{
    Document: ai.DocumentFromText(userInput, nil),
})
if err != nil {
    return err
}

راجِع الجيل الاسترجاعي (RAG) للحصول على مزيد من المعلومات.