Continue با یوتاپن — config.yaml و خاموشکردن Responses API
پیکربندی Continue برای یوتاپن در config.yaml: provider openai با apiBase، خاموشکردن Responses API، maxTokens و contextLength و نقش chat و autocomplete.
بهروزرسانی: ۱ مهر ۱۴۰۵
Continue افزونهٔ VS Code و JetBrains است که با provider: openai و یک apiBase سفارشی به یوتاپن وصل میشود. توسعهٔ فعال پروژه از تیر ۱۴۰۵ متوقف شده و مخزنش فقطخواندنی است، ولی نسخهٔ ۲ همچنان کار میکند؛ این صفحه با مستندات و کد همان نسخه بررسی شده است.
فایل config.yaml
فایل ~/.continue/config.yaml:
name: uttapen
version: 0.0.1
schema: v1
models:
- name: Claude Sonnet 5
provider: openai
model: anthropic/claude-sonnet-5
apiBase: https://api.uttapen.ir/v1
apiKey: ${{ secrets.UTTAPEN_API_KEY }}
useResponsesApi: false
capabilities: [tool_use, image_input]
roles: [chat, edit, apply]
defaultCompletionOptions:
contextLength: 200000
maxTokens: 8192
- name: Qwen3 Coder (autocomplete)
provider: openai
model: qwen/qwen3-coder
apiBase: https://api.uttapen.ir/v1
apiKey: ${{ secrets.UTTAPEN_API_KEY }}
useResponsesApi: false
roles: [autocomplete]
defaultCompletionOptions:
maxTokens: 256
نکتههای مهم:
useResponsesApi: falseرا روی همهٔ مدلها بگذار. Continue برای شناسههایی که الگویgpt-5تاgpt-9یا o-series دارند، بهصورت پیشفرض به/responsesمیزند؛ یوتاپن این مسیر را ندارد و404میگیری. این حتی برای شناسهٔopenai/gpt-5-miniهم اتفاق میافتد.maxTokensرا صریح بنویس. اگر ننویسی، Continue از جدول داخلی خودش عددی حدس میزند که برای مدلهای خانوادهٔ GPT-5 میتواند ۱۰۰٬۰۰۰ توکن باشد؛ یوتاپن هزینهٔ همین سقف را قبل از ارسال رزرو میکند (قیمتگذاری) و موجودیات بیدلیل قفل میشود. برای مدلهای ناشناس هم پیشفرض خودِ Continue4096است که برای ویرایشهای بلند کم است.capabilitiesرا بنویس. Continue قابلیت ابزارها را از روی نام حدس میزند و شناسههای دارای/را نمیشناسد؛ بدونtool_useحالت Agent ابزارهای بومی را از دست میدهد و بدونimage_inputتصویر نمیفرستد.- کلید: مقدار
UTTAPEN_API_KEYرا در~/.continue/.env(یا.continue/.envپروژه) بگذار. افزونهٔ IDE متغیرهای محیطی شِل را نمیخواند، پس بعد از ساختن فایل، IDE را ریاستارت کن. contextLengthرا روی context واقعی مدل یا کمتر بگذار؛ عددها در فهرست مدلها هستند.
نقشها و هزینه
chat,edit,applyروی مدل اصلی. برای کار روی کدanthropic/claude-sonnet-5یاopenai/gpt-5، و برای هزینهٔ کمترdeepseek/deepseek-v3.2وqwen/qwen3-coder.autocomplete: Continue برای این نقش از مسیر/v1/completionsاستفاده میکند و هر بار تایپکردن یک درخواست است. حتماًmaxTokensکوچک (مثل256) و یک مدل ارزان بگذار، وگرنه هزینهات را همین نقش میبلعد.- عنوان گفتگو با همان مدل چت و
maxTokensبرابر ۱۶ ساخته میشود، پس نگرانیای ندارد. embed: برای ایندکس کد و جستجوی@codebaseیک مدل از دستهٔ embeddings بگذار؛ هزینه فقط بابت توکنهای ورودی است.openai/text-embedding-3-smallارزان و کافی است؛ اگر کامنتها و مستندات کدت بیشتر فارسی است،qwen/qwen3-embedding-8bیاbaai/bge-m3را هم امتحان کن. شناسهٔ chat در این نقش400 invalid_requestمیگیرد.
- name: Text Embedding 3 Small
provider: openai
model: openai/text-embedding-3-small
apiBase: https://api.uttapen.ir/v1
apiKey: ${{ secrets.UTTAPEN_API_KEY }}
roles: [embed]
بررسی اتصال
در VS Code پنل Continue را باز کن، مدل uttapen را انتخاب کن و یک سؤال کوتاه بپرس. بعد در داشبورد ← مصرف درخواست را ببین. اگر جوابی نیامد، اول کلید را با curl تست کن:
curl https://api.uttapen.ir/v1/chat/completions \
-H "Authorization: Bearer $UTTAPEN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"openai/gpt-5-mini","max_tokens":20,"messages":[{"role":"user","content":"ping"}]}'
عیبیابی
| خطا | علت در Continue | راهحل |
|---|---|---|
404 not_found | useResponsesApi نیامده و درخواست به /responses رفته | useResponsesApi: false را اضافه کن |
404 model_not_found | model: با شناسهٔ واقعی فرق دارد | شناسه را از /models کپی کن (پیام 404 در uttapen.suggestions نزدیکترین شناسههای محتمل را هم پیشنهاد میدهد) |
401 invalid_api_key | فایل .env خوانده نشده یا IDE ریاستارت نشده | مقدار را در ~/.continue/.env بگذار و IDE را ببند و باز کن |
402 insufficient_balance | maxTokens ننوشتهای و رزرو خیلی بزرگ شده | maxTokens را بگذار و کیف پول را شارژ کن |
429 | سقف نرخ کلید، معمولاً بهخاطر autocomplete پرتکرار | مدل autocomplete را کممصرفتر کن یا rate_limit_rpm کلید را بالا ببر (محدودیت نرخ) |
| ابزارها در حالت Agent کار نمیکنند | capabilities تعریف نشده | capabilities: [tool_use] را اضافه کن |
اگر موجودی قابلاستفاده کمتر از هزینهٔ کل maxTokens باشد، یوتاپن درخواست را رد نمیکند؛ سقف را تا اندازهٔ موجودی کم میکند (کف ۱٬۰۲۴ توکن)، عدد نهایی را در هدر X-Uttapen-Max-Tokens میگذارد و ممکن است پاسخ با finish_reason برابر length ناتمام بماند. فقط اگر همان کف هم ممکن نباشد 402 میگیری.
بقیهٔ ابزارها در یکپارچهسازی و کدهای خطا در خطاها.
با شماره موبایل ثبتنام کن، کیف پول را از ۱۰۰٬۰۰۰ تومان شارژ کن و کلید بساز. مدلهای رایگان بدون شارژ هم کار میکنند — تا ۵۰ درخواست در روز. ساخت کلید API ←