مسیرها
گفتگو با مدلهای زبانی (Chat Completions)
با GPT 6 Astra، Claude Haiku 5.5، Claude Opus 5.5، Grok 4.7، Gemini 3.5 Flash-Lite و بقیهٔ مدلها گفتگو کنید. فرمت درخواست و پاسخ با OpenAI Chat Completions سازگار است و پاسخ همان لحظه برمیگردد.
https://api.bananaai.ir/api/v1/chat/completionsبا همان مدلهای مغز بنانا گفتگو کنید. فرمت درخواست و پاسخ با OpenAI Chat Completions سازگار است؛ پاسخ همان لحظه برمیگردد (task و polling ندارد). هزینه بر اساس توکن مصرفی است (نرخ جدا برای ورودی، ورودی کششده و خروجی به ازای هر ۱ میلیون توکن) و در لحظه پاسخ کسر میشود؛ اگر مدل پاسخی ندهد اعتبار برمیگردد.
مدلها
| شناسه | نام | اعتبار / درخواست | نامهای کوتاه | توضیح |
|---|---|---|---|---|
gpt-6-luna | GPT 6 Luna | 1 | luna، gpt-6-luna، gpt-5.6-luna، gpt-5-6-luna | سریع و روان؛ ارزانترین گزینه برای چت و خلاصهسازی. |
gpt-6.1-terra | GPT 6.1 Terra | 2 | terra، gpt-6-1-terra، gpt-5.6-terra، gpt-5-6-terra | متعادل و همهکاره برای تولید متن و پاسخهای روزمره. |
gpt-6.1-sol | GPT 6.1 Sol | 2 | sol، gpt-6-1-sol، gpt-5.6-sol، gpt-5-6-sol | استدلال قویتر برای تحلیل و کارهای چندمرحلهای. |
gpt-6-astra | GPT 6 Astra | 5 | astra، gpt-6، gpt6-astra | قویترین استدلال؛ مناسب مسائل پیچیده و متنهای طولانی. |
claude-haiku-5-5 | Claude Haiku 5.5 | 1 | haiku، haiku-5.5، haiku-5-5، claude-haiku، claude-haiku-5.5 | سریع و اقتصادی؛ ارزانترین Claude برای چت، ترجمه و خلاصهسازی. |
claude-sonnet-5-5 | Claude Sonnet 5.5 | 2 | sonnet، sonnet-5.5، sonnet-5-5، claude-sonnet، claude-sonnet-5.5 | نسل تازهٔ Sonnet؛ دقیق و متعادل با درک خوب از فارسی و کد. |
claude-opus-5-5 | Claude Opus 5.5 | 4 | opus، opus-5.5، opus-5-5، claude-opus، claude-opus-5.5 | قویترین Claude برای کدنویسی، نوشتار حرفهای و تحلیل سنگین. |
claude-sonnet-5 | Claude Sonnet 5 | 2 | sonnet-5 | دقیق و متعادل با درک خوب از فارسی و کد. |
claude-opus-5 | Claude Opus 5 | 4 | opus-5 | عمیق و دقیق برای نوشتار حرفهای و تحلیل سنگین. |
grok-4.7 | Grok 4.7 | 2 | grok، grok-4-7، grok-4.6، grok-4-6 | سریع و صریح با دانش بهروز. |
gemini-3.5-flash-lite | Gemini 3.5 Flash-Lite | 1 | gemini، flash-lite، gemini-flash-lite، gemini-3-5-flash-lite | سریع و ارزان با پنجرهٔ زمینهٔ بزرگ؛ مناسب ترجمه، خلاصهسازی، دستهبندی و پردازش حجیم متن. |
در فیلد
modelهم شناسه کامل (مثلgpt-6-astra) و هم نام کوتاه (مثلastra) پذیرفته میشود. اگرmodelنفرستیدgpt-6-lunaاستفاده میشود.
درخواست
model(optional, string): شناسه مدل یا نام کوتاه آن. پیشفرض: gpt-6-luna.- examples:
gpt-6-astra,astra,claude-haiku-5-5,haiku,claude-opus-5-5,claude-sonnet-5-5,grok-4.7
- examples:
messages(required, object[]): آرایهای از {role, content}. role یکی از system | user | assistant (developer هم به system نگاشت میشود). content یا رشته است یا آرایهای از بخشهای {type:"text", text} و {type:"image_url", image_url:{url}}. حداکثر ۱۰۰ پیام، هر پیام ۳۲٬۰۰۰ کاراکتر، مجموع ۲۰۰٬۰۰۰ کاراکتر، تا ۴ عکس در هر پیام کاربر.stream(optional, boolean): true → پاسخ SSE با chunkهای chat.completion.chunk و در انتها data: [DONE]. پیشفرض false.temperature(optional, number): بین ۰ و ۲. اختیاری.top_p(optional, number): بین ۰ و ۱. اختیاری.max_tokens(optional, integer): سقف توکن خروجی (۱ تا ۳۲۷۶۸). اختیاری.
نمونه curl
curl -X POST "https://api.bananaai.ir/api/v1/chat/completions" \
-H "Authorization: Bearer ba_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{"model":"gpt-6-astra","messages":[{"role":"system","content":"You are a concise assistant."},{"role":"user","content":"سه ایده برای کپشن اینستاگرام یک کافه بده."}]}'نمونه JavaScript
const response = await fetch("https://api.bananaai.ir/api/v1/chat/completions", {
method: "POST",
headers: {
Authorization: "Bearer ba_live_your_api_key",
"Content-Type": "application/json",
},
body: JSON.stringify({
"model": "gpt-6-astra",
"messages": [
{
"role": "system",
"content": "You are a concise assistant."
},
{
"role": "user",
"content": "سه ایده برای کپشن اینستاگرام یک کافه بده."
}
]
}),
});
const completion = await response.json();
console.log(completion.choices[0].message.content);پاسخ
{
"id": "chatcmpl_abc123",
"object": "chat.completion",
"created": 1726000000,
"model": "gpt-6-astra",
"choices": [
{
"index": 0,
"message": { "role": "assistant", "content": "۱) ..." },
"finish_reason": "stop"
}
],
"usage": { "prompt_tokens": 42, "completion_tokens": 128, "total_tokens": 170 },
"credits_charged": 5
}choices[0].message.content: متن پاسخ.credits_charged: اعتباری که برای این درخواست کسر شد (بر اساس توکنهای واقعی مصرفشده).usage: اگر ارائهدهنده تعداد توکن را برگرداند؛ در محاسبه هزینه نقشی ندارد.
پاسخ تکهتکه (stream)
با "stream": true پاسخ text/event-stream است. هر خط data: یک JSON با object: "chat.completion.chunk" و choices[0].delta.content دارد. chunk آخر finish_reason و credits_charged را دارد و بعد از آن data: [DONE] میآید.
data: {"id":"chatcmpl_...","object":"chat.completion.chunk","model":"gpt-6-astra","choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null}]}
data: {"id":"chatcmpl_...","object":"chat.completion.chunk","model":"gpt-6-astra","choices":[{"index":0,"delta":{"content":"۱) "},"finish_reason":null}]}
data: {"id":"chatcmpl_...","object":"chat.completion.chunk","model":"gpt-6-astra","choices":[{"index":0,"delta":{},"finish_reason":"stop"}],"credits_charged":5}
data: [DONE]در حالت stream هدر
Idempotency-Keyنادیده گرفته میشود. اگر خطا بعد از شروع پاسخ رخ دهد، یک رویدادdata: {"error": {...}}میآید.
ارسال عکس (vision)
در پیامهای user میتوانید بهجای رشته، آرایهای از بخشها بفرستید. آدرس عکس باید عمومی (http/https) یا data URI باشد.
{
"model": "claude-sonnet-5-5",
"messages": [
{
"role": "user",
"content": [
{ "type": "text", "text": "این عکس چه چیزی را نشان میدهد؟" },
{ "type": "image_url", "image_url": { "url": "https://example.com/photo.jpg" } }
]
}
]
}استفاده با SDK OpenAI
چون فرمت سازگار است، میتوانید base_url کلاینت OpenAI را به https://api.bananaai.ir/api/v1 تغییر دهید و کلید بنانا را بهعنوان api_key بدهید:
from openai import OpenAI
client = OpenAI(base_url="https://api.bananaai.ir/api/v1", api_key="ba_live_your_api_key")
completion = client.chat.completions.create(
model="gpt-6-astra",
messages=[{"role": "user", "content": "سلام!"}],
)
print(completion.choices[0].message.content)خطاها
400 unsupported_model: شناسه مدل ناشناخته است (فهرست:GET /api/v1/models?type=chat).400 invalid_request: بدنه نامعتبر یا مدل ورودی را رد کرد (مثلاً URL عکس غیرقابل دسترس).403 insufficient_credits: اعتبار کافی نیست.500 generation_failed: ارائهدهنده پاسخ نداد؛ اعتباری کسر نشده.