Gemini API زمانی که متن، تصویر، ویدئو و صدا به عنوان ورودی ارائه شود، می تواند خروجی متن تولید کند.
این راهنما به شما نشان می دهد که چگونه با استفاده از متدهای generateContent
و streamGenerateContent
متن تولید کنید. برای آشنایی با کار با قابلیت های بینایی و صوتی Gemini، به راهنمای Vision و Audio مراجعه کنید.
قبل از شروع: پروژه و کلید API خود را تنظیم کنید
قبل از فراخوانی Gemini API، باید پروژه خود را راه اندازی کرده و کلید API خود را پیکربندی کنید.
کلید API خود را دریافت و ایمن کنید
برای فراخوانی Gemini API به یک کلید API نیاز دارید. اگر قبلاً یکی ندارید، یک کلید در Google AI Studio ایجاد کنید.
اکیداً توصیه می شود که یک کلید API را در سیستم کنترل نسخه خود بررسی نکنید .
شما باید کلید API خود را در یک فروشگاه محرمانه مانند Google Cloud Secret Manager ذخیره کنید.
این آموزش فرض می کند که شما به کلید API خود به عنوان یک متغیر محیطی دسترسی دارید.
بسته SDK را نصب کنید و کلید API خود را پیکربندی کنید
Python SDK برای Gemini API در بسته google-generativeai
موجود است.
وابستگی را با استفاده از pip نصب کنید:
pip install -U google-generativeai
بسته را وارد کنید و سرویس را با کلید API خود پیکربندی کنید:
import os import google.generativeai as genai genai.configure(api_key=os.environ['API_KEY'])
متن را از ورودی فقط متنی تولید کنید
ساده ترین راه برای تولید متن با استفاده از Gemini API ارائه یک ورودی متنی به مدل است، همانطور که در این مثال نشان داده شده است:
import google.generativeai as genai
model = genai.GenerativeModel("gemini-1.5-flash")
response = model.generate_content("Write a story about a magic backpack.")
print(response.text)
در این مورد، اعلان ("نوشتن داستانی درباره یک کوله پشتی جادویی") شامل هیچ نمونه خروجی، دستورالعمل های سیستم، یا اطلاعات قالب بندی نمی شود. این یک رویکرد شات صفر است. برای برخی از موارد استفاده، یک اعلان یک شات یا چند شات ممکن است خروجی تولید کند که با انتظارات کاربر همسوتر باشد. در برخی موارد، ممکن است بخواهید دستورالعملهای سیستمی را برای کمک به مدل برای درک کار یا پیروی از دستورالعملهای خاص ارائه دهید.
تولید متن از ورودی متن و تصویر
Gemini API از ورودی های چندوجهی پشتیبانی می کند که متن را با فایل های رسانه ای ترکیب می کند. مثال زیر نحوه تولید متن از ورودی متن و تصویر را نشان می دهد:
import google.generativeai as genai
import PIL.Image
model = genai.GenerativeModel("gemini-1.5-flash")
organ = PIL.Image.open(media / "organ.jpg")
response = model.generate_content(["Tell me about this instrument", organ])
print(response.text)
همانند اعلانهای متنی، اعلان چندوجهی میتواند شامل رویکردها و اصلاحات مختلفی باشد. بسته به خروجی این مثال، ممکن است بخواهید مراحلی را به دستور اضافه کنید یا در دستورالعمل های خود دقیق تر باشید. برای کسب اطلاعات بیشتر، به استراتژیهای درخواست فایل مراجعه کنید.
یک جریان متنی ایجاد کنید
بهطور پیشفرض، مدل پس از تکمیل کل فرآیند تولید متن، پاسخی را برمیگرداند. شما می توانید با منتظر ماندن برای کل نتیجه به تعاملات سریع تری برسید و در عوض از استریم برای مدیریت نتایج جزئی استفاده کنید.
مثال زیر نحوه اجرای جریان با استفاده از روش streamGenerateContent
را برای تولید متن از یک اعلان ورودی متنی نشان می دهد.
import google.generativeai as genai
model = genai.GenerativeModel("gemini-1.5-flash")
response = model.generate_content("Write a story about a magic backpack.", stream=True)
for chunk in response:
print(chunk.text)
print("_" * 80)
یک چت تعاملی بسازید
می توانید از Gemini API برای ایجاد تجربه های چت تعاملی برای کاربران خود استفاده کنید. استفاده از ویژگی چت API به شما این امکان را میدهد که چندین دور سوال و پاسخ جمعآوری کنید و به کاربران این امکان را میدهد تا به تدریج به سمت پاسخها قدم بردارند یا برای مشکلات چند بخشی کمک بگیرند. این ویژگی برای برنامه هایی که نیاز به ارتباط مداوم دارند، مانند ربات های چت، معلمان تعاملی یا دستیاران پشتیبانی مشتری ایده آل است.
مثال کد زیر اجرای چت اولیه را نشان می دهد:
import google.generativeai as genai
model = genai.GenerativeModel("gemini-1.5-flash")
chat = model.start_chat(
history=[
{"role": "user", "parts": "Hello"},
{"role": "model", "parts": "Great to meet you. What would you like to know?"},
]
)
response = chat.send_message("I have 2 dogs in my house.")
print(response.text)
response = chat.send_message("How many paws are in my house?")
print(response.text)
پخش جریانی چت را فعال کنید
همانطور که در مثال زیر نشان داده شده است، می توانید از استریم با چت نیز استفاده کنید:
import google.generativeai as genai
model = genai.GenerativeModel("gemini-1.5-flash")
chat = model.start_chat(
history=[
{"role": "user", "parts": "Hello"},
{"role": "model", "parts": "Great to meet you. What would you like to know?"},
]
)
response = chat.send_message("I have 2 dogs in my house.", stream=True)
for chunk in response:
print(chunk.text)
print("_" * 80)
response = chat.send_message("How many paws are in my house?", stream=True)
for chunk in response:
print(chunk.text)
print("_" * 80)
print(chat.history)
پیکربندی تولید متن
هر اعلانی که به مدل ارسال می کنید شامل پارامترهایی است که نحوه تولید پاسخ مدل را کنترل می کند. برای پیکربندی این پارامترها می توانید از GenerationConfig
استفاده کنید. اگر پارامترها را پیکربندی نکنید، مدل از گزینه های پیش فرض استفاده می کند که می تواند بسته به مدل متفاوت باشد.
مثال زیر نحوه پیکربندی چندین گزینه موجود را نشان می دهد.
import google.generativeai as genai
model = genai.GenerativeModel("gemini-1.5-flash")
response = model.generate_content(
"Tell me a story about a magic backpack.",
generation_config=genai.types.GenerationConfig(
# Only one candidate for now.
candidate_count=1,
stop_sequences=["x"],
max_output_tokens=20,
temperature=1.0,
),
)
print(response.text)
candidateCount
تعداد پاسخ های تولید شده برای بازگشت را مشخص می کند. در حال حاضر، این مقدار را فقط می توان روی 1 تنظیم کرد. اگر تنظیم نشود، به طور پیش فرض روی 1 خواهد بود.
stopSequences
مجموعهای از دنبالههای کاراکتر (تا 5) را مشخص میکند که تولید خروجی را متوقف میکند. اگر مشخص شود، API در اولین ظاهر یک stop_sequence
متوقف میشود. توالی توقف به عنوان بخشی از پاسخ گنجانده نمی شود.
maxOutputTokens
حداکثر تعداد توکنها را برای گنجاندن در یک نامزد تنظیم میکند.
temperature
تصادفی بودن خروجی را کنترل می کند. برای پاسخهای خلاقانهتر از مقادیر بالاتر و برای پاسخهای قطعیتر از مقادیر پایینتر استفاده کنید. مقادیر می توانند از [0.0، 2.0] متغیر باشند.
همچنین می توانید تماس های فردی را برای generateContent
پیکربندی کنید:
response = model.generate_content(
'Write a story about a magic backpack.',
generation_config = genai.GenerationConfig(
max_output_tokens=1000,
temperature=0.1,
)
)
هر مقداری که روی فراخوانی فردی تنظیم شده باشد، مقادیر سازنده مدل را لغو می کند.
بعدش چی
اکنون که اصول اولیه Gemini API را بررسی کرده اید، ممکن است بخواهید امتحان کنید:
- درک بینایی : یاد بگیرید که چگونه از درک بینایی بومی Gemini برای پردازش تصاویر و ویدیوها استفاده کنید.
- دستورالعملهای سیستم : دستورالعملهای سیستم به شما امکان میدهد رفتار مدل را بر اساس نیازهای خاص و موارد استفاده خود هدایت کنید.
- درک صوتی : یاد بگیرید که چگونه از درک صوتی بومی Gemini برای پردازش فایل های صوتی استفاده کنید.