يوفّر المكوّن الإضافي للذكاء الاصطناعي التوليدي من Google واجهات لاستخدام نماذج Gemini من Google. من خلال Gemini API.
تثبيت
npm i --save @genkit-ai/googleai
الإعداد
لاستخدام هذا المكوّن الإضافي، حدده عند استدعاء configureGenkit()
:
import { googleAI } from '@genkit-ai/googleai';
export default configureGenkit({
plugins: [googleAI()],
// ...
});
يتطلّب هذا المكوّن الإضافي مفتاح واجهة برمجة التطبيقات الخاص بـ Gemini API، ويمكنك الحصول عليه من خلال Google AI Studio:
يمكنك ضبط المكوّن الإضافي لاستخدام مفتاح واجهة برمجة التطبيقات من خلال تنفيذ أحد الإجراءات التالية:
اضبط متغيّر بيئة
GOOGLE_GENAI_API_KEY
على مفتاح واجهة برمجة التطبيقات.حدد مفتاح واجهة برمجة التطبيقات عند تهيئة المكون الإضافي:
googleAI({ apiKey: yourKey });
مع ذلك، لا تضمِّن مفتاح واجهة برمجة التطبيقات مباشرةً في الرمز. استخدام هذه الميزة فقط مع خدمة مثل Cloud Secret Manager أو ما شابه ذلك.
بعض الطُرز (مثل Gemini 1.5 Pro) متوفّرة في وضع المعاينة ولا يمكن عرضها إلا من خلال
واجهة برمجة تطبيقات v1beta
. يمكنك تحديد apiVersion
للوصول إلى هذه النماذج:
configureGenkit({
plugins: [googleAI({ apiVersion: 'v1beta' })],
});
أو يمكنك تحديد إصدارات متعددة إذا كنت ترغب في استخدام إصدارات مختلفة من النماذج في نفس الوقت.
configureGenkit({
plugins: [googleAI({ apiVersion: ['v1', 'v1beta'] })],
});
الاستخدام
يصدِّر هذا المكوّن الإضافي المراجع بشكل ثابت إلى نماذجه المتوافقة:
import {
gemini15Flash,
gemini15Pro,
textEmbeddingGecko001,
} from '@genkit-ai/googleai';
يمكنك استخدام المراجع التالية لتحديد النموذج الذي يستخدمه generate()
:
const llmResponse = await generate({
model: gemini15Flash,
prompt: 'Tell me a joke.',
});
أو استخدام أدوات التضمين (مثل textEmbeddingGecko001
) مع embed
أو برامج استرداد البيانات:
const embedding = await embed({
embedder: textEmbeddingGecko001,
content: input,
});
واجهة Gemini Files API
يمكنك استخدام الملفات التي تم تحميلها إلى Gemini Files API مع Genkit:
import { GoogleAIFileManager } from '@google/generative-ai/server';
const fileManager = new GoogleAIFileManager(process.env.GOOGLE_GENAI_API_KEY);
const uploadResult = await fileManager.uploadFile(
'path/to/file.jpg',
{
mimeType: 'image/jpeg',
displayName: 'Your Image',
}
);
const response = await generate({
model: gemini15Flash,
prompt: [
{text: "Describe this image:},
{media: {contentType: uploadResult.file.mimeType, url: uploadResult.file.uri}}
]
});