Gemini API می تواند خروجی متن را از انواع مختلف ورودی از جمله متن، تصویر، ویدئو و صدا تولید کند. می توانید از تولید متن برای برنامه های مختلف استفاده کنید، از جمله:
- نوشتن خلاق
- توصیف یا تفسیر دارایی های رسانه ای
- تکمیل متن
- خلاصه کردن متن آزاد
- ترجمه بین زبانها
- چت ربات ها
- موارد استفاده رمان خودتان
این راهنما به شما نشان می دهد که چگونه با استفاده از API های generateContent
و streamGenerateContent
متن تولید کنید. تمرکز بر روی خروجی متن از ورودی فقط متن و متن و تصویر است. برای اطلاعات بیشتر در مورد درخواست چندوجهی با فایلهای ویدیویی و صوتی، به استراتژیهای درخواست فایل مراجعه کنید.
قبل از شروع: پروژه و کلید API خود را تنظیم کنید
قبل از فراخوانی Gemini API، باید پروژه خود را راه اندازی کرده و کلید API خود را پیکربندی کنید.
کلید API خود را دریافت و ایمن کنید
برای فراخوانی Gemini API به یک کلید API نیاز دارید. اگر قبلاً یکی ندارید، یک کلید در Google AI Studio ایجاد کنید.
اکیداً توصیه می شود که یک کلید API را در سیستم کنترل نسخه خود بررسی نکنید .
شما باید کلید API خود را در یک فروشگاه محرمانه مانند Google Cloud Secret Manager ذخیره کنید.
این آموزش فرض می کند که شما به کلید API خود به عنوان یک متغیر محیطی دسترسی دارید.
بسته SDK را نصب کنید و کلید API خود را پیکربندی کنید
در برنامه خود موارد زیر را انجام دهید:
بسته
GoogleGenerativeAI
را برای Node.js نصب کنید:npm install @google/generative-ai
بسته را وارد کنید و سرویس را با کلید API خود پیکربندی کنید:
const { GoogleGenerativeAI } = require("@google/generative-ai"); // Access your API key as an environment variable const genAI = new GoogleGenerativeAI(process.env.API_KEY);
متن را از ورودی فقط متنی تولید کنید
ساده ترین راه برای تولید متن با استفاده از Gemini API ارائه یک ورودی متنی به مدل است، همانطور که در این مثال نشان داده شده است:
// Make sure to include these imports:
// import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI(process.env.API_KEY);
const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
const prompt = "Write a story about a magic backpack.";
const result = await model.generateContent(prompt);
console.log(result.response.text());
در این مورد، اعلان ("نوشتن داستانی درباره یک کوله پشتی جادویی") شامل هیچ نمونه خروجی، دستورالعمل های سیستم، یا اطلاعات قالب بندی نمی شود. این یک رویکرد شات صفر است. برای برخی از موارد استفاده، یک اعلان یک شات یا چند شات ممکن است خروجی تولید کند که با انتظارات کاربر همسوتر باشد. در برخی موارد، ممکن است بخواهید دستورالعملهای سیستمی را برای کمک به مدل برای درک کار یا پیروی از دستورالعملهای خاص ارائه دهید.
تولید متن از ورودی متن و تصویر
Gemini API از ورودی های چندوجهی پشتیبانی می کند که متن را با فایل های رسانه ای ترکیب می کند. مثال زیر نحوه تولید متن از ورودی متن و تصویر را نشان می دهد:
// Make sure to include these imports:
// import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI(process.env.API_KEY);
const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
function fileToGenerativePart(path, mimeType) {
return {
inlineData: {
data: Buffer.from(fs.readFileSync(path)).toString("base64"),
mimeType,
},
};
}
const prompt = "Describe how this product might be manufactured.";
// Note: The only accepted mime types are some image types, image/*.
const imagePart = fileToGenerativePart(
`${mediaPath}/jetpack.jpg`,
"image/jpeg",
);
const result = await model.generateContent([prompt, imagePart]);
console.log(result.response.text());
همانند اعلانهای متنی، اعلان چندوجهی میتواند شامل رویکردها و اصلاحات مختلفی باشد. بسته به خروجی این مثال، ممکن است بخواهید مراحلی را به دستور اضافه کنید یا در دستورالعمل های خود دقیق تر باشید. برای کسب اطلاعات بیشتر، به استراتژیهای درخواست فایل مراجعه کنید.
یک جریان متنی ایجاد کنید
بهطور پیشفرض، مدل پس از تکمیل کل فرآیند تولید متن، پاسخی را برمیگرداند. شما می توانید با منتظر ماندن برای کل نتیجه به تعاملات سریع تری برسید و در عوض از استریم برای مدیریت نتایج جزئی استفاده کنید.
مثال زیر نحوه اجرای جریان با استفاده از روش streamGenerateContent
را برای تولید متن از یک اعلان ورودی متنی نشان می دهد.
// Make sure to include these imports:
// import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI(process.env.API_KEY);
const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
const prompt = "Write a story about a magic backpack.";
const result = await model.generateContentStream(prompt);
// Print text as it comes in.
for await (const chunk of result.stream) {
const chunkText = chunk.text();
process.stdout.write(chunkText);
}
یک چت تعاملی بسازید
می توانید از Gemini API برای ایجاد تجربه های چت تعاملی برای کاربران خود استفاده کنید. استفاده از ویژگی چت API به شما این امکان را میدهد که چندین دور سوال و پاسخ جمعآوری کنید و به کاربران این امکان را میدهد تا به تدریج به سمت پاسخها قدم بردارند یا برای مشکلات چند بخشی کمک بگیرند. این ویژگی برای برنامه هایی که نیاز به ارتباط مداوم دارند، مانند ربات های چت، معلمان تعاملی یا دستیاران پشتیبانی مشتری ایده آل است.
مثال کد زیر اجرای چت اولیه را نشان می دهد:
// Make sure to include these imports:
// import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI(process.env.API_KEY);
const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
const chat = model.startChat({
history: [
{
role: "user",
parts: [{ text: "Hello" }],
},
{
role: "model",
parts: [{ text: "Great to meet you. What would you like to know?" }],
},
],
});
let result = await chat.sendMessage("I have 2 dogs in my house.");
console.log(result.response.text());
result = await chat.sendMessage("How many paws are in my house?");
console.log(result.response.text());
پیکربندی تولید متن
هر اعلانی که به مدل ارسال می کنید شامل پارامترهایی است که نحوه تولید پاسخ مدل را کنترل می کند. برای پیکربندی این پارامترها می توانید از GenerationConfig
استفاده کنید. اگر پارامترها را پیکربندی نکنید، مدل از گزینه های پیش فرض استفاده می کند که می تواند بسته به مدل متفاوت باشد.
مثال زیر نحوه پیکربندی چندین گزینه موجود را نشان می دهد.
// Make sure to include these imports:
// import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI(process.env.API_KEY);
const model = genAI.getGenerativeModel({
model: "gemini-1.5-flash",
generationConfig: {
candidateCount: 1,
stopSequences: ["x"],
maxOutputTokens: 20,
temperature: 1.0,
},
});
const result = await model.generateContent(
"Tell me a story about a magic backpack.",
);
console.log(result.response.text());
candidateCount
تعداد پاسخ های تولید شده برای بازگشت را مشخص می کند. در حال حاضر، این مقدار را فقط می توان روی 1 تنظیم کرد. اگر تنظیم نشود، به طور پیش فرض روی 1 خواهد بود.
stopSequences
مجموعهای از دنبالههای کاراکتر (تا 5) را مشخص میکند که تولید خروجی را متوقف میکند. اگر مشخص شود، API در اولین ظاهر یک stop_sequence متوقف خواهد شد. توالی توقف به عنوان بخشی از پاسخ گنجانده نمی شود.
maxOutputTokens
حداکثر تعداد توکنها را برای گنجاندن در یک نامزد تنظیم میکند.
temperature
تصادفی بودن خروجی را کنترل می کند. برای پاسخهای خلاقانهتر از مقادیر بالاتر و برای پاسخهای قطعیتر از مقادیر پایینتر استفاده کنید. مقادیر می توانند از [0.0، 2.0] متغیر باشند.
همچنین می توانید تماس های فردی را برای generateContent
پیکربندی کنید:
const result = await model.generateContent({
contents: [
{
role: 'user',
parts: [
{
text: prompt,
}
],
}
],
generationConfig: {
maxOutputTokens: 1000,
temperature: 0.1,
},
});
console.log(result.response.text());
هر مقداری که روی فراخوانی فردی تنظیم شده باشد، مقادیر سازنده مدل را لغو می کند.
بعدش چی
این راهنما نحوه استفاده از generateContent
و streamGenerateContent
را برای تولید خروجی های متنی از ورودی های متنی و متنی و تصویری نشان می دهد. برای کسب اطلاعات بیشتر در مورد تولید متن با استفاده از Gemini API، به منابع زیر مراجعه کنید:
- استراتژیهای درخواست فایل : Gemini API از درخواست با دادههای متنی، تصویری، صوتی و ویدیویی پشتیبانی میکند که به عنوان درخواست چندوجهی نیز شناخته میشود.
- دستورالعملهای سیستم : دستورالعملهای سیستم به شما امکان میدهد رفتار مدل را بر اساس نیازها و موارد استفاده خاص خود هدایت کنید.
- راهنمایی ایمنی : گاهی اوقات مدلهای هوش مصنوعی تولیدی خروجیهای غیرمنتظره مانند خروجیهای نادرست، جانبدارانه یا توهینآمیز تولید میکنند. پس پردازش و ارزیابی انسانی برای محدود کردن خطر آسیب ناشی از چنین خروجیهایی ضروری است.