مستندات
همهٔ چیزی که برای وصلکردن کدت به ۴۰۰+ مدل لازم است. اگر قبلاً با OpenAI SDK کار کردهای، فقط base_url را عوض کن.
curl https://api.uttapen.ir/v1/chat/completions \
-H "Authorization: Bearer sk-up-…" \
-H "Content-Type: application/json" \
-d '{
"model": "openai/gpt-5",
"messages": [{"role": "user", "content": "خودت را معرفی کن"}],
"stream": true
}'from openai import OpenAI
client = OpenAI(
base_url="https://api.uttapen.ir/v1",
api_key="sk-up-…",
)
stream = client.chat.completions.create(
model="openai/gpt-5",
messages=[{"role": "user", "content": "خودت را معرفی کن"}],
stream=True,
)
for chunk in stream:
print(chunk.choices[0].delta.content or "", end="", flush=True)import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.uttapen.ir/v1",
apiKey: "sk-up-…",
});
const stream = await client.chat.completions.create({
model: "openai/gpt-5",
messages: [{ role: "user", content: "خودت را معرفی کن" }],
stream: true,
});
for await (const chunk of stream) {
process.stdout.write(chunk.choices[0]?.delta?.content ?? "");
}<?php
// composer require openai-php/client guzzlehttp/guzzle
$client = OpenAI::factory()
->withBaseUri('https://api.uttapen.ir/v1')
->withApiKey('sk-up-…')
->make();
$result = $client->chat()->create([
'model' => 'openai/gpt-5',
'messages' => [['role' => 'user', 'content' => 'خودت را معرفی کن']],
]);
echo $result->choices[0]->message->content;package main
import (
"context"
"fmt"
"github.com/openai/openai-go"
"github.com/openai/openai-go/option"
)
func main() {
client := openai.NewClient(
option.WithBaseURL("https://api.uttapen.ir/v1"),
option.WithAPIKey("sk-up-…"),
)
resp, err := client.Chat.Completions.New(context.Background(), openai.ChatCompletionNewParams{
Model: "openai/gpt-5",
Messages: []openai.ChatCompletionMessageParamUnion{openai.UserMessage("خودت را معرفی کن")},
})
if err != nil {
panic(err)
}
fmt.Println(resp.Choices[0].Message.Content)
}ترجیح میدهی ببینی؟ راهنمای ویدیویی: اولین درخواست، استریم، تصویر و صدا و LangChain ←
شروع
- شروع سریع — اولین درخواست در ۵ دقیقهثبتنام با شماره موبایل، شارژ کیف پول تومانی، ساخت کلید sk-up و اولین فراخوانی مدل با SDK رسمی OpenAI در Python، Node و curl.
- احراز هویت و کلیدهای APIفرمت کلید sk-up، هدر Authorization و X-API-Key، تنظیمات هر کلید (سقف ماهانه، مدلهای مجاز، نرخ، انقضا)، لغو فوری و نکات امنیتی.
- سازگاری با OpenAI و مهاجرت از OpenAI، Azure و دیگرانمهاجرت کد موجود به یوتاپن فقط با تغییر base_url؛ شکل شناسهٔ مدلها، مسیرهای پشتیبانیشده، فیلدهایی که عبور میکنند و جدول اشتباههای رایج.
قابلیتها
- استریم پاسخ (SSE)دریافت زندهٔ پاسخ مدل با stream=true، فرمت رویدادهای SSE، رویداد اختیاری uttapen.meta با هزینهٔ تومانی، مدیریت قطع اتصال و proxy در Next.js و Laravel.
- Tool calling (فراخوانی تابع)تعریف ابزار با اسکیمای OpenAI، حلقهٔ کامل اجرای tool call در Python، کنترل با tool_choice، استریم tool_calls و انتخاب مدل با نشان tools.
- ورودی تصویر و فایل (Vision)ارسال تصویر با URL یا data URI و فایل PDF با بخش file در chat/completions؛ سقف ۲۰ مگابایت، انتخاب مدل با نشان vision و files، و نحوهٔ محاسبهٔ هزینهٔ تصویر.
- خروجی ساختیافته (JSON)گرفتن JSON معتبر از مدل با response_format از نوع json_object و json_schema، نمونهٔ Python و Node، و اشتباههای رایج با متن و اعداد فارسی.
- مدلهای استدلالی (Reasoning)استفاده از مدلهای استدلالی مثل o3 و DeepSeek R1 با reasoning_effort یا بلوک reasoning، خواندن توکنهای استدلال در پاسخ و استریم، و اثرش روی رزرو و هزینه.
رسانه
- رسانه: ساخت تصویر، ویدیو، صدا و موسیقی با APIمرور API رسانهٔ یوتاپن: ساخت تصویر، ویدیوی غیرهمزمان، تبدیل متن به گفتار و موسیقی؛ انتخاب خودکار مدل، لینک امضاشدهٔ فایل، نگهداری ۳۰ روزه و قیمت.
- ساخت تصویر با API (images/generations)ساخت و ویرایش تصویر با POST /v1/images/generations و SDK رسمی OpenAI: انتخاب خودکار مدل، تصویر مرجع، نسبت ابعاد، خروجی لینک یا base64 و قیمت تومانی.
- ساخت ویدیو با API (videos)ساخت ویدیوی غیرهمزمان با POST /v1/videos، پیگیری وضعیت با GET /v1/videos/{id} و دانلود خروجی: مدت، رزولوشن، صدا، تصویر اول و نحوهٔ محاسبهٔ قیمت هر ثانیه.
- تبدیل متن به گفتار با API (audio/speech)خواندن متن فارسی و انگلیسی با POST /v1/audio/speech و SDK رسمی OpenAI: انتخاب صدا، قالب mp3 و wav، سرعت، انتخاب خودکار مدل فارسی و قیمت بهازای هر نویسه.
- ساخت موسیقی با API (audio/music)ساخت قطعهٔ موسیقی و آهنگ کوتاه با POST /v1/audio/music: نوشتن سبک و حالوهوا، تصویر الهام، انتخاب خودکار مدل، لینک فایل و قیمت تومانی هر قطعه.
مرجع
- خطاها و کدها — 400 تا 504 و راهحل هر کدامجدول کامل خطاهای API از 400 تا 504 با کد هر خطا، شکل JSON خطا و بلوک یوتاپن، کار درست در هر حالت، و نگاشت خطاها به exception های SDK رسمی OpenAI.
- محدودیت نرخ (Rate limits)سقف درخواست در دقیقهٔ هر کلید، هدرهای X-RateLimit و Retry-After، سقف استریم همزمان، سهم روزانهٔ مدلهای رایگان و سقف ماهانهٔ کلید، با کد تلاش دوباره.
- قیمتگذاری و محاسبهٔ تومانقیمت تومانی هر مدل بهازای ۱M توکن، رزرو موقت قبل از درخواست و تسویه با مصرف واقعی بعد از پاسخ، هدر X-Uttapen-Cost-Toman و خواندن مصرف با GET.
- حریم خصوصی — چه چیزی ذخیره میشودیوتاپن محتوای پرامپت و پاسخ API را ذخیره نمیکند؛ فهرست دقیق متادیتای ثبتشده، استثنای چت داشبورد، مسیر ترافیک تا سازندهٔ مدل و توصیهها برای دادهٔ حساس.
SDK و ابزارها
- SDK پایتون — نصب، استریم و tool callingپکیج رسمی openai در پایتون با یوتاپن: نصب، ساخت کلاینت، chat، استریم، tool calling، embeddings و مدیریت خطا با کد قابل اجرا.
- SDK Node.jsاستفاده از پکیج رسمی openai در Node.js و TypeScript با یوتاپن؛ نصب، کلاینت، chat با هدرهای هزینه، استریم و AbortController، tool calling، embeddings.
- SDK PHP (Laravel و openai-php)پکیج openai-php/client و openai-php/laravel با یوتاپن: نصب، ساخت کلاینت، chat، استریم، tool calling و مدیریت خطا با کد قابل اجرا.
- SDK Goپکیج رسمی openai-go با یوتاپن؛ نصب، کلاینت، chat، استریم با accumulator و رویداد uttapen.meta، tool calling، embeddings و مدیریت خطا با openai.Error.
- curl و HTTP خامکار مستقیم با API یوتاپن بدون SDK؛ chat، استریم با curl -N، هدرهای هزینه و rate limit، رویداد uttapen.meta، embeddings، فهرست مدلها، وضعیت حساب و مصرف.
- یکپارچهسازی — ابزارهای کدنویسی، SDKها و اپهای چتهر ابزار سازگار با OpenAI با سه مقدار به یوتاپن وصل میشود: فهرست agentهای کدنویسی با راهنمای اختصاصی، LangChain و LlamaIndex و Vercel AI SDK، و اپهای چت.
ابزارهای برنامهنویسی
- opencode با یوتاپن — opencode.json، انتخاب مدل و سقف خروجیتنظیم opencode با یوتاپن در opencode.json: provider سازگار با OpenAI، شناسهٔ مدل، limit.output برای رزرو کوچک، small_model ارزان برای عنوان و رفع خطاها.
- Cline با یوتاپن — provider سازگار با OpenAI در VS Codeتنظیم افزونهٔ Cline با یوتاپن: انتخاب OpenAI Compatible، آدرس و کلید، شناسهٔ مدل، Max Output Tokens برای مهار رزرو و جدول رفع خطاهای رایج.
- Kilo Code با یوتاپن — provider سفارشی و kilo.jsoncافزودن یوتاپن به Kilo Code بهعنوان Custom provider از نوع OpenAI Compatible، تنظیم limit.context و limit.output در kilo.jsonc و انتخاب Small Model ارزان.
- Roo Code با یوتاپن — تنظیم نسخهٔ متوقفشدهRoo Code از اردیبهشت ۱۴۰۵ متوقف شده است. اگر هنوز نصبش داری، این تنظیم OpenAI Compatible و سقف خروجی را بگذار تا با یوتاپن کار کند.
- Continue با یوتاپن — config.yaml و خاموشکردن Responses APIپیکربندی Continue برای یوتاپن در config.yaml: provider openai با apiBase، خاموشکردن Responses API، maxTokens و contextLength و نقش chat و autocomplete.
- Cursor با یوتاپن — Override OpenAI Base URL و محدودیتهایشکلید یوتاپن را در Cursor بگذار و Base URL را override کن؛ چه چیزی کار میکند، چرا Tab و subagent کار نمیکنند و چه وقت حالت Agent خطا میدهد.
- Zed با یوتاپن — openai_compatible در settings.jsonافزودن یوتاپن به Zed با بلوک openai_compatible در settings.json: فهرست مدلها، max_output_tokens برای رزرو کوچک و مدل ارزان برای پیام commit و خلاصه.
- چت VS Code با یوتاپن — Custom Endpoint و کلید خودتافزودن یوتاپن به چت VS Code با provider به نام Custom Endpoint: فایل chatLanguageModels.json، سقف توکن ورودی و خروجی و مدل ارزان برای کارهای جانبی.
- Aider با یوتاپن — پیشوند openai و فایلهای تنظیمات مدلاجرای Aider با یوتاپن: متغیرهای OPENAI_API_BASE و OPENAI_API_KEY، نام مدل با پیشوند openai، تعیین سقف خروجی در فایل تنظیمات و weak-model ارزان.
- Crush با یوتاپن — provider از نوع openai-compat در crushrcافزودن یوتاپن به Crush با دستور provider add از نوع openai-compat، ثبت مدلها با context-window و default-max-tokens و انتخاب مدل small ارزان.
- Goose با یوتاپن — متغیرهای محیطی و provider سفارشیراهاندازی Goose با یوتاپن: OPENAI_HOST و GOOSE_MODEL، تعیین GOOSE_MAX_TOKENS برای رزرو کوچک و مدلهایی که در Goose جواب نمیدهند.
- Qwen Code با یوتاپن — modelProviders در settings.jsonتنظیم Qwen Code برای یوتاپن: بلوک modelProviders در settings.json با baseUrl و envKey، سقف max_tokens و اندازهٔ context، یا راه سریع با متغیر محیطی.
- Codex CLI و یوتاپن — چرا فعلاً کار نمیکندCodex CLI از فوریهٔ ۲۰۲۶ فقط با Responses API کار میکند و یوتاپن آن را سرو نمیکند. توضیح دقیق ماجرا و agentهای ترمینالی جایگزین که کار میکنند.
- Claude Code و یوتاپن — چرا مستقیم وصل نمیشودClaude Code فقط با API پیاممحور Anthropic کار میکند و یوتاپن آن مسیر را سرو نمیکند. توضیح وضعیت، مسیرهای واسط و ابزارهایی که مدلهای Claude را میدهند.