افزونه Google Generative AI رابط هایی را برای مدل های Gemini گوگل از طریق Gemini API فراهم می کند.
نصب و راه اندازی
npm i --save @genkit-ai/googleai
پیکربندی
برای استفاده از این افزونه، هنگام فراخوانی configureGenkit()
آن را مشخص کنید:
import { googleAI } from '@genkit-ai/googleai';
export default configureGenkit({
plugins: [googleAI()],
// ...
});
این افزونه به یک کلید API برای Gemini API نیاز دارد که میتوانید آن را از Google AI Studio دریافت کنید.
با انجام یکی از موارد زیر، افزونه را برای استفاده از کلید API خود پیکربندی کنید:
متغیر محیطی
GOOGLE_GENAI_API_KEY
را روی کلید API خود تنظیم کنید.هنگامی که افزونه را مقداردهی اولیه می کنید، کلید API را مشخص کنید:
googleAI({ apiKey: yourKey });
با این حال، کلید API خود را مستقیماً در کد قرار ندهید! از این ویژگی فقط در ارتباط با سرویسی مانند Cloud Secret Manager یا موارد مشابه استفاده کنید.
برخی از مدل ها (مانند Gemini 1.5 Pro) در پیش نمایش هستند و فقط از طریق v1beta
API قابل دسترسی هستند. برای دسترسی به این مدل ها می توانید 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.',
});
یا از embedder ها (مثلا textEmbeddingGecko001
) با embed
یا retriever استفاده کنید:
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}}
]
});