Awesome Free LLM APIs IR

برای برنامه‌نویس‌ها؛ از انتخاب تا اولین پاسخ

اولین درخواست API هوش مصنوعی را
بدون حدس‌زدن بساز.

این راهنما برای سرویس‌هایی است که API سازگار با OpenAI ارائه می‌کنند. ابتدا Provider و مدل را از منبع رسمی انتخاب می‌کنی، بعد کلید را به‌صورت امن در متغیر محیطی قرار می‌دهی و درخواست را با curl، Python یا Node.js می‌فرستی.

مسیر استاندارد

چهار مرحله‌ای که نباید با هم قاطی شوند

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

  1. ۱Provider را انتخاب کن

    کاربرد، نوع سهمیه، محدودیت، مدل و وضعیت منطقه را مقایسه کن.

  2. ۲حساب و کلید بساز

    فقط از صفحه رسمی ثبت‌نام و داشبورد رسمی API Key استفاده کن.

  3. ۳سه مقدار را تنظیم کن

    API Key، Base URL و شناسه دقیق Model را از مستندات بردار.

  4. ۴درخواست واقعی بفرست

    HTTP status، بدنه JSON و محتوای پاسخ مدل را بررسی کن.

مخصوص کاربران ایران

چهار نوع Evidence را جدا بخوان

در صفحه هر Provider ممکن است یکی از لایه‌های زیر تأیید شده باشد. برچسب «سایت باز شد» یا پاسخ 401 به‌معنی کارکرد کامل سرویس نیست؛ 401 معمولاً فقط نشان می‌دهد مسیر شبکه به Endpoint رسیده اما اعتبارنامه معتبر ارائه نشده است.

۱. ReachabilityDNS، TLS یا صفحه مستندات از شبکه موردنظر قابل دسترسی است.
۲. Signupفرایند ساخت حساب و محدودیت کشور با موفقیت طی شده است.
۳. Key issuanceداشبورد اجازه ساخت API Key معتبر داده است.
۴. Inferenceیک درخواست احراز‌شده به مدل پاسخ معتبر برگردانده است.

برای تصمیم نهایی، صفحه اختصاصی Provider، تاریخ آخرین بررسی و منبع رسمی را بخوان. وضعیت‌ها تضمین دائمی نیستند و ممکن است با سیاست سرویس، حساب یا مسیر شبکه تغییر کنند.

قبل از کدنویسی

سه مقدار اصلی را از مستندات رسمی بردار

LLM_API_KEY

کلید محرمانه حساب. آن را داخل Git، فایل عمومی، Screenshot یا فرانت‌اند مرورگر قرار نده.

LLM_BASE_URL

آدرس پایه API؛ برای سرویس سازگار با OpenAI معمولاً به نسخه‌ای مانند /v1 ختم می‌شود.

LLM_MODEL

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

تنظیم متغیرهای محیطیLinux / macOS / Git Bash
export LLM_API_KEY="YOUR_API_KEY"
export LLM_BASE_URL="https://provider.example/v1"
export LLM_MODEL="MODEL_ID"
مقادیر نمونه را با اطلاعات حساب خودت جایگزین کن.

نمونه‌های قابل‌کپی

یک درخواست ساده Chat Completions بفرست

این نمونه‌ها فقط برای Providerهایی هستند که در کاتالوگ با برچسب سازگار با OpenAI نمایش داده شده‌اند. اگر سرویس API اختصاصی دارد، Schema و SDK همان سرویس را استفاده کن. پیام آزمایشی کوتاه نگه داشته شده تا خطای اتصال، مدل و احراز هویت سریع‌تر مشخص شود.

curlبدون نصب SDK
curl "$LLM_BASE_URL/chat/completions" \
  -H "Authorization: Bearer $LLM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "'"$LLM_MODEL"'",
    "messages": [
      {"role": "user", "content": "فقط بنویس: اتصال موفق بود"}
    ]
  }'
اول status code و سپس JSON پاسخ را بررسی کن.
PythonOpenAI SDK
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["LLM_API_KEY"],
    base_url=os.environ["LLM_BASE_URL"],
)

response = client.chat.completions.create(
    model=os.environ["LLM_MODEL"],
    messages=[
        {"role": "user", "content": "فقط بنویس: اتصال موفق بود"}
    ],
)

print(response.choices[0].message.content)
نصب: python -m pip install openai
Node.jsOpenAI SDK + ESM
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.LLM_API_KEY,
  baseURL: process.env.LLM_BASE_URL,
});

const response = await client.chat.completions.create({
  model: process.env.LLM_MODEL,
  messages: [
    { role: "user", content: "فقط بنویس: اتصال موفق بود" },
  ],
});

console.log(response.choices[0].message.content);
نصب: npm install openai

تعریف موفقیت

از کجا بفهمم واقعاً وصل شده‌ام؟

HTTP موفق

معمولاً status code در بازه 200 است؛ اما فقط status کافی نیست.

JSON معتبر

بدنه پاسخ باید JSON مورد انتظار API باشد، نه HTML صفحه ورود یا خطای CDN.

Model معتبر

پاسخ باید به شناسه مدلی مربوط باشد که در درخواست فرستاده‌ای.

متن قابل‌خواندن

محتوای پاسخ مدل باید در مسیر استاندارد SDK یا Schema سرویس موجود باشد.

رفع خطای سریع

خطاهای رایج چه معنایی دارند؟

401 Unauthorized

کلید ارسال نشده، نامعتبر است یا برای این Endpoint پذیرفته نمی‌شود. نام متغیر و Header را بررسی کن.

403 Forbidden

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

404 Not Found

Base URL، نسخه API، مسیر chat/completions یا شناسه مدل ممکن است اشتباه باشد.

429 Too Many Requests

سهمیه یا Rate Limit پر شده است. Retry با backoff و Headerهای محدودیت را بررسی کن.

Timeout / TLS

مسئله احتمالاً قبل از لایه API است: DNS، مسیر شبکه، TLS یا فایروال را جدا بررسی کن.

200 + HTML

به‌جای API، صفحه وب یا fallback دریافت کرده‌ای. Content-Type و Base URL را کنترل کن.

برای جزئیات بیشتر، راهنماهای خطاهای 401، 403 و مدل و مدیریت Rate Limit 429 را بخوان.

حالا Provider مناسب را انتخاب کن.

کاربرد، بودجه، سرعت، زبان و شرایط منطقه را وارد کن تا گزینه‌ها رتبه‌بندی شوند.

بازکردن API Finder