Chat Completions
از POST /v1/chat/completions با قالب درخواست OpenAI استفاده کنید و از مدلهای Claude پاسخ به سبک OpenAI بگیرید. همراه با نمونهٔ Python و Node.
POST /v1/chat/completions شکل درخواست OpenAI را میپذیرد و شکل پاسخ OpenAI را برمیگرداند. شناسهٔ مدل تنها چیزی است که باید در کد فعلی OpenAI خود عوض کنید.
همهٔ مدلها، قابلیتها و قیمتها فهرست مستندات برای عاملهای هوش مصنوعی:https://oneprovider.dev/docs/llms.txt درخواست
httpPOST 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.
{
"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)
pythonfrom 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)
tsimport 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_format | json_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