معمولی

وصل کردن هر SDK یا کتابخونه‌ی سازگار با OpenAI

الگوی کلی برای وصل‌کردن هر SDK یا کتابخونه‌ای که فرمت OpenAI رو می‌فهمه — پایتون، Node، یا هر زبون دیگه‌ای.

اگه api-quickstart رو با curl امتحان کردی و حالا می‌خوای همون کار رو از داخل کد پایتون، Node، یا هر SDK دیگه‌ای که با فرمت OpenAI کار می‌کنه انجام بدی — این مقاله برای توئه. تا آخرش، یه SDK رسمی سازگار با OpenAI رو مستقیم به بنفش وصل می‌کنی، بدون این‌که چیزی از خود SDK رو دستکاری کنی.

قاعده‌ی کلی

هر SDK که رسماً از OpenAI پشتیبانی می‌کنه، یه راه برای override کردن base_url (یا اسم مشابهش) داره. همون‌جا آدرس سرویس بنفش رو بذار، api_key رو هم کلید خودت بذار — همین. بقیه‌ی SDK دقیقاً همون‌طوری کار می‌کنه که با OpenAI کار می‌کرد.

هم آدرس و هم کلید رو از صفحه‌ی «اتصال به ابزارها» بگیر — همیشه از همون‌جا، هیچ‌وقت یه آدرس رو جایی هاردکد نکن؛ این آدرس بین محیط‌های مختلف فرق می‌کنه.

پایتون (SDK رسمی openai)

python
from openai import OpenAI

client = OpenAI(
    base_url="YOUR_SERVICE_URL",
    api_key="YOUR_API_KEY",
)

response = client.chat.completions.create(
    model="YOUR_MODEL_ID",
    messages=[{"role": "user", "content": "سلام، خودت رو معرفی کن"}],
)
print(response.choices[0].message.content)

Node / TypeScript (SDK رسمی openai)

ts
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "YOUR_SERVICE_URL",
  apiKey: "YOUR_API_KEY",
});

const response = await client.chat.completions.create({
  model: "YOUR_MODEL_ID",
  messages: [{ role: "user", content: "سلام، خودت رو معرفی کن" }],
});
console.log(response.choices[0].message.content);

YOUR_MODEL_ID رو با شناسه‌ی یکی از مدل‌های فعال عوض کن — «auto» که تو داکیومنت خودِ OpenAI دیده باشی، مخصوص چت خودِ بنفش تو مرورگره و اینجا کار نمی‌کنه. لیست زنده‌ی مدل‌های فعال:

  • All Minilm L6
  • All Mpnet Base
  • Bge Base En V1.5
  • Bge En Icl
  • Bge Large En V1.5
  • Bge M3
  • Bge M3 Multi
  • Claude Fable 5فقط با اشتراک — بدون قیمت پرداخت مصرفی
  • Claude Haiku 4 5فقط با اشتراک — بدون قیمت پرداخت مصرفی
  • Claude Opus 4 6فقط با اشتراک — بدون قیمت پرداخت مصرفی
  • Claude Opus 4 7فقط با اشتراک — بدون قیمت پرداخت مصرفی
  • Claude Opus 4 8فقط با اشتراک — بدون قیمت پرداخت مصرفی
  • Claude Opus 5فقط با اشتراک — بدون قیمت پرداخت مصرفی
  • Claude Sonnet 4 6فقط با اشتراک — بدون قیمت پرداخت مصرفی
  • Claude Sonnet 5فقط با اشتراک — بدون قیمت پرداخت مصرفی
  • Clip Vit B 32
  • Deepseekحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Deepseek V4 Flashحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Deepseek V4 Proحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • E5 Base
  • E5 Large
  • Embed Multilingual V3
  • Gemini 2.5 Flashحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Gemini 2.5 Proحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Gemini 3.1 Flash Liteحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Gemini 3.1 Proحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Gemini 3.5 Flashحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Gemma 3 12Bحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Gemma 3 12B Itحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Gemma 3 27Bحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Gemma 3 4Bحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Gemma 4 26B A4bحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Gemma 4 31Bحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Gemma 4 31B It Ultraحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Gemma 4 31B Turboحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Gemma 4 E4bحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Glm 4 7حدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Glm 4 7 Flashحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Glm 4.6حدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Glm 4.7حدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Glm 5حدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • GPT Oss 120Bحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • GPT Oss 120B 1 0حدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • GPT Oss 120B Turboحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • GPT Oss 120B Ultraحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • GPT Oss 20Bحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Gte Base
  • Gte Large
  • Hermes 3 Llama 3.1 405Bحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Hermes 3 Llama 3.1 70Bحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Hy3حدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Inklingحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Kimi K2 5حدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Kimi K2 Thinkingحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Kimi K2.5حدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Kimi K2.6حدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Kimi K2.7 Codeحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Kimi K3حدود ۶٬۹۱۵ تومان برای هر پیام معمولی
  • L3 8B Lunaris Turboحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • L3.1 70B Euryale V2.2حدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Ling 3.0 Flashحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Llama 3.1 70B Turboحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Llama 3.1 8B Turboحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Llama 3.3 70B Turboحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Llama 4 Maverick 17B 128E Fp8حدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Llama 4 Scout 17B 16Eحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Llama Nemotron Embed Vl 1B
  • Llama3 70B Instructحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Mimo V2.5حدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Minimax M2.7 Turboحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Minimax M3حدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Mistral Nemo Instructحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Mistral Small 24B Instructحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Mistral Small 3.2 24B Instructحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Multi Qa Mpnet Base Dot
  • Multilingual E5 Large
  • Muse Glimmer 30Bحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Mythomax L2 13Bحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Nemotron 3 Nano 30B A3bحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Nova Microحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Nova Proحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Nvidia Nemotron 3 Super 120B A12bحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Nvidia Nemotron 3 Ultra 550B A55bحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Nvidia Nemotron 3.5 Lightningحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Paraphrase Minilm L6
  • Phi 4حدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Qwen2.5 72Bحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Qwen3 14Bحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Qwen3 235B A22b Instructحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Qwen3 235B A22b Thinkingحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Qwen3 30B A3bحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Qwen3 32Bحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Qwen3 Coder 480B A35b Turboحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Qwen3 Embedding 0.6B
  • Qwen3 Embedding 4B
  • Qwen3 Maxحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Qwen3 Max Thinkingحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Qwen3 Vl 30B A3bحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Qwen3.5 122B A10bحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Qwen3.5 27Bحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Qwen3.5 35B A3bحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Qwen3.5 397B A17bحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Qwen3.5 9Bحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Qwen3.6 27Bحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Qwen3.6 35B A3bحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Qwen3.7 Maxحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Qwen3.8 2.4T A95bحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Qwen3.8 Maxحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Seed 1.8حدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Seed 2.0 Codeحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Seed 2.0 Miniحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Seed 2.0 Proحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Step 3.7 Flashحدود ۴٬۶۱۰ تومان برای هر پیام معمولی
  • Text2vec Base Chinese
  • Titan Embed Text V2

⚠️ این دو نمونه هنوز مستقیم روی SDKهای واقعی اجرا و تست نشدن. ساختارشون دقیقاً همون override استانداردیه که این SDKها مستند کردن، ولی قبل از قراردادنشون تو کد production خودت، یه بار محلی امتحانشون کن. اگه جواب نگرفتی، «رفع اشکال اتصال» رو ببین.

نکته برای هر SDK دیگه

اگه از یه زبون یا کتابخونه‌ی دیگه استفاده می‌کنی که مستقیماً از OpenAI پشتیبانی نمی‌کنه ولی می‌گه «سازگار با OpenAI»، دنبال یکی از این دو الگو بگرد:

  • یه پارامتر صریح مثل base_url / baseURL / endpoint موقع ساختن کلاینت.
  • یه متغیر محیطی مثل OPENAI_BASE_URL که SDK خودش می‌خونه.

اگه هیچ‌کدوم رو نداره — یعنی آدرس OpenAI رو تو خودِ کتابخونه هاردکد کرده — نمی‌تونی وصلش کنی.

چی کار نمی‌کنه

  • SDKهای رسمی provider‌های دیگه (مثلاً SDK رسمی Anthropic) کار نمی‌کنن — اون‌ها فرمت درخواست/پاسخ متفاوتی دارن که بنفش امروز پیاده نکرده.
  • این مسیر (SDK مستقیم به gateway) هم به کیف پولت گیت شده — با یه سقف روی gateway، نه چک لحظه‌ای مثل چت. جزئیاتش تو «کنترل مصرف و هزینه» هست.
  • می‌تونی برای این SDK/پروژه یه کلید جدا بسازی (تا ده‌تا کلید فعال، هر کدوم با اسم و سقف مصرف مخصوص خودش) — از «اتصال به ابزارها».