Gemini API زمانی که متن، تصویر، ویدئو و صدا به عنوان ورودی ارائه شود، می تواند خروجی متن تولید کند.
این راهنما به شما نشان می دهد که چگونه با استفاده از متدهای generateContent
و streamGenerateContent
متن تولید کنید. برای آشنایی با کار با قابلیت های بینایی و صوتی Gemini، به راهنمای Vision و Audio مراجعه کنید.
متن را از ورودی فقط متنی تولید کنید
ساده ترین راه برای تولید متن با استفاده از Gemini API ارائه یک ورودی متنی به مدل است، همانطور که در این مثال نشان داده شده است:
import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI("GEMINI_API_KEY");
const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
const prompt = "Explain how AI works";
const result = await model.generateContent(prompt);
console.log(result.response.text());
در این مورد، اعلان ("توضیح دهید که هوش مصنوعی چگونه کار می کند") شامل هیچ نمونه خروجی، دستورالعمل های سیستم یا اطلاعات قالب بندی نمی شود. این یک رویکرد شات صفر است. برای برخی از موارد استفاده، یک اعلان یک شات یا چند شات ممکن است خروجی تولید کند که با انتظارات کاربر همسوتر باشد. در برخی موارد، ممکن است بخواهید دستورالعملهای سیستمی را برای کمک به مدل برای درک کار یا پیروی از دستورالعملهای خاص ارائه دهید.
تولید متن از ورودی متن و تصویر
Gemini API از ورودی های چندوجهی پشتیبانی می کند که متن را با فایل های رسانه ای ترکیب می کند. مثال زیر نحوه تولید متن از ورودی متن و تصویر را نشان می دهد:
import { GoogleGenerativeAI } from "@google/generative-ai";
import * as fs from 'node:fs';
const genAI = new GoogleGenerativeAI("GEMINI_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.";
const imagePart = fileToGenerativePart("/path/to/image.png", "image/png");
const result = await model.generateContent([prompt, imagePart]);
console.log(result.response.text());
یک جریان متنی ایجاد کنید
بهطور پیشفرض، مدل پس از تکمیل کل فرآیند تولید متن، پاسخی را برمیگرداند. شما می توانید با منتظر ماندن برای کل نتیجه به تعاملات سریع تری برسید و در عوض از استریم برای مدیریت نتایج جزئی استفاده کنید.
مثال زیر نحوه اجرای جریان با استفاده از روش streamGenerateContent
را برای تولید متن از یک اعلان ورودی متنی نشان می دهد.
import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI("GEMINI_API_KEY");
const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
const prompt = "Explain how AI works";
const result = await model.generateContentStream(prompt);
for await (const chunk of result.stream) {
const chunkText = chunk.text();
process.stdout.write(chunkText);
}
یک مکالمه چت ایجاد کنید
Gemini SDK به شما امکان میدهد چندین دور سؤال و پاسخ جمعآوری کنید و به کاربران این امکان را میدهد تا بهصورت تدریجی به سمت پاسخها قدم بردارند یا برای مشکلات چند قسمتی کمک دریافت کنند. این ویژگی SDK یک رابط برای پیگیری تاریخچه مکالمات ارائه می دهد، اما در پشت صحنه از همان روش generateContent
برای ایجاد پاسخ استفاده می کند.
مثال کد زیر اجرای چت اولیه را نشان می دهد:
import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI("GEMINI_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());
let result2 = await chat.sendMessage("How many paws are in my house?");
console.log(result2.response.text());
همانطور که در مثال زیر نشان داده شده است، می توانید از استریم با چت نیز استفاده کنید:
import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI("GEMINI_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.sendMessageStream("I have 2 dogs in my house.");
for await (const chunk of result.stream) {
const chunkText = chunk.text();
process.stdout.write(chunkText);
}
let result2 = await chat.sendMessageStream("How many paws are in my house?");
for await (const chunk of result2.stream) {
const chunkText = chunk.text();
process.stdout.write(chunkText);
}
پیکربندی تولید متن
هر اعلانی که به مدل ارسال می کنید شامل پارامترهایی است که نحوه تولید پاسخ مدل را کنترل می کند. برای پیکربندی این پارامترها می توانید از GenerationConfig
استفاده کنید. اگر پارامترها را پیکربندی نکنید، مدل از گزینه های پیش فرض استفاده می کند که می تواند بسته به مدل متفاوت باشد.
مثال زیر نحوه پیکربندی چندین گزینه موجود را نشان می دهد.
import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI("GEMINI_API_KEY");
const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
const result = await model.generateContent({
contents: [
{
role: 'user',
parts: [
{
text: "Explain how AI works",
}
],
}
],
generationConfig: {
maxOutputTokens: 1000,
temperature: 0.1,
}
});
console.log(result.response.text());
دستورالعمل های سیستم را اضافه کنید
دستورالعمل های سیستم به شما امکان می دهد رفتار یک مدل را بر اساس نیازهای خاص و موارد استفاده خود هدایت کنید.
با دادن دستورالعملهای سیستم مدل، زمینه اضافی مدل را برای درک کار، ایجاد پاسخهای سفارشیسازیشدهتر، و رعایت دستورالعملهای خاص در تعامل کامل کاربر با مدل فراهم میکنید. همچنین میتوانید با تنظیم دستورالعملهای سیستم، جدا از اعلانهای ارائهشده توسط کاربران نهایی، رفتار سطح محصول را مشخص کنید.
وقتی مدل خود را مقداردهی اولیه می کنید می توانید دستورالعمل های سیستم را تنظیم کنید:
// Set the system instruction during model initialization
const model = genAI.getGenerativeModel({
model: "gemini-1.5-flash",
systemInstruction: "You are a cat. Your name is Neko.",
});
سپس، میتوانید طبق معمول درخواستها را برای مدل ارسال کنید.
بعدش چی
اکنون که اصول اولیه Gemini API را بررسی کرده اید، ممکن است بخواهید امتحان کنید:
- درک بینایی : یاد بگیرید که چگونه از درک بینایی بومی Gemini برای پردازش تصاویر و ویدیوها استفاده کنید.
- درک صوتی : یاد بگیرید که چگونه از درک صوتی بومی Gemini برای پردازش فایل های صوتی استفاده کنید.
Gemini API زمانی که متن، تصویر، ویدئو و صدا به عنوان ورودی ارائه شود، می تواند خروجی متن تولید کند.
این راهنما به شما نشان می دهد که چگونه با استفاده از متدهای generateContent
و streamGenerateContent
متن تولید کنید. برای آشنایی با کار با قابلیت های بینایی و صوتی Gemini، به راهنمای Vision و Audio مراجعه کنید.
متن را از ورودی فقط متنی تولید کنید
ساده ترین راه برای تولید متن با استفاده از Gemini API ارائه یک ورودی متنی به مدل است، همانطور که در این مثال نشان داده شده است:
import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI("GEMINI_API_KEY");
const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
const prompt = "Explain how AI works";
const result = await model.generateContent(prompt);
console.log(result.response.text());
در این مورد، اعلان ("توضیح دهید که هوش مصنوعی چگونه کار می کند") شامل هیچ نمونه خروجی، دستورالعمل های سیستم یا اطلاعات قالب بندی نمی شود. این یک رویکرد شات صفر است. برای برخی از موارد استفاده، یک اعلان یک شات یا چند شات ممکن است خروجی تولید کند که با انتظارات کاربر همسوتر باشد. در برخی موارد، ممکن است بخواهید دستورالعملهای سیستمی را برای کمک به مدل برای درک کار یا پیروی از دستورالعملهای خاص ارائه دهید.
تولید متن از ورودی متن و تصویر
Gemini API از ورودی های چندوجهی پشتیبانی می کند که متن را با فایل های رسانه ای ترکیب می کند. مثال زیر نحوه تولید متن از ورودی متن و تصویر را نشان می دهد:
import { GoogleGenerativeAI } from "@google/generative-ai";
import * as fs from 'node:fs';
const genAI = new GoogleGenerativeAI("GEMINI_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.";
const imagePart = fileToGenerativePart("/path/to/image.png", "image/png");
const result = await model.generateContent([prompt, imagePart]);
console.log(result.response.text());
یک جریان متنی ایجاد کنید
بهطور پیشفرض، مدل پس از تکمیل کل فرآیند تولید متن، پاسخی را برمیگرداند. شما می توانید با منتظر ماندن برای کل نتیجه به تعاملات سریع تری برسید و در عوض از استریم برای مدیریت نتایج جزئی استفاده کنید.
مثال زیر نحوه اجرای جریان با استفاده از روش streamGenerateContent
را برای تولید متن از یک اعلان ورودی متنی نشان می دهد.
import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI("GEMINI_API_KEY");
const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
const prompt = "Explain how AI works";
const result = await model.generateContentStream(prompt);
for await (const chunk of result.stream) {
const chunkText = chunk.text();
process.stdout.write(chunkText);
}
یک مکالمه چت ایجاد کنید
Gemini SDK به شما امکان میدهد چندین دور سؤال و پاسخ جمعآوری کنید و به کاربران این امکان را میدهد تا بهصورت تدریجی به سمت پاسخها قدم بردارند یا برای مشکلات چند قسمتی کمک دریافت کنند. این ویژگی SDK یک رابط برای پیگیری تاریخچه مکالمات ارائه می دهد، اما در پشت صحنه از همان روش generateContent
برای ایجاد پاسخ استفاده می کند.
مثال کد زیر اجرای چت اولیه را نشان می دهد:
import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI("GEMINI_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());
let result2 = await chat.sendMessage("How many paws are in my house?");
console.log(result2.response.text());
همانطور که در مثال زیر نشان داده شده است، می توانید از استریم با چت نیز استفاده کنید:
import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI("GEMINI_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.sendMessageStream("I have 2 dogs in my house.");
for await (const chunk of result.stream) {
const chunkText = chunk.text();
process.stdout.write(chunkText);
}
let result2 = await chat.sendMessageStream("How many paws are in my house?");
for await (const chunk of result2.stream) {
const chunkText = chunk.text();
process.stdout.write(chunkText);
}
پیکربندی تولید متن
هر اعلانی که به مدل ارسال می کنید شامل پارامترهایی است که نحوه تولید پاسخ مدل را کنترل می کند. برای پیکربندی این پارامترها می توانید از GenerationConfig
استفاده کنید. اگر پارامترها را پیکربندی نکنید، مدل از گزینه های پیش فرض استفاده می کند که می تواند بسته به مدل متفاوت باشد.
مثال زیر نحوه پیکربندی چندین گزینه موجود را نشان می دهد.
import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI("GEMINI_API_KEY");
const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
const result = await model.generateContent({
contents: [
{
role: 'user',
parts: [
{
text: "Explain how AI works",
}
],
}
],
generationConfig: {
maxOutputTokens: 1000,
temperature: 0.1,
}
});
console.log(result.response.text());
دستورالعمل های سیستم را اضافه کنید
دستورالعمل های سیستم به شما امکان می دهد رفتار یک مدل را بر اساس نیازهای خاص و موارد استفاده خود هدایت کنید.
با دادن دستورالعملهای سیستم مدل، زمینه اضافی مدل را برای درک کار، ایجاد پاسخهای سفارشیسازیشدهتر، و رعایت دستورالعملهای خاص در تعامل کامل کاربر با مدل فراهم میکنید. همچنین میتوانید با تنظیم دستورالعملهای سیستم، جدا از اعلانهای ارائهشده توسط کاربران نهایی، رفتار سطح محصول را مشخص کنید.
وقتی مدل خود را مقداردهی اولیه می کنید می توانید دستورالعمل های سیستم را تنظیم کنید:
// Set the system instruction during model initialization
const model = genAI.getGenerativeModel({
model: "gemini-1.5-flash",
systemInstruction: "You are a cat. Your name is Neko.",
});
سپس، میتوانید طبق معمول درخواستها را برای مدل ارسال کنید.
بعدش چی
اکنون که اصول اولیه Gemini API را بررسی کرده اید، ممکن است بخواهید امتحان کنید:
- درک بینایی : یاد بگیرید که چگونه از درک بینایی بومی Gemini برای پردازش تصاویر و ویدیوها استفاده کنید.
- درک صوتی : یاد بگیرید که چگونه از درک صوتی بومی Gemini برای پردازش فایل های صوتی استفاده کنید.