مستندات
- با شماره موبایل وارد شوید.
- از صفحهی خرید اعتبار یک بسته بخرید.
- در داشبورد یک کلید API بسازید (کلید فقط یک بار نمایش داده میشود).
- در برنامهی خود base_url را عوض کنید، کلید را وارد کنید و نام مدل را بنویسید.
آدرسها و احراز هویت
| فرمت | base_url | مسیر |
|---|---|---|
| OpenAI | https://api.2928.ir/v1 | /chat/completions |
| Anthropic | https://api.2928.ir | /v1/messages |
| لیست مدلها | https://api.2928.ir/v1 | /models |
/v1 میخواهند: https://api.2928.ir/v1.
ابزارهای Anthropic (اپ Claude، Claude Code، Anthropic SDK) خودشان /v1/messages را اضافه میکنند، پس آدرس را بدون /v1 وارد کنید: https://api.2928.ir.
کلید را در هدر Authorization: Bearer sk-... بفرستید. در فرمت Anthropic هدر x-api-key هم پذیرفته میشود.
هر دو فرمت با همهی مدلها کار میکنند؛ یعنی میتوانید GPT را با فرمت Anthropic یا Claude را با فرمت OpenAI صدا بزنید.
اتصال ابزارها
راهنمای قدمبهقدم: Claude Code، Cursor، VS Code (Cline، Roo Code، Continue، Codex)، Codex CLI و Cherry Studio — برای ویندوز، مک و لینوکس، با کلید و مدل خودتان. ←from openai import OpenAI
client = OpenAI(
api_key="sk-...",
base_url="https://api.2928.ir/v1",
)
response = client.chat.completions.create(
model="claude-sonnet-5",
messages=[{"role": "user", "content": "سلام!"}],
)
print(response.choices[0].message.content)
ابزارهای دیگر (Cline، Continue، Roo Code، LangChain، n8n، LobeChat و...) معمولاً گزینهی «OpenAI Compatible» دارند:
Base URL را https://api.2928.ir/v1 بگذارید، کلید را وارد کنید و نام مدل را بنویسید.
استریم
با stream: true پاسخ بهصورت Server-Sent Events ارسال میشود.
stream = client.chat.completions.create(
model="claude-sonnet-5",
messages=[{"role": "user", "content": "یک شعر کوتاه بنویس"}],
stream=True,
)
for chunk in stream:
print(chunk.choices[0].delta.content or "", end="")
Function Calling
پارامتر tools مثل API رسمی OpenAI کار میکند؛ برای GPT و Claude.
response = client.chat.completions.create(
model="gpt-5.5",
messages=[{"role": "user", "content": "هوای تهران چطور است؟"}],
tools=[{
"type": "function",
"function": {
"name": "get_weather",
"description": "Get the current weather for a city",
"parameters": {
"type": "object",
"properties": {"city": {"type": "string"}},
"required": ["city"],
},
},
}],
)
print(response.choices[0].message.tool_calls)
تصویر
تصویر را بهصورت base64 بفرستید. لینک مستقیم هم پشتیبانی میشود، ولی بعضی سایتها دانلود خودکار را مسدود میکنند؛ base64 همیشه کار میکند.
import base64
image = base64.b64encode(open("photo.jpg", "rb").read()).decode()
response = client.chat.completions.create(
model="claude-sonnet-5",
messages=[{"role": "user", "content": [
{"type": "text", "text": "در این تصویر چه میبینی؟"},
{"type": "image_url", "image_url": {"url": f"data:image/jpeg;base64,{image}"}},
]}],
)
خطاها
| کد | معنی |
|---|---|
401 | کلید اشتباه است یا حذف شده. |
403 | اعتبار حساب تمام شده؛ از صفحهی خرید اعتبار تمدید کنید. |
400 | درخواست نامعتبر (پارامتر اشتباه یا پیام خالی). |
429 | تعداد درخواست زیاد است؛ کمی صبر کنید و دوباره بفرستید. |
503 model_not_found | نام مدل اشتباه است؛ نام را دقیقاً از لیست پایین کپی کنید. |
5xx | خطای موقت سرور یا ارائهدهنده؛ دوباره تلاش کنید و در صورت تکرار وضعیت را در صفحهی وضعیت ببینید. |
نام مدلها
Claude (Anthropic)
-
claude-sonnet-5ورودی ×۱٫۵۰ · خروجی ×۷٫۵۰ -
claude-opus-5-5ورودی ×۳ · خروجی ×۱۵ -
claude-opus-5ورودی ×۳٫۷۵ · خروجی ×۱۸٫۷۵ -
claude-haiku-4-5-20251001ورودی ×۰٫۷۵ · خروجی ×۳٫۷۵ -
claude-fable-5-1ورودی ×۷٫۵۰ · خروجی ×۳۷٫۵۰
GPT (OpenAI)
-
gpt-6.1-solورودی ×۱٫۵۰ · خروجی ×۷٫۵۰ -
gpt-6-solورودی ×۵۶٫۲۵ · خروجی ×۲۸۱٫۲۵ -
gpt-6-astraورودی ×۵۶٫۲۵ · خروجی ×۲۸۱٫۲۵ -
gpt-5.6-terraورودی ×۵۶٫۲۵ · خروجی ×۳۳۷٫۵۰ -
gpt-5.6-solورودی ×۵۶٫۲۵ · خروجی ×۲۸۱٫۲۵ -
gpt-5.5ورودی ×۳٫۷۵ · خروجی ×۲۲٫۵۰ -
gpt-5.4ورودی ×۱٫۸۸ · خروجی ×۱۱٫۲۵
ضریب یعنی به ازای هر توکنِ مدل چند توکن از اعتبار شما کم میشود. مثلاً «ورودی ×۲» یعنی هر ۱٬۰۰۰ توکن ورودی، ۲٬۰۰۰ توکن اعتبار مصرف میکند.