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

يوفّر مكوّن Vertex AI الإضافي واجهات للعديد من نماذج الذكاء الاصطناعي التوليدي من Google من خلال Vertex AI API:

  • إنشاء نص في Gemini 1.0 Pro وGemini 1.0 Pro Vision
  • إنشاء صور في Imagen2
  • إنشاء تضمين نص أبو بريص

وتوفّر أيضًا إمكانية الوصول إلى مجموعة فرعية من مقاييس التقييم من خلال واجهة برمجة التطبيقات للتقييم السريع Vertex AI.

تثبيت

npm i --save @genkit-ai/vertexai

إذا أردت تشغيل التدفقات التي تستخدم هذا المكوّن الإضافي محليًا، ستحتاج أيضًا إلى تثبيت أداة Google Cloud CLI.

الإعداد

لاستخدام هذا المكوّن الإضافي، حدِّده عند استدعاء configureGenkit():

import { vertexAI } from '@genkit-ai/vertexai';

export default configureGenkit({
  plugins: [
    vertexAI({ projectId: 'your-cloud-project', location: 'us-central1' }),
  ],
  // ...
});

يتطلّب المكوّن الإضافي تحديد رقم تعريف مشروع Google Cloud والمنطقة التي تريد إجراء طلبات Vertex API لها وبيانات اعتماد مشروعك على Google Cloud.

  • يمكنك تحديد رقم تعريف مشروع Google Cloud إما من خلال ضبط projectId في إعدادات vertexAI() أو ضبط متغير بيئة GCLOUD_PROJECT. إذا كنت تشغِّل التدفق من بيئة Google Cloud (دوال Cloud وCloud Run وغير ذلك)، يتم ضبط GCLOUD_PROJECT تلقائيًا على رقم تعريف المشروع للبيئة.

  • يمكنك تحديد موقع واجهة برمجة التطبيقات إما من خلال ضبط location في إعدادات vertexAI() أو ضبط متغير بيئة GCLOUD_LOCATION.

  • لتوفير بيانات اعتماد واجهة برمجة التطبيقات، يجب إعداد بيانات الاعتماد التلقائية لتطبيق Google Cloud.

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

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

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

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

الاستخدام

نماذج الذكاء الاصطناعي التوليدي

يصدِّر هذا المكوّن الإضافي بشكل ثابت الإشارات إلى نماذج الذكاء الاصطناعي التوليدي المتوافقة معه:

import { geminiPro, geminiProVision, imagen2 } from '@genkit-ai/vertexai';

يمكنك استخدام هذه المراجع لتحديد النموذج الذي يستخدمه generate():

const llmResponse = await generate({
  model: geminiPro,
  prompt: 'What should I do when I visit Melbourne?',
});

يعمل هذا المكوّن الإضافي أيضًا على تصدير مرجع بشكل ثابت إلى نموذج تضمين نص Gecko:

import { textEmbeddingGecko } from '@genkit-ai/vertexai';

يمكنك استخدام هذا المرجع لتحديد أداة التضمين التي يستخدمها المفهرس أو المسترد. على سبيل المثال، إذا كنت تستخدم Chroma DB:

configureGenkit({
  plugins: [
    chroma([
      {
        embedder: textEmbeddingGecko,
        collectionName: 'my-collection',
      },
    ]),
  ],
});

أو يمكنك إنشاء تضمين مباشرة:

// import { embed, EmbedderArgument } from '@genkit-ai/ai/embedder';
const embedding = await embed({
  embedder: textEmbeddingGecko,
  content: 'How many widgets do you have in stock?',
});

المهندس كلود 3 في حديقة نماذج Vertex AI

إذا كان بإمكانك الوصول إلى طُرز Claude 3 (haiku أو sonnet أو opus) في Vertex AI Model Garden، يمكنك استخدامها مع Genkit.

في ما يلي نموذج للإعدادات لتفعيل نماذج Vertex AI Model Garden:

import {
  vertexAI,
  claude3Haiku,
  claude3Sonnet,
  claude3Opus,
} from '@genkit-ai/vertexai';

export default configureGenkit({
  plugins: [
    vertexAI({
      location: 'us-central1',
      modelGardenModels: [claude3Haiku, claude3Sonnet, claude3Opus],
    }),
  ],
});

ثم استخدمها كنماذج عادية:

const llmResponse = await generate({
  model: claude3Sonnet,
  prompt: 'What should I do when I visit Melbourne?',
});

المقيّمون

لاستخدام المقيّمين من أداة Vertex AI Accelerated Evaluation، يمكنك إضافة حظر evaluation إلى إعدادات المكوّن الإضافي vertexAI.

import { vertexAI, VertexAIEvaluationMetricType } from '@genkit-ai/vertexai';

export default configureGenkit({
  plugins: [
    vertexAI({
      projectId: 'your-cloud-project',
      location: 'us-central1',
      evaluation: {
        metrics: [
          VertexAIEvaluationMetricType.SAFETY,
          {
            type: VertexAIEvaluationMetricType.ROUGE,
            metricSpec: {
              rougeType: 'rougeLsum',
            },
          },
        ],
      },
    }),
  ],
  // ...
});

تضيف الإعدادات أعلاه مقيّمين للمقياسَين Safety وROUGE. يوضّح المثال طريقتَين: يستخدم المقياس Safety المواصفات التلقائية، بينما يوفّر المقياس ROUGE مواصفة مخصّصة تحدّد نوع روج على rougeLsum.

يمكن تنفيذ كلا المقيّمين باستخدام الأمر genkit eval:run مع مجموعة بيانات متوافقة: أي مجموعة بيانات تحتوي على الحقلين output وreference. يمكن أيضًا تشغيل المقيّم Safety باستخدام الأمر genkit eval:flow -e vertexai/safety لأنّه لا يتطلّب سوى output.