Gemini API به شما امکان دسترسی به جدیدترین مدلهای تولیدی Google را میدهد. هنگامی که با ویژگی های عمومی در دسترس شما از طریق API آشنا شدید، برای شروع توسعه، آموزش زبان انتخابی خود را امتحان کنید.
جمینی مجموعه ای از مدل های هوش مصنوعی مولد چندوجهی است که توسط گوگل توسعه یافته است. مدلهای Gemini میتوانند متن و تصویر را بسته به نوع مدلی که انتخاب میکنید، در پیامها بپذیرند و پاسخهای متنی را خروجی بگیرند.
برای دریافت اطلاعات دقیق تر مدل به صفحه مدل های جمینی مراجعه کنید. همچنین میتوانید از متد list_models
برای فهرست کردن تمام مدلهای موجود و سپس از متد get_model
برای دریافت ابرداده برای یک مدل خاص استفاده کنید.
مدل های خاص Gemini هم داده های متنی و هم فایل های رسانه ای را به عنوان ورودی می پذیرند. این قابلیت امکانات اضافی زیادی برای تولید محتوا، تجزیه و تحلیل داده ها و حل مشکلات ایجاد می کند. محدودیتها و الزاماتی وجود دارد که باید در نظر بگیرید، از جمله محدودیت رمز ورودی کلی برای مدلی که استفاده میکنید. برای اطلاعات در مورد محدودیت های نشانه برای مدل های خاص، مدل های Gemini را ببینید.
درخواستهایی که از Gemini API استفاده میکنند نمیتوانند از 20 مگابایت بیشتر باشند. Gemini API یک File API برای ذخیره موقت فایلهای رسانهای برای استفاده در درخواستها ارائه میکند، که به شما امکان میدهد دادههای فوری بیش از حد ۲۰ مگابایت ارائه دهید. برای اطلاعات بیشتر در مورد استفاده از Files API و فرمتهای فایل پشتیبانی شده برای درخواست، به درخواست با فایلهای رسانه مراجعه کنید.
ایجاد دستورات مؤثر یا مهندسی سریع، ترکیبی از هنر و علم است. برای آشنایی با روشهای مختلف درخواست، به مقدمه راهنمایی در مورد نحوه نزدیک شدن به درخواست و راهنمای اعلان 101 مراجعه کنید.
Gemini API به شما امکان میدهد از دادههای متنی و تصویری برای درخواست استفاده کنید، بسته به نوع مدلی که استفاده میکنید. به عنوان مثال، میتوانید متن را از اعلانهای متنی یا چند وجهی با استفاده از مدل Gemini 1.5 تولید کنید. در این بخش نمونه کدهای اولیه هر کدام ارائه می شود. برای مثال دقیق تر که همه پارامترها را پوشش می دهد، به مرجع generateContent
API مراجعه کنید.
میتوانید برای انجام یک کار مرتبط با بینایی، یک پیام متنی با یک تصویر به مدل Gemini 1.5 ارسال کنید. به عنوان مثال، شرح یک تصویر یا شناسایی آن در یک تصویر.
مثالهای کد زیر یک پیادهسازی اساسی از یک اعلان متن و تصویر را برای هر زبان پشتیبانی شده نشان میدهند:
model = genai.GenerativeModel('gemini-1.5-flash')
cookie_picture = {
'mime_type': 'image/png',
'data': pathlib.Path('cookie.png').read_bytes()
}
prompt = "Do these look store-bought or homemade?"
response = model.generate_content(
model="gemini-1.5-flash",
content=[prompt, cookie_picture]
)
print(response.text)
برای دیدن قطعه کد کامل به آموزش پایتون مراجعه کنید.
vmodel := client.GenerativeModel("gemini-1.5-flash")
data, err := os.ReadFile(filepath.Join("path-to-image", imageFile))
if err != nil {
log.Fatal(err)
}
resp, err := vmodel.GenerateContent(ctx, genai.Text("Do these look store-bought or homemade?"), genai.ImageData("jpeg", data))
if err != nil {
log.Fatal(err)
}
برای مثال کامل به آموزش Go مراجعه کنید.
const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
const prompt = "Do these look store-bought or homemade?";
const image = {
inlineData: {
data: Buffer.from(fs.readFileSync("cookie.png")).toString("base64"),
mimeType: "image/png",
},
};
const result = await model.generateContent([prompt, image]);
console.log(result.response.text());
برای مثال کامل به آموزش Node.js مراجعه کنید.
const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
const prompt = "Do these look store-bought or homemade?";
const image = {
inlineData: {
data: base64EncodedImage /* see JavaScript quickstart for details */,
mimeType: "image/png",
},
};
const result = await model.generateContent([prompt, image]);
console.log(result.response.text());
برای مثال کامل به آموزش وب مراجعه کنید.
final model = GenerativeModel(model: 'gemini-1.5-flash', apiKey: apiKey);
final prompt = 'Do these look store-bought or homemade?';
final imageBytes = await File('cookie.png').readAsBytes();
final content = [
Content.multi([
TextPart(prompt),
DataPart('image/png', imageBytes),
])
];
final response = await model.generateContent(content);
print(response.text);
برای مثال کامل آموزش Dart (Flutter) را ببینید.
let model = GenerativeModel(name: "gemini-1.5-flash", apiKey: "API_KEY")
let cookieImage = UIImage(...)
let prompt = "Do these look store-bought or homemade?"
let response = try await model.generateContent(prompt, cookieImage)
برای یک مثال کامل به آموزش سوئیفت مراجعه کنید.
val generativeModel = GenerativeModel(
modelName = "gemini-1.5-flash",
apiKey = BuildConfig.apiKey
)
val cookieImage: Bitmap = // ...
val inputContent = content() {
image(cookieImage)
text("Do these look store-bought or homemade?")
}
val response = generativeModel.generateContent(inputContent)
print(response.text)
برای مثال کامل به آموزش اندروید مراجعه کنید.
curl https://generativelanguage.googleapis.com/v1/models/gemini-1.5-flash:generateContent?key=${API_KEY} \
-H 'Content-Type: application/json' \
-X POST \
-d @<(echo'{
"contents":[
{ "parts":[
{"text": "Do these look store-bought or homemade?"},
{ "inlineData": {
"mimeType": "image/png",
"data": "'$(base64 -w0 cookie.png)'"
}
}
]
}
]
}')
برای جزئیات بیشتر به آموزش REST API مراجعه کنید.
Gemini API همچنین می تواند ورودی فقط متنی را مدیریت کند. این ویژگی به شما امکان می دهد وظایف پردازش زبان طبیعی (NLP) مانند تکمیل و خلاصه سازی متن را انجام دهید.
مثالهای کد زیر اجرای اساسی یک اعلان متنی را برای هر زبان پشتیبانی شده نشان میدهند:
model = genai.GenerativeModel('gemini-1.5-flash')
prompt = "Write a story about a magic backpack."
response = model.generate_content(prompt)
برای مشاهده مثال کامل به آموزش پایتون مراجعه کنید.
ctx := context.Background()
client, err := genai.NewClient(ctx, option.WithAPIKey(os.Getenv("API_KEY")))
if err != nil {
log.Fatal(err)
}
defer client.Close()
model := client.GenerativeModel("gemini-1.5-flash")
resp, err := model.GenerateContent(ctx, genai.Text("Write a story about a magic backpack."))
if err != nil {
log.Fatal(err)
}
برای مثال کامل به آموزش Go مراجعه کنید.
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());
برای مثال کامل به آموزش Node.js مراجعه کنید.
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());
برای مثال کامل به آموزش وب مراجعه کنید.
final model = GenerativeModel(model: 'gemini-1.5-flash', apiKey: apiKey);
final prompt = 'Write a story about a magic backpack.';
final content = [Content.text(prompt)];
final response = await model.generateContent(content);
print(response.text);
برای مثال کامل آموزش Dart (Flutter) را ببینید.
let model = GenerativeModel(name: "gemini-1.5-flash", apiKey: "API_KEY")
let prompt = "Write a story about a magic backpack."
let response = try await model.generateContent(prompt)
برای یک مثال کامل به آموزش سوئیفت مراجعه کنید.
val generativeModel = GenerativeModel(
modelName = "gemini-1.5-flash",
apiKey = BuildConfig.apiKey
)
val prompt = "Write a story about a magic backpack."
val response = generativeModel.generateContent(prompt)
print(response.text)
برای مثال کامل به آموزش اندروید مراجعه کنید.
curl https://generativelanguage.googleapis.com/v1/models/gemini-1.5-flash:generateContent?key=$API_KEY \
-H 'Content-Type: application/json' \
-X POST \
-d '{ "contents":[
{ "parts":[{"text": "Write a story about a magic backpack"}]}
]
}'
برای جزئیات بیشتر به آموزش REST API مراجعه کنید.
می توانید از Gemini API برای ایجاد تجربه های چت تعاملی برای کاربران خود استفاده کنید. استفاده از ویژگی چت API به شما این امکان را می دهد که چندین دور سوال و پاسخ جمع آوری کنید و به کاربران این امکان را می دهد که به تدریج به سمت پاسخ ها قدم بردارند یا برای مشکلات چند قسمتی کمک بگیرند. این ویژگی برای برنامه هایی که نیاز به ارتباط مداوم دارند، مانند ربات های چت، معلمان تعاملی یا دستیاران پشتیبانی مشتری ایده آل است.
نمونههای کد زیر اجرای اساسی تعامل چت را برای هر زبان پشتیبانی شده نشان میدهند:
model = genai.GenerativeModel('gemini-1.5-flash')
chat = model.start_chat(history=[])
response = chat.send_message(
"Pretend you\'re a snowman and stay in character for each response.")
print(response.text)
response = chat.send_message(
"What\'s your favorite season of the year?")
print(response.text)
برای مثال کامل، دمو چت را در آموزش پایتون ببینید.
model := client.GenerativeModel("gemini-1.5-flash")
cs := model.StartChat()
cs.History = []*genai.Content{
&genai.Content{
Parts: []genai.Part{
genai.Text("Pretend you're a snowman and stay in character for each response."),
},
Role: "user",
},
&genai.Content{
Parts: []genai.Part{
genai.Text("Hello! It's cold! Isn't that great?"),
},
Role: "model",
},
}
resp, err := cs.SendMessage(ctx, genai.Text("What's your favorite season of the year?"))
if err != nil {
log.Fatal(err)
}
برای مثال کامل، دمو چت را در آموزش Go ببینید.
const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash"});
const chat = model.startChat({
history: [
{
role: "user",
parts: "Pretend you're a snowman and stay in character for each response.",
},
{
role: "model",
parts: "Hello! It's cold! Isn't that great?",
},
],
generationConfig: {
maxOutputTokens: 100,
},
});
const msg = "What's your favorite season of the year?";
const result = await chat.sendMessage(msg);
console.log(result.response.text());
برای مثال کامل، دمو چت را در آموزش Node.js ببینید.
const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash"});
const chat = model.startChat({
history: [
{
role: "user",
parts: "Pretend you're a snowman and stay in character for each response.",
},
{
role: "model",
parts: "Hello! It's so cold! Isn't that great?",
},
],
generationConfig: {
maxOutputTokens: 100,
},
});
const msg = "What's your favorite season of the year?";
const result = await chat.sendMessage(msg);
console.log(result.response.text());
برای مثال کامل، دمو چت را در آموزش وب مشاهده کنید.
final model = GenerativeModel(model: 'gemini-1.5-flash', apiKey: apiKey);
final chat = model.startChat(history: [
Content.text(
"Pretend you're a snowman and stay in character for each response."),
Content.model([TextPart("Hello! It's cold! Isn't that great?")]),
]);
final content = Content.text("What's your favorite season of the year?");
final response = await chat.sendMessage(content);
print(response.text);
برای مثال کامل، دمو چت را در آموزش Dart (Flutter) ببینید.
let model = GenerativeModel(name: "gemini-1.5-flash", apiKey: "API_KEY")
let chat = model.startChat()
var message = "Pretend you're a snowman and stay in character for each response."
var response = try await chat.sendMessage(message)
message = "What\'s your favorite season of the year?"
response = try await chat.sendMessage(message)
برای مثال کامل، دمو چت را در آموزش سوئیفت ببینید.
val generativeModel = GenerativeModel(
modelName = "gemini-1.5-flash",
apiKey = BuildConfig.apiKey
)
val chat = generativeModel.startChat()
val response = chat.sendMessage("Pretend you're a snowman and stay in
character for each response.")
print(response.text)
برای مثال کامل به آموزش اندروید مراجعه کنید.
curl https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key=$API_KEY \ -H 'Content-Type: application/json' \ -X POST \ -d '{ "contents": [ {"role":"user", "parts":[{ "text": "Pretend you're a snowman and stay in character for each {"role": "model", response."}]}, "parts":[{ "text": "Hello! It's so cold! Isn't that great?"}]}, {"role": "user", "parts":[{ "text": "What\'s your favorite season of the year?"}]}, ] }' 2> /dev/null | grep "text"
# response example: "text": "Winter, of course!"
برای جزئیات بیشتر به آموزش REST API مراجعه کنید.
Gemini API راه دیگری برای دریافت پاسخها از مدلهای هوش مصنوعی مولد فراهم میکند: به عنوان یک جریان داده. یک پاسخ جریانی، تکههای افزایشی داده را همانطور که توسط مدل تولید میشود، به برنامه شما برمیگرداند. این ویژگی به شما امکان می دهد برای نشان دادن پیشرفت و ایجاد یک تجربه تعاملی تر به درخواست کاربر به سرعت پاسخ دهید.
پاسخ های جریانی گزینه ای برای درخواست فرم آزاد و چت با مدل های Gemini هستند. مثالهای کد زیر نشان میدهند که چگونه میتوان برای هر زبان پشتیبانی شده، یک پاسخ جریانی درخواست کرد:
prompt = "Write a story about a magic backpack."
response = genai.stream_generate_content(
model="models/gemini-1.5-flash",
prompt=prompt
)
برای دیدن قطعه کد کامل به آموزش پایتون مراجعه کنید.
ctx := context.Background()
client, err := genai.NewClient(ctx, option.WithAPIKey(os.Getenv("API_KEY")))
if err != nil {
log.Fatal(err)
}
defer client.Close()
model := client.GenerativeModel("gemini-1.5-flash")
iter := model.GenerateContentStream(ctx, genai.Text("Write a story about a magic backpack."))
for {
resp, err := iter.Next()
if err == iterator.Done {
break
}
if err != nil {
log.Fatal(err)
}
// print resp
}
برای مثال کامل به آموزش Go مراجعه کنید.
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();
console.log(chunkText);
}
برای مثال کامل به آموزش Node.js مراجعه کنید.
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();
console.log(chunkText);
}
برای مثال کامل به آموزش وب مراجعه کنید.
final model = GenerativeModel(model: 'gemini-1.5-flash', apiKey: apiKey);
final prompt = 'Write a story about a magic backpack.';
final content = [Content.text(prompt)];
final response = model.generateContentStream(content);
await for (final chunk in response) {
print(chunk.text);
}
برای مثال کامل آموزش Dart (Flutter) را ببینید.
let model = GenerativeModel(name: "gemini-1.5-flash", apiKey: "API_KEY")
let prompt = "Write a story about a magic backpack."
let stream = model.generateContentStream(prompt)
for try await chunk in stream {
print(chunk.text ?? "No content")
}
برای مثال کامل به آموزش سوئیفت مراجعه کنید.
val generativeModel = GenerativeModel(
modelName = "gemini-1.5-flash",
apiKey = BuildConfig.apiKey
)
val inputContent = content {
text("Write a story about a magic backpack.")
}
var fullResponse = ""
generativeModel.generateContentStream(inputContent).collect { chunk ->
print(chunk.text)
fullResponse += chunk.text
}
برای مثال کامل به آموزش اندروید مراجعه کنید.
curl https://generativelanguage.googleapis.com/v1/models/gemini-1.5-flash:streamGenerateContent?key=${API_KEY} \
-H 'Content-Type: application/json' \
--no-buffer \
-d '{ "contents":[
{"role": "user",
"parts":[{"text": "Write a story about a magic backpack."}]
}
]
}' > response.json
برای جزئیات بیشتر به آموزش REST API مراجعه کنید.
بسته به برنامه شما، ممکن است بخواهید پاسخ به یک درخواست در قالب داده های ساخت یافته بازگردانده شود، به خصوص اگر از پاسخ ها برای پر کردن رابط های برنامه نویسی استفاده می کنید. Gemini API یک پارامتر پیکربندی برای درخواست پاسخ در قالب JSON ارائه می دهد.
میتوانید خروجی مدل JSON را با تنظیم گزینه response_mime_type
روی application/json
داشته باشید و در اعلان، فرمت JSON مورد نظر خود را در پاسخ توضیح دهید:
model = genai.GenerativeModel('gemini-1.5-flash',
generation_config={"response_mime_type": "application/json"})
prompt = """
List 5 popular cookie recipes.
Using this JSON schema:
Recipe = {"recipe_name": str}
Return a `list[Recipe]`
"""
response = model.generate_content(prompt)
print(response.text)
curl https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key=$API_KEY \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"contents": [
{
"parts": [
{
"text": "\nList 5 popular cookie recipes.\n\nUsing this JSON schema:\n\n Recipe = {\"recipe_name\": str}\n\nReturn a `list[Recipe]`\n "
}
]
}
]
"generationConfig": {
"response_mime_type": "application/json",
}
}'
در حالی که مدلهای فلش Gemini 1.5 فقط یک توضیح متنی از طرح JSON را میپذیرند که میخواهید برگردانده شود، مدلهای Gemini 1.5 Pro به شما امکان میدهند یک شی طرح (یا معادل نوع Python) را ارسال کنید، و خروجی مدل دقیقاً از آن طرح پیروی میکند. این همچنین به عنوان تولید کنترل شده یا رمزگشایی محدود شناخته می شود.
به عنوان مثال، برای دریافت لیستی از اشیاء Recipe
، list[Recipe]
را به فیلد response_schema
آرگومان generation_config
ارسال کنید:
import typing_extensions as typing
class Recipe(typing.TypedDict):
recipe_name: str
model = genai.GenerativeModel(model_name="models/gemini-1.5-pro")
result = model.generate_content(
"List 5 popular cookie recipes",
generation_config=genai.GenerationConfig(response_mime_type="application/json",
response_schema = list[Recipe]))
print(result.text)
curl https://generativelanguage.googleapis.com/v1beta/models/models/gemini-1.5-pro:generateContent?
-H 'Content-Type: application/json'
-X POST \
-d '{
"contents": [
{
"parts": [
{
"text": "List 5 popular cookie recipes"
}
]
}
],
"generationConfig": {
"responseMimeType": "application/json",
"responseSchema": {
"type": "ARRAY",
"items": {
"type": "OBJECT",
"properties": {
"recipe_name": {
"type": "STRING"
}
}
}
}
}
}'
```
برای کسب اطلاعات بیشتر، به شروع سریع حالت JSON در کتاب آشپزی Gemini API مراجعه کنید.
سرویس جاسازی در Gemini API جاسازی های پیشرفته ای را برای کلمات، عبارات و جملات ایجاد می کند. تعبیههای بهدستآمده میتوانند برای کارهای NLP، مانند جستجوی معنایی، طبقهبندی متن، و خوشهبندی و بسیاری موارد دیگر استفاده شوند. راهنمای جاسازیها را ببینید تا بدانید جاسازیها چیست و برخی موارد استفاده کلیدی برای سرویس جاسازی برای کمک به شما در شروع کار.
- با استفاده از Google AI Studio UI شروع به کار کنید.
- دسترسی سمت سرور به Gemini API را با آموزش های Python ، Go ، یا Node.js امتحان کنید.
- ساخت وب را با آموزش وب شروع کنید.
- با آموزش سوئیفت یا آموزش اندروید شروع به ساخت برنامه های تلفن همراه کنید.
- اگر کاربر فعلی Google Cloud هستید (یا میخواهید از Gemini در Vertex برای استفاده از اکوسیستم قدرتمند Google Cloud استفاده کنید)، برای اطلاعات بیشتر ، هوش مصنوعی Generative در Vertex AI را بررسی کنید.