OneProvider

Chat Completions

از POST /v1/chat/completions با قالب درخواست OpenAI استفاده کنید و از مدل‌های Claude پاسخ به سبک OpenAI بگیرید. همراه با نمونهٔ Python و Node.

POST /v1/chat/completions شکل درخواست OpenAI را می‌پذیرد و شکل پاسخ OpenAI را برمی‌گرداند. شناسهٔ مدل تنها چیزی است که باید در کد فعلی OpenAI خود عوض کنید.

همهٔ مدل‌ها، قابلیت‌ها و قیمت‌ها فهرست مستندات برای عامل‌های هوش مصنوعی: https://oneprovider.dev/docs/llms.txt

درخواست

http
POST https://api.oneprovider.dev/v1/chat/completions
Authorization: Bearer sk-...
content-type: application/json
{
"model": "claude-sonnet-5-5",
"messages": [
{ "role": "system", "content": "You are concise." },
{ "role": "user", "content": "Why is the sky blue?" }
],
"max_tokens": 256,
"stream": false
}

پاسخ

شکل با OpenAI یک‌به‌یک یکی است — id، choices[].message، usage.

json
{
"id": "chatcmpl_01...",
"object": "chat.completion",
"created": 1715472000,
"model": "claude-sonnet-5-5",
"choices": [
{
"index": 0,
"message": { "role": "assistant", "content": "Rayleigh scattering..." },
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 48,
"completion_tokens": 92,
"total_tokens": 140
}
}

OpenAI SDK (Python)

python
from openai import OpenAI
client = OpenAI(
api_key="<OPENAI_API_KEY>",
base_url="https://api.oneprovider.dev/v1",
)
r = client.chat.completions.create(
model="claude-sonnet-5-5",
messages=[{"role": "user", "content": "Say hi."}],
)
print(r.choices[0].message.content)

OpenAI SDK (Node)

ts
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.OPENAI_API_KEY,
baseURL: "https://api.oneprovider.dev/v1",
});
const r = await client.chat.completions.create({
model: "claude-sonnet-5-5",
messages: [{ role: "user", content: "Say hi." }],
});
console.log(r.choices[0].message?.content);

نگاشت فیلدها

داده‌های مرجع
فیلد OpenAIرفتار در OneProvider
messagesارسال می‌شود؛ نقش system به system در Anthropic منتقل می‌شود.
max_tokensارسال می‌شود.
temperature, top_pارسال می‌شود.
tools, tool_choiceبه tools / tool_choice در Anthropic ترجمه می‌شود — با همان نرمال‌سازی استفاده از ابزار .
streamارسال می‌شود؛ تکه‌های SSE به سبک OpenAI (نه رویدادهای Anthropic) برمی‌گرداند.
response_formatjson_object از طریق راهنمای system رعایت می‌شود. حالت strict در json_schema فعلاً نادیده گرفته می‌شود.
logprobs, top_logprobsنادیده گرفته می‌شود: مدل‌ها این‌ها را ارائه نمی‌دهند.
seedنادیده گرفته می‌شود: پشتیبانی نمی‌شود.
n > 1یک choice برمی‌گرداند. اگر N نمونه لازم دارید، endpoint را N بار صدا بزنید.
یک قالب ارتباطی انتخاب کنید و به همان بچسبید هر دوی /v1/chat/completions و /v1/messages به همان مدل‌ها با همان قیمت می‌رسند. Chat Completions قالب OpenAI را روی مدل نگاشت می‌کند؛ endpoint بومی Messages این گام را ندارد. برای پروژه‌های تازه /v1/messages را توصیه می‌کنیم. برای مهاجرت از OpenAI، Chat Completions مسیر سریع است.

پاسخ‌های سریع

از کدام base URL استفاده کنم؟

Claude Code و SDKهای Anthropic از https://api.oneprovider.dev استفاده می‌کنند. SDKهای OpenAI و کلاینت‌های سازگار با OpenAI از https://api.oneprovider.dev/v1 استفاده می‌کنند. یک کلید پشت هر دو آدرس کار می‌کند؛ فهرست مدل‌ها در صفحهٔ مدل‌ها و نرخ‌ها در صفحهٔ قیمت‌ها است.

چگونه احراز هویت کنم؟

کلید خام sk-… را در x-api-key یا Authorization: Bearer بفرستید: یکی از این دو، نه هر دو. کلید را در یک متغیر محیطی نگه دارید، نه در فایلی که commit می‌شود. اطلاعات بیشتر دربارهٔ احراز هویت .

کلید را از کجا بگیرم؟

حساب کاربری خود را در ربات Telegram به نام @oneprovider_robot یا در app.oneprovider.dev باز کنید، موجودی را شارژ کنید و «صدور کلید» را بزنید. هر کلید می‌تواند سقف مصرف مخصوص خودش را داشته باشد. حساب کاربری و کلیدهای API .

کدهای 401، 404 و 429 یعنی چه؟

401: کلید ارسال نشده، اشتباه تایپ شده یا در هدر نادرست فرستاده شده است؛ کلید را کامل و بدون گیومه و فاصله جای‌گذاری کنید. 404: معمولاً base URL نادرست است، مثلاً /v1 جا افتاده یا دوبار آمده است. 429 با پیام «Insufficient balance»: موجودی حساب کاربری یا سقف مصرف کلید تمام شده است؛ به‌جای تلاش دوباره، شارژ کنید. هر 429 دیگری محدودیت نرخ است؛ تا پایان زمان Retry-After صبر کنید. جزئیات: کدهای خطا و رفع اشکال .

چرا استریم‌ها قطع یا ریست می‌شوند؟

VPN و پروکسی‌های VLESS اغلب SSE را بافر می‌کنند یا مذاکرهٔ HTTP/2 را مختل می‌کنند. OneProvider هیچ محدودیت منطقه‌ای ندارد و استریم‌ها را بافر نمی‌کند؛ پروکسی را خاموش کنید و دوباره امتحان کنید.

اگر این‌ها کافی نبود از کجا بپرسم؟

در Telegram به @Oneproviderhelpbot پیام بدهید یا در حساب کاربری وب «پشتیبانی» را باز کنید و کد وضعیت HTTP و متن دقیق خطا را بفرستید. پشتیبانی چگونه کار می‌کند .

آخرین به‌روزرسانی: 2026-11-08 باگی پیدا کردید؟ @Oneproviderhelpbot