توسعه‌دهندگان

استفاده از API سازگار با OpenAI در 1ai: راهنمای عملی با Python، Node.js و cURL

چطور پروژه‌ای را که با کتابخانه‌ی OpenAI نوشته شده، فقط با تغییر آدرس پایه و کلید به 1ai وصل کنید؛ با نمونه کد Python، Node.js و cURL، استریم، فهرست مدل‌ها و مدیریت خطا.

۴ دقیقه مطالعه
استفاده از API سازگار با OpenAI در 1ai: راهنمای عملی با Python، Node.js و cURL

رابط برنامه‌نویسی (API) در 1ai با قالب OpenAI سازگار است. یعنی اگر کدی دارید که با کتابخانه‌ی رسمی OpenAI (یا هر ابزاری که از آن پشتیبانی می‌کند) کار می‌کند، کافی است آدرس پایه و کلید را عوض کنید تا به مدل‌های خانواده‌های مختلف، با پرداخت ریالی و از یک کیف اعتبار، دسترسی داشته باشید.

آنچه لازم دارید

  • آدرس پایه: https://1ai.ir/v1
  • کلید API: از پنل، بخش «توسعه‌دهندگان ← کلیدها» بسازید. کلیدها با sk-1ai- شروع می‌شوند و فقط یک‌بار نمایش داده می‌شوند.
  • شناسه‌ی مدل: در صفحه‌ی هر مدل در فهرست مدل‌ها نوشته شده، یا از GET /v1/models بگیرید. شناسه‌ها به شکل سازنده/مدل هستند. در مثال‌های این مقاله از openai/gpt-5.4-mini استفاده شده است؛ آن را با مدل دلخواه خود عوض کنید.

کلید را در کد ننویسید؛ آن را در متغیر محیطی نگه دارید:

bash
export ONEAI_API_KEY="sk-1ai-..."

کلید را فقط در سمت سرور به کار ببرید. کلیدی که در کد فرانت‌اند، اپلیکیشن موبایل یا مخزن عمومی قرار بگیرد، عملاً افشا شده است.

اولین درخواست

نمونه با cURL

bash
curl https://1ai.ir/v1/chat/completions \
  -H "Authorization: Bearer $ONEAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openai/gpt-5.4-mini",
    "messages": [
      {"role": "system", "content": "You are a helpful assistant. Answer in Persian."},
      {"role": "user", "content": "Explain what an API is in two sentences."}
    ]
  }'

نمونه با Python

python
import os
from openai import OpenAI

client = OpenAI(
    base_url="https://1ai.ir/v1",
    api_key=os.environ["ONEAI_API_KEY"],
)

reply = client.chat.completions.create(
    model="openai/gpt-5.4-mini",
    messages=[
        {"role": "system", "content": "You are a helpful assistant. Answer in Persian."},
        {"role": "user", "content": "Explain what an API is in two sentences."},
    ],
)
print(reply.choices[0].message.content)

نمونه با Node.js

javascript
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://1ai.ir/v1",
  apiKey: process.env.ONEAI_API_KEY,
});

const reply = await client.chat.completions.create({
  model: "openai/gpt-5.4-mini",
  messages: [
    { role: "system", content: "You are a helpful assistant. Answer in Persian." },
    { role: "user", content: "Explain what an API is in two sentences." },
  ],
});
console.log(reply.choices[0].message.content);

اگر از ابزار یا فریم‌ورکی استفاده می‌کنید که «OpenAI-compatible» را پشتیبانی می‌کند، معمولاً همان دو تنظیم آدرس پایه و کلید کافی است.

پاسخ استریم

برای نمایش تدریجی پاسخ (مثل رابط گفتگو)، stream را روشن کنید. با stream_options.include_usage آخرین بخش پاسخ، مصرف توکن و اعتبار را هم برمی‌گرداند:

python
stream = client.chat.completions.create(
    model="openai/gpt-5.4-mini",
    messages=[{"role": "user", "content": "Write a short poem about the sea."}],
    stream=True,
    stream_options={"include_usage": True},
)
for chunk in stream:
    if chunk.choices and chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="", flush=True)
    if chunk.usage:
        print("\n", chunk.usage)

فهرست مدل‌ها

bash
curl https://1ai.ir/v1/models -H "Authorization: Bearer $ONEAI_API_KEY"

پاسخ فقط مدل‌هایی را نشان می‌دهد که این کلید اجازه‌ی استفاده از آن‌ها را دارد، همراه با قابلیت‌ها، طول پنجره‌ی متنی و قیمت هر واحد به اعتبار.

چه endpointهایی پشتیبانی می‌شوند؟

مسیرکاربرد
POST /v1/chat/completionsگفتگو، استریم، فراخوانی ابزار (tools)، خروجی JSON
POST /v1/embeddingsبردار متن برای جست‌وجوی معنایی و RAG
POST /v1/images/generationsساخت تصویر
POST /v1/audio/speechتبدیل متن به گفتار
POST /v1/audio/transcriptionsتبدیل گفتار به متن
GET /v1/modelsفهرست مدل‌های در دسترس

دسترسی به هر قابلیت به مدل‌هایی بستگی دارد که در آن لحظه فعال‌اند.

هزینه‌ی هر درخواست

درخواست‌های API از همان کیف اعتبار حساب شما مصرف می‌کنند و قیمت مدل‌ها همان قیمت پنل است. پیش از اجرای درخواست، اعتبار لازم بر اساس تخمین رزرو و بعد از پاسخ، فقط مصرف واقعی کسر می‌شود.

  • در پاسخ‌های عادی، هدر x-1ai-credits اعتبار مصرف‌شده را نشان می‌دهد.
  • در استریم، با include_usage مقدار usage.credits در آخرین بخش می‌آید.
  • نمودار مصرف و گزارش تک‌تک درخواست‌ها (وضعیت، توکن‌ها، تأخیر و هزینه) در بخش «توسعه‌دهندگان» پنل است.

مدیریت خطا

خطاها در همان قالب OpenAI برمی‌گردند ({"error": {"message", "type", "code"}}). مهم‌ترین‌ها:

کد HTTPمعناچه کنیم
401کلید نامعتبر، باطل یا منقضیکلید را بررسی یا کلید تازه بسازید
402اعتبار کافی نیست یا سقف ماهانه‌ی کلید پر شدهاعتبار بخرید یا سقف را بالا ببرید
403این مدل برای کلید یا حساب شما مجاز نیستفهرست مدل‌های مجاز کلید را بررسی کنید
429محدودیت نرخبر اساس هدر retry-after صبر کنید و دوباره بفرستید
5xxخطای موقت ارائه‌دهندهبا تأخیر افزایشی دوباره تلاش کنید

کتابخانه‌ی رسمی OpenAI به‌صورت پیش‌فرض خطاهای 429 و 5xx را چند بار دوباره امتحان می‌کند. هدرهای x-ratelimit-* هم وضعیت محدودیت نرخ را نشان می‌دهند.

پایداری

پشت هر مدل ممکن است بیش از یک ارائه‌دهنده باشد. اگر یکی پیش از شروع پاسخ خطا بدهد، درخواست به‌صورت خودکار به مسیر دیگری می‌رود؛ بنابراین بیشتر قطعی‌های موقت به برنامه‌ی شما نمی‌رسد.

گام بعدی

برای محدود کردن مدل‌ها، سقف هزینه و محدودیت نرخ هر کلید، مقاله‌ی کلید API و کنترل هزینه را بخوانید. در پنل هم یک محیط آزمایش هست که می‌توانید پیش از نوشتن کد، مدل‌ها را امتحان کنید.

پرسش‌های کوتاه

آیا کلید OpenAI خودم را لازم دارم؟ خیر. فقط کلید 1ai لازم است و هزینه از اعتبار حساب 1ai شما کم می‌شود.

می‌توانم از مدل‌های غیر OpenAI هم با همین کتابخانه استفاده کنم؟ بله. مدل‌های خانواده‌های دیگر هم با همان قالب chat/completions در دسترس‌اند؛ فقط شناسه‌ی model را عوض کنید.

کلید API در 1ai: امنیت، محدودیت‌ها و کنترل هزینه
توسعه‌دهندگان

کلید API در 1ai: امنیت، محدودیت‌ها و کنترل هزینه

چطور کلیدهای API را امن نگه دارید و هزینه را مهار کنید: مدل‌های مجاز، سقف اعتبار ماهانه، محدودیت نرخ، تاریخ انقضا، کلیدهای تیمی و گزارش مصرف.

۴ دقیقه مطالعه
راهنمای شروع کار با 1ai: از ثبت‌نام تا اولین گفتگو و تصویر
راهنمای 1ai

راهنمای شروع کار با 1ai: از ثبت‌نام تا اولین گفتگو و تصویر

قدم‌به‌قدم با 1ai آشنا شوید: ثبت‌نام، اعتبار رایگان روزانه، انتخاب مدل، جست‌وجوی وب و پیوست فایل در گفتگو، دستیارها و ابزارها، ساخت تصویر و خرید اعتبار.

۴ دقیقه مطالعه
مقایسه ChatGPT، Claude و Gemini: کدام مدل برای چه کاری؟
کاربردها

مقایسه ChatGPT، Claude و Gemini: کدام مدل برای چه کاری؟

سه خانواده‌ی مطرح مدل‌های زبانی، یعنی GPT از OpenAI، Claude از Anthropic و Gemini از گوگل، هر کدام کجا می‌درخشند و چطور برای کار خودتان بهترین را انتخاب کنید.

۴ دقیقه مطالعه

همین حالا امتحان کنید

با اعتبار رایگان روزانه، آموخته‌هایتان را روی بهترین مدل‌ها تمرین کنید.

شروع رایگان