با استفاده از Gemini API متن تولید کنید

Gemini API می تواند خروجی متن را از انواع مختلف ورودی از جمله متن، تصویر، ویدئو و صدا تولید کند. می توانید از تولید متن برای برنامه های مختلف استفاده کنید، از جمله:

  • نوشتن خلاق
  • توصیف یا تفسیر دارایی های رسانه ای
  • تکمیل متن
  • خلاصه کردن متن آزاد
  • ترجمه بین زبانها
  • چت ربات ها
  • موارد استفاده رمان خودتان

این راهنما به شما نشان می دهد که چگونه با استفاده از API های generateContent و streamGenerateContent متن تولید کنید. تمرکز بر روی خروجی متن از ورودی فقط متن و متن و تصویر است. برای اطلاعات بیشتر در مورد درخواست چندوجهی با فایل‌های ویدیویی و صوتی، به استراتژی‌های درخواست فایل مراجعه کنید.

قبل از شروع: پروژه و کلید API خود را تنظیم کنید

قبل از فراخوانی Gemini API، باید پروژه خود را راه اندازی کرده و کلید API خود را پیکربندی کنید.

متن را از ورودی فقط متنی تولید کنید

ساده ترین راه برای تولید متن با استفاده از Gemini API ارائه یک ورودی متنی به مدل است، همانطور که در این مثال نشان داده شده است:

model = genai.GenerativeModel("gemini-1.5-flash")
response = model.generate_content("Write a story about a magic backpack.")
print(response.text)

در این مورد، اعلان ("نوشتن داستانی درباره یک کوله پشتی جادویی") شامل هیچ نمونه خروجی، دستورالعمل های سیستم، یا اطلاعات قالب بندی نمی شود. این یک رویکرد شات صفر است. برای برخی از موارد استفاده، یک اعلان یک شات یا چند شات ممکن است خروجی تولید کند که با انتظارات کاربر همسوتر باشد. در برخی موارد، ممکن است بخواهید دستورالعمل‌های سیستمی را برای کمک به مدل برای درک کار یا پیروی از دستورالعمل‌های خاص ارائه دهید.

تولید متن از ورودی متن و تصویر

Gemini API از ورودی های چندوجهی پشتیبانی می کند که متن را با فایل های رسانه ای ترکیب می کند. مثال زیر نحوه تولید متن از ورودی متن و تصویر را نشان می دهد:

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 را برای تولید متن از یک اعلان ورودی متنی نشان می دهد.

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 به شما این امکان را می‌دهد که چندین دور سوال و پاسخ جمع‌آوری کنید و به کاربران این امکان را می‌دهد تا به تدریج به سمت پاسخ‌ها قدم بردارند یا برای مشکلات چند بخشی کمک بگیرند. این ویژگی برای برنامه هایی که نیاز به ارتباط مداوم دارند، مانند ربات های چت، معلمان تعاملی یا دستیاران پشتیبانی مشتری ایده آل است.

مثال کد زیر اجرای چت اولیه را نشان می دهد:

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)

پیکربندی تولید متن

هر اعلانی که به مدل ارسال می کنید شامل پارامترهایی است که نحوه تولید پاسخ مدل را کنترل می کند. برای پیکربندی این پارامترها می توانید از GenerationConfig استفاده کنید. اگر پارامترها را پیکربندی نکنید، مدل از گزینه های پیش فرض استفاده می کند که می تواند بسته به مدل متفاوت باشد.

مثال زیر نحوه پیکربندی چندین گزینه موجود را نشان می دهد.

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,
    )
)

هر مقداری که روی فراخوانی فردی تنظیم شده باشد، مقادیر سازنده مدل را لغو می کند.

بعدش چی

این راهنما نحوه استفاده از generateContent و streamGenerateContent را برای تولید خروجی های متنی از ورودی های متنی و متنی و تصویری نشان می دهد. برای کسب اطلاعات بیشتر در مورد تولید متن با استفاده از Gemini API، به منابع زیر مراجعه کنید:

  • استراتژی‌های درخواست فایل : Gemini API از درخواست با داده‌های متنی، تصویری، صوتی و ویدیویی پشتیبانی می‌کند که به عنوان درخواست چندوجهی نیز شناخته می‌شود.
  • دستورالعمل‌های سیستم : دستورالعمل‌های سیستم به شما امکان می‌دهد رفتار مدل را بر اساس نیازها و موارد استفاده خاص خود هدایت کنید.
  • راهنمایی ایمنی : گاهی اوقات مدل‌های هوش مصنوعی تولیدی خروجی‌های غیرمنتظره مانند خروجی‌های نادرست، جانبدارانه یا توهین‌آمیز تولید می‌کنند. پس پردازش و ارزیابی انسانی برای محدود کردن خطر آسیب ناشی از چنین خروجی‌هایی ضروری است.