خانه → راهنماها → OpenCode با API سفارشی: پیکربندی، Claude، small_model و هزینهٔ واقعی
OpenCode ارائهدهندهها را از opencode.json میخواند، پس راهاندازی فقط یک فایل است. آنچه ما را شگفتزده کرد صورتحساب بود: درخواست فقط یک کلمه، دو درخواست و بیش از ۱۲٬۰۰۰ توکن ورودی ساخت. OpenCode 1.19.0 را روی درگاه خودمان با سه مدل اجرا کردیم تا نشان دهیم توکنها کجا مصرف میشوند و چطور کمشان کنیم.
این را در ~/.config/opencode/opencode.json (یا opencode.json در پروژه) بگذارید:
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"apiclan": {
"npm": "@ai-sdk/openai-compatible",
"name": "APICLAN",
"options": {
"baseURL": "https://apiclan.us/v1",
"apiKey": "{env:APICLAN_GPT_KEY}"
},
"models": {
"gpt-6-astra": {},
"gpt-6.1-sol": {}
}
}
}
}
APICLAN_GPT_KEY.models فقط مدلهای گروه همان کلید را بنویسید. هر کلید فقط به یک گروه تعلق دارد، پس GPT و DeepSeek و Claude هر کدام مدخل ارائهدهنده و کلید جداگانه میخواهند.opencode را اجرا کنید، /models را بزنید و APICLAN ← gpt-6-astra را برگزینید. در اسکریپت: opencode run -m apiclan/gpt-6-astra "...".| baseURL | نتیجه |
|---|---|
https://apiclan.us/v1 | ✓ |
https://apiclan.us | ✗ 404 Not Found |
@ai-sdk/openai-compatible فقط /chat/completions را به baseURL میافزاید، پس /v1 باید از قبل باشد. بدون آن، OpenCode فقط با Not Found متوقف میشود.
درون provider یک ارائهدهندهٔ دوم با بستهٔ Anthropic و کلیدی از گروه Claude اضافه کنید:
"claude": {
"npm": "@ai-sdk/anthropic",
"name": "APICLAN Claude",
"options": {
"baseURL": "https://apiclan.us/v1",
"apiKey": "{env:APICLAN_CLAUDE_KEY}"
},
"models": { "claude-fable-5-1": {} }
}
اینجا هم baseURL باید به /v1 ختم شود: بستهٔ Anthropic فقط /messages را میافزاید و در آزمون ما https://apiclan.us بهتنهایی 404 داد. این برعکس Claude Code است که ANTHROPIC_BASE_URL آن نباید /v1 داشته باشد.
در یک پروژهٔ خالی از OpenCode خواستیم «Reply with just OK». هر مدل دو درخواست فرستاد: یکی برای عنوانگذاری نشست و دیگری پاسخ اصلی که پرامپت سیستمی و تعریف ابزارهای OpenCode را با خود میبرد.
| مدل | درخواست | توکن ورودی (عنوان + پاسخ) | زمان کل | هزینه |
|---|---|---|---|---|
gpt-6-astra | 2 | 4,640 + 7,678 | 20.5 s | $0.050 |
deepseek-v4-pro | 2 | 528 + 5,708 | 34.1 s | $0.005 |
deepseek-v4.1-flash | 2 | 529 + 3,027 | 21.8 s | $0.0006 |
OpenCode برای مدلهای GPT پرامپت سیستمی بسیار بلندتری (حدود ۷٬۷۰۰ توکن) از DeepSeek (حدود ۳٬۰۰۰) میفرستد و تنها درخواست عنوان روی GPT ۴٬۶۴۰ توکن مصرف کرد. به همین دلیل همان «OK» روی gpt-6-astra حدود ۷۷ برابر deepseek-v4.1-flash هزینه داشت. آزموده در ۱۲ اکتبر ۲۰۲۶ با OpenCode 1.19.0؛ هزینهها همان مبلغی است که درگاه ما حساب کرد.
OpenCode برای کارهای جانبی مثل عنوان نشست از small_model استفاده میکند. آن را به یک مدل ارزان در ارائهدهندهٔ جداگانه اشاره دهید:
"small_model": "apiclan-ds/deepseek-v4.1-flash",
"provider": {
"apiclan": { ... },
"apiclan-ds": {
"npm": "@ai-sdk/openai-compatible",
"options": {
"baseURL": "https://apiclan.us/v1",
"apiKey": "{env:APICLAN_DS_KEY}"
},
"models": { "deepseek-v4.1-flash": {} }
}
}
با gpt-6-astra بهعنوان مدل اصلی، درخواست عنوان از ۰٫۰۱۸۷ دلار به ۰٫۰۰۰۰۳ دلار و کل گفتوگوی تککلمهای از ۰٫۰۵۰ به ۰٫۰۳۱ دلار رسید؛ یعنی ۳۸٪ کمتر در هر نشست تازه، بدون تغییر در پاسخها.
کار یکسان برای هر مدل: نوشتن fizzbuzz.py و آزمونهای pytest، بدون اجرای هیچ فرمانی. سپس هر تابع را با خروجی درست برای ۱ تا ۳۰ مقایسه کردیم.
| مدل | درخواست | زمان کل | هزینه | درست | تعداد assert آزمون |
|---|---|---|---|---|---|
gpt-6-astra | 3 | 40 s | $0.069 | ✓ | 2 |
deepseek-v4-pro | 3 | 61 s | $0.008 | ✓ | 7 |
deepseek-v4.1-flash | 3 | 25 s | $0.0011 | ✓ | 7 |
هر سه در سه درخواست کد درست نوشتند. deepseek-v4.1-flash سریعترین بود و حدود ۱/۶۰ gpt-6-astra هزینه داشت؛ هر دو مدل DeepSeek آزمونهای کاملتری هم نوشتند. deepseek-v4-pro کندترین بود، چون پیش از هر گام استدلال میکند. زمان کل شامل چند ثانیه راهاندازی خود OpenCode است.
baseURL بدون /v1.apiKey در ترمینالی که OpenCode را اجرا میکند تنظیم نشده.is not supported by any configured account in this group) ← مدلی زیر models در گروه کلید نیست؛ مثلاً مدل GPT در ارائهدهندهای که کلید DeepSeek دارد.ابزارهای برنامهنویسی دیگر: Cline با API سفارشی · Codex با API سفارشی.
بدون اشتراک، بدون حداقل ماهانه، بدون تماس فروش. با USDT شارژ کنید و فقط بهاندازهٔ مصرف بپردازید — 1 USDT برابر 2 اعتبار موجودی API است.
راهنمای 30 ثانیهای شروع سریع را بخوانیدزبان: English · 简体中文 · 繁體中文 · 日本語 · 한국어 · Deutsch · Français · Español · Türkçe · Português · Italiano · Bahasa Indonesia · Tiếng Việt · Bahasa Melayu · Polski · Čeština · فارسی · Русский
قیمتهای این صفحه بهطور خودکار از دادههای واقعی صورتحساب پر میشوند. شرایط اشخاص ثالث از مستندات خودشان نقل شده است.