داشبورد توسعه‌دهنده
پرسش از هوش مصنوعی
پرسش از هوش مصنوعی

پارامترهای تفکر Gemini و تولید تصویر Stability AI

این راهنما نحوه استفاده از پارامترهای مختص ارائه دهنده با ارائه‌دهندگان مختلف مدل هوش مصنوعی از طریق API یکپارچه AvalAI را توضیح می‌دهد.

مقدمه

ارائه‌دهندگان مختلف مدل هوش مصنوعی پارامترهای منحصر به فردی برای کنترل رفتار مدل‌های خود ارائه می‌دهند. در حالی که AvalAI یک API یکپارچه فراهم می‌کند، شما می‌توانید به این ویژگی‌های مختص ارائه دهنده به چند روش دسترسی داشته باشید:

  1. از طریق پارامتر extra_body هنگام استفاده از کتابخانه‌های کلاینت
  2. با قرار دادن مستقیم آنها در بدنه درخواست برای فراخوانی‌های مستقیم API
  3. برای کاربران تایپ‌اسکریپت، با استفاده از // @ts-expect-error برای ارسال مستقیم پارامترهای مستندنشده

این راهنما مهم‌ترین پارامترهای مختص ارائه دهنده و نحوه استفاده موثر از آنها را پوشش می‌دهد.

استفاده از پارامترهای مستندنشده در تایپ‌اسکریپت

هنگام کار با تایپ‌اسکریپت، می‌توانید از کامنت // @ts-expect-error برای ارسال مستقیم پارامترهای مختص ارائه دهنده استفاده کنید:

javascript
// مثال تایپ‌اسکریپت - استفاده از @ts-expect-error برای پارامترهای مستندنشده
const response = await client.chat.completions.create({
  model: "gemini-2.5-flash",
  messages: [
    {
      role: "user",
      content: "این مسئله ریاضی پیچیده را گام به گام حل کن: ...",
    },
  ],
  // @ts-expect-error thinking یک پارامتر مستندنشده است
  thinking: { type: "enabled", budget_tokens: 2000 },
});
نسخه معادل Responses API مدل این نسخه روی `gpt-5.5` تنظیم شده، چون `gemini-2.5-flash` ممکن است در داده‌های فعلی AvalAI برای `/v1/responses` فعال نباشد.

وقتی مدل انتخابی از /v1/responses پشتیبانی می‌کند، این نسخه را کنار مثال Chat Completions استفاده کنید. messages به input منتقل می‌شود و متن نهایی از response.output_text خوانده می‌شود.

python
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["AVALAI_API_KEY"],
    base_url="https://api.avalai.ir/v1",
)

response = client.responses.create(
    model="gpt-5.6-luna",
    instructions="You are a helpful assistant.",
    input="این مسئله ریاضی پیچیده را گام به گام حل کن: ...",
)

print(response.output_text)
  • messagesinput
  • پیام سیستمی → instructions یا آیتم developer
  • choices[0].message.contentresponse.output_text
  • برای ابزارها و خروجی‌های چندوجهی، response.output را بر اساس type بررسی کنید.

این روش به شما امکان می‌دهد بررسی نوع تایپ‌اسکریپت را برای پارامترهایی که توسط ارائه دهنده پشتیبانی می‌شوند اما در تعاریف نوع کتابخانه کلاینت مستند نشده‌اند، دور بزنید. کتابخانه در زمان اجرا بررسی نمی‌کند که درخواست با نوع مطابقت داشته باشد، بنابراین هر مقدار اضافی که ارسال می‌کنید، به همان صورت به API ارائه دهنده ارسال می‌شود.

مدل‌های Gemini: پارامتر تفکر

مدل‌های Gemini گوگل (به طور خاص gemini-2.5-flash و gemini-2.5-pro) از استدلال قابل تنظیم از طریق تنظیمات "تفکر" پشتیبانی می‌کنند. این به شما امکان می‌دهد میزان استدلالی که مدل انجام می‌دهد را کنترل کنید و بین عمق تحلیل و هزینه تعادل برقرار کنید.

نکته

thinking_budget تنها در Gemini 2.5 Flash پشتیبانی می‌شود. این اطلاعات در زمان نگارش این مطلب صحیح است و ممکن است در طول زمان تغییر کند. برای آخرین اطلاعات، به مستندات رسمی Google AI مراجعه کنید.

فعال‌سازی و پیکربندی تفکر

هنگام استفاده از کتابخانه‌های کلاینت OpenAI با AvalAI، می‌توانید رفتار تفکر Gemini را با استفاده از پارامتر extra_body کنترل کنید:

python
# مثال پایتون - فعال‌سازی تفکر با یک بودجه
response = client.chat.completions.create(
    model="gemini-2.5-flash",
    messages=[
        {"role": "user", "content": "این مسئله ریاضی پیچیده را گام به گام حل کن: ..."}
    ],
    extra_body={
        "thinking": {"type": "enabled", "budget_tokens": 2000}
    },  # اجازه استفاده تا 2000 توکن برای استدلال
)
javascript
// مثال جاوااسکریپت - فعال‌سازی تفکر با یک بودجه
const response = await client.chat.completions.create({
  model: "gemini-2.5-flash",
  messages: [
    {
      role: "user",
      content: "این مسئله ریاضی پیچیده را گام به گام حل کن: ...",
    },
  ],
  // @ts-expect-error thinking یک پارامتر مستندنشده است
  thinking: { type: "enabled", budget_tokens: 2000 }, // اجازه استفاده تا 2000 توکن برای استدلال
});
نسخه معادل Responses API مدل این نسخه روی `gpt-5.5` تنظیم شده، چون `gemini-2.5-flash` ممکن است در داده‌های فعلی AvalAI برای `/v1/responses` فعال نباشد.

وقتی مدل انتخابی از /v1/responses پشتیبانی می‌کند، این نسخه را کنار مثال Chat Completions استفاده کنید. messages به input منتقل می‌شود و متن نهایی از response.output_text خوانده می‌شود.

python
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["AVALAI_API_KEY"],
    base_url="https://api.avalai.ir/v1",
)

response = client.responses.create(
    model="gpt-5.6-luna",
    instructions="You are a helpful assistant.",
    input="این مسئله ریاضی پیچیده را گام به گام حل کن: ...",
)

print(response.output_text)
javascript
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.AVALAI_API_KEY,
  baseURL: "https://api.avalai.ir/v1",
});

const response = await client.responses.create({
  model: "gpt-5.6-luna",
  instructions: "You are a helpful assistant.",
  input: "این مسئله ریاضی پیچیده را گام به گام حل کن: ...",
});

console.log(response.output_text);
bash
curl https://api.avalai.ir/v1/responses \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $AVALAI_API_KEY" \
  -d '
  {
    "model": "gpt-5.6-luna",
    "input": "این مسئله ریاضی پیچیده را گام به گام حل کن: ...",
    "instructions": "You are a helpful assistant."
  }'
  • messagesinput
  • پیام سیستمی → instructions یا آیتم developer
  • choices[0].message.contentresponse.output_text
  • برای ابزارها و خروجی‌های چندوجهی، response.output را بر اساس type بررسی کنید.

گزینه‌های پارامتر تفکر

تنظیمات تفکر شامل موارد زیر است:

  • type: تنظیم به "enabled" برای اجازه دادن به مدل برای استفاده از تفکر/استدلال
  • budget_tokens: کنترل تعداد توکن‌هایی که مدل می‌تواند برای تفکر استفاده کند
  • تنظیم به 0 به طور موثر تفکر را غیرفعال می‌کند
  • تنظیم به یک عدد مثبت (مثلا 2000) به مدل اجازه می‌دهد تا حداکثر آن تعداد توکن را برای استدلال مصرف کند

غیرفعال کردن تفکر

برای غیرفعال کردن کامل تفکر، بودجه را به 0 تنظیم کنید:

python
# مثال پایتون - غیرفعال کردن تفکر
response = client.chat.completions.create(
    model="gemini-2.5-flash",
    messages=[{"role": "user", "content": "این متن را به طور خلاصه جمع‌بندی کن: ..."}],
    extra_body={
        "thinking": {"type": "disabled", "budget_tokens": 0}
    },  # غیرفعال کردن تفکر با تنظیم بودجه به 0
)
javascript
// مثال جاوااسکریپت - غیرفعال کردن تفکر
const response = await client.chat.completions.create({
  model: "gemini-2.5-flash",
  messages: [
    { role: "user", content: "این متن را به طور خلاصه جمع‌بندی کن: ..." },
  ],
  // @ts-expect-error thinking یک پارامتر مستندنشده است
  thinking: { type: "disabled", budget_tokens: 0 }, // غیرفعال کردن تفکر با تنظیم بودجه به 0
});
نسخه معادل Responses API مدل این نسخه روی `gpt-5.5` تنظیم شده، چون `gemini-2.5-flash` ممکن است در داده‌های فعلی AvalAI برای `/v1/responses` فعال نباشد.

وقتی مدل انتخابی از /v1/responses پشتیبانی می‌کند، این نسخه را کنار مثال Chat Completions استفاده کنید. messages به input منتقل می‌شود و متن نهایی از response.output_text خوانده می‌شود.

python
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["AVALAI_API_KEY"],
    base_url="https://api.avalai.ir/v1",
)

response = client.responses.create(
    model="gpt-5.6-luna",
    instructions="You are a helpful assistant.",
    input="این متن را به طور خلاصه جمع‌بندی کن: ...",
)

print(response.output_text)
javascript
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.AVALAI_API_KEY,
  baseURL: "https://api.avalai.ir/v1",
});

const response = await client.responses.create({
  model: "gpt-5.6-luna",
  instructions: "You are a helpful assistant.",
  input: "این متن را به طور خلاصه جمع‌بندی کن: ...",
});

console.log(response.output_text);
bash
curl https://api.avalai.ir/v1/responses \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $AVALAI_API_KEY" \
  -d '
  {
    "model": "gpt-5.6-luna",
    "input": "این متن را به طور خلاصه جمع‌بندی کن: ...",
    "instructions": "You are a helpful assistant."
  }'
  • messagesinput
  • پیام سیستمی → instructions یا آیتم developer
  • choices[0].message.contentresponse.output_text
  • برای ابزارها و خروجی‌های چندوجهی، response.output را بر اساس type بررسی کنید.

ملاحظات قیمت‌گذاری

این به ویژه برای Gemini 2.5 Flash مفید است که قیمت‌گذاری متفاوتی برای توکن‌های تفکر در مقابل توکن‌های بدون تفکر دارد:

  • خروجی بدون تفکر: ۰.۶۰ دلار / ۱ میلیون توکن
  • خروجی با تفکر: ۳.۵۰ دلار / ۱ میلیون توکن

با تنظیم بودجه‌های تفکر مناسب، می‌توانید هم عمق استدلال و هم هزینه فراخوانی‌های API خود را کنترل کنید.

درخواست‌های HTTP مستقیم

هنگام ارسال درخواست‌های HTTP مستقیم یا استفاده از curl، می‌توانید این پارامترها را مستقیما در بدنه درخواست قرار دهید:

bash
curl https://api.avalai.ir/v1/chat/completions \
  -H "Authorization: Bearer $AVALAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
"model": "gemini-2.5-flash",
"messages": [{"role": "user", "content": "این مسئله ریاضی پیچیده را گام به گام حل کن: ..."}],
"thinking": {"type": "enabled", "budget_tokens": 2000}
}'
نسخه معادل Responses API مدل این نسخه روی `gpt-5.5` تنظیم شده، چون `gemini-2.5-flash` ممکن است در داده‌های فعلی AvalAI برای `/v1/responses` فعال نباشد.

وقتی مدل انتخابی از /v1/responses پشتیبانی می‌کند، این نسخه را کنار مثال Chat Completions استفاده کنید. messages به input منتقل می‌شود و متن نهایی از response.output_text خوانده می‌شود.

bash
curl https://api.avalai.ir/v1/responses \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $AVALAI_API_KEY" \
  -d '
  {
    "model": "gpt-5.6-luna",
    "input": "این مسئله ریاضی پیچیده را گام به گام حل کن: ...",
    "instructions": "You are a helpful assistant."
  }'
  • messagesinput
  • پیام سیستمی → instructions یا آیتم developer
  • choices[0].message.contentresponse.output_text
  • برای ابزارها و خروجی‌های چندوجهی، response.output را بر اساس type بررسی کنید.

پارامترهای تولید تصویر Stability AI

مدل‌های Stability AI از انواع مختلفی از پارامترها برای کنترل کیفیت، سبک و ویژگی‌های تولید تصویر پشتیبانی می‌کنند. این پارامترها را می‌توان از طریق پارامتر extra_body هنگام استفاده از کتابخانه‌های کلاینت ارسال کرد.

پارامترهای کلیدی Stability AI

python
# مثال پایتون - پارامترهای Stability AI
response = client.images.generate(
    model="stability.sd3-5-large-v1:0",
    prompt="یک منظره آرام با کوه‌ها و دریاچه",
    n=1,
    size="1024x1024",
    extra_body={
        "cfg_scale": 7,
        "steps": 30,
        "sampler": "ddim",
        "style_preset": "photographic",
    },
)
javascript
// مثال جاوااسکریپت Stability AI
const response = await client.images.generate({
  model: "stability.sd3-5-large-v1:0",
  prompt: "یک منظره آرام با کوه‌ها و دریاچه",
  n: 1,
  size: "1024x1024",
  // @ts-expect-error cfg_scale یک پارامتر مستندنشده است
  cfg_scale: 7,
  // @ts-expect-error
  steps: 30,
  // @ts-expect-error
  sampler: "ddim",
  // @ts-expect-error
  style_preset: "photographic",
  response_format: "url", // or b64_json
});

پارامترهای رایج شامل:

  • cfg_scale: کنترل می‌کند که تصویر چقدر دقیق از پرامپت پیروی کند (معمولا ۱-۲۰)
  • steps: تعداد مراحل انتشار (مقادیر بالاتر = جزئیات بیشتر اما زمان تولید طولانی‌تر)
  • sampler: الگوریتم نمونه‌برداری مورد استفاده (مثلا "ddim"، "k_euler"، "k_dpm_2")
  • style_preset: سبک از پیش تعریف شده برای اعمال (مثلا "photographic"، "digital-art"، "anime")

درخواست‌های HTTP مستقیم

هنگام استفاده از curl یا فراخوانی‌های مستقیم API:

bash
curl https://api.avalai.ir/v1/images/generations \
  -H "Authorization: Bearer $AVALAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
"model": "stability.sd3-5-large-v1:0",
"prompt": "یک منظره آرام با کوه‌ها و دریاچه",
"n": 1,
"size": "1024x1024",
"cfg_scale": 7,
"steps": 30,
"sampler": "ddim",
"style_preset": "photographic"
}'

بهترین روش‌ها برای پارامترهای مختص ارائه دهنده

  1. بررسی مستندات: همیشه به مستندات مدل خاص برای به‌روزترین پارامترها و مقادیر مراجعه کنید.

  2. آزمایش تاثیر پارامترها: مقادیر مختلف پارامتر می‌تواند تاثیر قابل توجهی بر نتایج داشته باشد. تنظیمات مختلف را آزمایش کنید تا بهترین گزینه برای مورد استفاده خود را پیدا کنید.

  3. تعادل هزینه و کیفیت: پارامترهایی مانند بودجه تفکر Gemini به طور مستقیم بر هزینه‌ها تاثیر می‌گذارند. تعادل مناسب برای برنامه خود را پیدا کنید.

  4. مدیریت خطا: هنگام استفاده از پارامترهای مختص ارائه دهنده، مدیریت خطای قوی را پیاده‌سازی کنید تا هرگونه مشکل اعتبارسنجی پارامتر را شناسایی کنید.

  5. آگاهی از نسخه: پارامترهای مختص ارائه دهنده ممکن است بین نسخه‌های مدل تغییر کنند. هنگامی که ثبات اهمیت دارد، از نسخه‌های خاص مدل استفاده کنید.

منابع مرتبط