راهنمای اتصال به API

اتصال OpenCode به 1ai؛ ارائه‌دهنده‌ی سفارشی در opencode.json

OpenCode یک عامل متن‌باز برنامه‌نویسی است که در ترمینال، اپ دسکتاپ و ویرایشگر کار می‌کند: فایل می‌خواند و ویرایش می‌کند، دستور اجرا می‌کند و برای کارهای حساس اجازه می‌گیرد. OpenCode هر API سازگار با OpenAI را به‌عنوان ارائه‌دهنده‌ی سفارشی می‌پذیرد؛ پس با وان ای آی (1ai) و یک کلید به مدل‌های چند سازنده دسترسی دارید، اعتبار را با پرداخت ریالی می‌خرید و برای کلید سقف مصرف می‌گذارید. در این راهنما فایل `opencode.json` آماده، انتخاب بسته‌ی درست AI SDK و خطاهای رایج را می‌بینید.

اتصال OpenCode به 1ai در ترمینال با ارائه‌دهنده‌ی سفارشی oneai در فایل opencode.json

چرا با 1ai

عامل ترمینالی با ابزار

OpenCode با فراخوانی ابزار فایل پیدا می‌کند، ویرایش می‌کند و دستور اجرا می‌کند؛ `chat/completions` در 1ai همین را با استریم پشتیبانی می‌کند.

چند مدل زیر یک ارائه‌دهنده

چند شناسه‌ی 1ai را در یک ارائه‌دهنده تعریف کنید و با `/models` بین Claude، GPT، Qwen و DeepSeek جابه‌جا شوید.

مدل سبک برای کارهای جانبی

با `small_model` کارهای سبک مثل ساختن عنوان جلسه را به یک مدل ارزان بسپارید تا اعتبار برای کار اصلی بماند.

پرداخت ریالی

هزینه‌ی هر درخواست به اندازه‌ی توکن‌هایش از اعتبار 1ai کم می‌شود که با پرداخت ریالی شارژ می‌شود.

سقف مصرف برای هر کلید

برای کلید OpenCode سقف ماهانه، مدل‌های مجاز و تاریخ انقضا بگذارید و مصرف را در پنل توسعه‌دهنده ببینید.

در چند قدم

  1. ۱

    OpenCode را نصب کنید

    با `curl -fsSL https://opencode.ai/install | bash` یا `npm install -g opencode-ai` نصبش کنید.

  2. ۲

    کلید API بسازید

    در پنل 1ai از بخش توسعه‌دهندگان ← کلیدها یک کلید با نام OpenCode و سقف ماهانه بسازید.

  3. ۳

    کلید را با /connect ثبت کنید

    در OpenCode دستور `/connect` را بزنید، گزینه‌ی Other را انتخاب کنید، شناسه‌ی `oneai` را بنویسید و کلید را بچسبانید.

  4. ۴

    opencode.json را بسازید

    ارائه‌دهنده‌ی `oneai` را با baseURL و مدل‌ها تعریف کنید، OpenCode را دوباره باز کنید و با `/models` مدل را انتخاب کنید.

مدل‌های مناسب OpenCode (با پشتیبانی از ابزار)

همه‌ی مدل‌ها

GPT-6.1 Sol

اوپن‌ای‌آی
گفتگو

پرچم‌دار اوپن‌ای‌آی برای کارهای دقیق، تحلیلی و چندمرحله‌ای

۱٫۵ اعتبار / ۱۰۰۰ توکن خروجی
API

Claude Sonnet 5.5

آنتروپیک
گفتگو

نویسندگی روان و برنامه‌نویسی دقیق

۱٫۵ اعتبار / ۱۰۰۰ توکن خروجی
API
گفتگو

سریع، چندوجهی و با حافظه‌ی متنی بسیار بلند

۰٫۵۶۲۵ اعتبار / ۱۰۰۰ توکن خروجی
API

Claude Haiku 5.5

آنتروپیک
گفتگو

سریع‌ترین کلود؛ در سهمیه‌ی رایگان روزانه

۰٫۰۷۵ اعتبار / ۱۰۰۰ توکن خروجی
رایگان روزانهAPI
گفتگو

سبک و ارزان؛ در سهمیه‌ی رایگان روزانه

۰٫۳۷۵ اعتبار / ۱۰۰۰ توکن خروجی
رایگان روزانهAPI

DeepSeek V4.1 Flash

دیپ‌سیک
گفتگو

سریع و بسیار ارزان؛ در سهمیه‌ی رایگان روزانه

۰٫۰۹ اعتبار / ۱۰۰۰ توکن خروجی
رایگان روزانهAPI

نمونه پرامپت‌ها

پرامپت را کپی کنید، در 1ai بگذارید و جزئیات خودتان را جایگزین کنید.

برنامه‌ریزی

Analyze this project and propose a plan to add [قابلیت موردنظر]. List the files to change and the tests to add. Do not edit anything yet.

این را با عامل Plan اجرا کنید تا فایلی تغییر نکند.

اجرای برنامه

Implement the plan above step by step. Run `[دستور تست، مثلاً npm test]` after each step and stop if a test fails.

بررسی یک فایل

@[مسیر فایل] Find possible null or undefined errors in this file and fix them with minimal changes. Explain each fix in one line.

راهنمای پروژه برای عامل

Create a short AGENTS.md for this repository: how to install, run and test it, and the coding conventions you can infer from the code.

دستور /init هم همین فایل را می‌سازد.

گزارش فارسی

با git log بررسی کن در ده commit آخر چه تغییرهایی داده شده و به فارسی خلاصه کن کدام بخش‌های پروژه بیشترین تغییر را داشته‌اند.

OpenCode چیست و برای اتصال به 1ai چه لازم دارید؟

OpenCode عامل برنامه‌نویسی متن‌باز است با دو عامل اصلی: Build برای اجرای تغییرها و Plan برای تحلیل و برنامه‌ریزی بدون ویرایش کد؛ با کلید Tab بین این دو جابه‌جا می‌شوید. مدل‌ها را از طریق AI SDK صدا می‌زند و هر API سازگار با OpenAI را می‌پذیرد. توضیح کلی API در صفحه‌ی توسعه‌دهندگان آمده است.

پیش‌نیازها:

  • OpenCode نصب‌شده و یک ترمینال امروزی
  • حساب 1ai با اعتبار و یک کلید sk-1ai-…
  • شناسه‌ی مدل‌ها با پیشوند سازنده، از مدل‌های گفتگو

تنظیم opencode.json برای 1ai

فایل opencode.json را در ریشه‌ی پروژه (یا برای همه‌ی پروژه‌ها در ~/.config/opencode/opencode.json) بسازید:

json
{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "oneai": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "1ai",
      "options": {
        "baseURL": "https://1ai.ir/v1"
      },
      "models": {
        "anthropic/claude-sonnet-5.5": { "name": "Claude Sonnet 5.5" },
        "qwen/qwen3.8-max": { "name": "Qwen 3.8 Max" },
        "deepseek/deepseek-v4.1-flash": { "name": "DeepSeek V4.1 Flash" }
      }
    }
  },
  "model": "oneai/anthropic/claude-sonnet-5.5",
  "small_model": "oneai/deepseek/deepseek-v4.1-flash"
}
  • npm باید @ai-sdk/openai-compatible باشد که /v1/chat/completions را صدا می‌زند. بسته‌ی @ai-sdk/openai سراغ /v1/responses می‌رود که 1ai ندارد.
  • کلیدِ داخل models همان شناسه‌ی 1ai است و مدل کامل به شکل oneai/<شناسه> نوشته می‌شود.
  • شناسه‌ی ارائه‌دهنده (oneai) باید با همان چیزی که در /connect نوشتید یکی باشد.
  • به جای /connect می‌توانید در options بنویسید "apiKey": "{env:ONEAI_API_KEY}" و کلید را در متغیر محیطی نگه دارید.
  • برای هر مدل می‌توانید limit با context و output بگذارید تا OpenCode بداند چقدر از context باقی مانده است؛ عددها را از صفحه‌ی همان مدل بردارید.

طبق راهنمای مهاجرت OpenCode 2، نسخه‌ی ۲ همین قالب نسخه‌ی ۱ را هم می‌خواند.

کدام مدل برای OpenCode بهتر است؟

OpenCode بدون فراخوانی ابزار کار نمی‌کند، پس فقط مدل‌های دارای tools را اضافه کنید:

کارModel ID پیشنهادی
عامل Build و تغییرهای چندفایلیanthropic/claude-sonnet-5.5، openai/gpt-6.1-sol
کارهای طولانی و عامل‌محورqwen/qwen3.8-max، moonshotai/kimi-k3
small_model و کارهای سبکdeepseek/deepseek-v4.1-flash، google/gemini-3.8-flash

مقایسه‌ی کلی خانواده‌ها در کدنویسی در برنامه‌نویسی با هوش مصنوعی آمده است.

خطاهای رایج OpenCode با 1ai و راه‌حل

  • مدل در /models دیده نمی‌شود: شناسه در بخش models نیست یا فایل JSON خطای نگارشی دارد. OpenCode را دوباره باز کنید.
  • خطای اعتبارسنجی یا کلید پیدا نمی‌شود: با opencode auth list ببینید کلید oneai ثبت شده است.
  • 404 با پیام Unknown endpoint: به جای @ai-sdk/openai-compatible بسته‌ی @ai-sdk/openai گذاشته‌اید.
  • 404 model_not_found: پیشوند سازنده در کلید models جا افتاده است.
  • 401 invalid_api_key: کلید اشتباه، باطل یا منقضی است.
  • 402: اعتبار یا سقف ماهانه‌ی کلید تمام شده است.
  • 429 rate_limit_exceeded: سقف درخواست یا توکن در دقیقه پر شده؛ کمی صبر کنید و جلسه‌های هم‌زمان را کم کنید.
  • عامل ابزار را صدا نمی‌زند یا وسط کار می‌ماند: مدل را به یکی از مدل‌های دارای tools عوض کنید.

چطور هزینه‌ی OpenCode را کنترل کنیم؟

  • اول با Plan برنامه بگیرید و بعد Build را اجرا کنید تا دور زدن‌های بی‌حاصل کم شود.
  • small_model را روی یک مدل ارزان بگذارید.
  • برای موضوع تازه جلسه‌ی تازه باز کنید تا تاریخچه‌ی قبلی در هر درخواست فرستاده نشود.
  • برای OpenCode کلید جدا با سقف ماهانه و فهرست مدل‌های مجاز بسازید.

جزئیات در راهنمای کلیدها و کنترل هزینه آمده است. اگر ابزاری ساده‌تر و git‌محور می‌خواهید، راهنمای Aider را ببینید.

ابزارهای آماده

توضیح کد و رفع باگ

کد را بفهمید، خطایش را پیدا کنید و تمیزش کنید

ساخت عبارت باقاعده (Regex)

الگوی Regex با توضیح و نمونه‌ی آزمون

ساخت کوئری SQL

درخواست فارسی، کوئری درست و توضیح‌داده‌شده

دستیارهای مرتبط

برنامه‌نویس ارشد

نوشتن، مرور و اشکال‌زدایی کد با توضیح روشن

  • «این کد را مرور کن و باگ‌ها و مشکلات امنیتی‌اش را بگو: »
  • «یک API ساده برای مدیریت کارها با Node.js و Express بنویس»

سوالات متداول

آیا OpenCode با 1ai هزینه دارد؟

خود OpenCode متن‌باز است. هزینه‌ی مدل به اندازه‌ی توکن‌های ورودی و خروجی هر درخواست از اعتبار 1ai کم می‌شود و اعتبار را با پرداخت ریالی می‌خرید. عامل‌ها در یک کار چند درخواست پشت سر هم می‌فرستند، پس مصرفشان از یک پرسش ساده بیشتر است.

می‌توانم ارائه‌دهنده‌ی آماده‌ی OpenAI یا Anthropic را با کلید 1ai به کار ببرم؟

خیر. ارائه‌دهنده‌ی Anthropic به API اختصاصی Anthropic و ارائه‌دهنده‌ی OpenAI به Responses API وصل می‌شود و 1ai هیچ‌کدام را ندارد. ارائه‌دهنده‌ی سفارشی با @ai-sdk/openai-compatible همه‌ی مدل‌ها، از جمله Claude، را از مسیر Chat Completions می‌دهد.

کلیدی که با /connect وارد می‌کنم کجا ذخیره می‌شود؟

OpenCode کلیدها را در ~/.local/share/opencode/auth.json روی همان سیستم نگه می‌دارد، نه در فایل پروژه. اگر opencode.json را در مخزن commit می‌کنید، کلید را داخل آن ننویسید.

OpenCode 2 هم با این تنظیمات کار می‌کند؟

طبق راهنمای مهاجرت، نسخه‌ی ۲ تنظیمات پشتیبانی‌شده‌ی نسخه‌ی ۱ را می‌خواند. قالب بومی نسخه‌ی ۲ کلید providers با package برابر @opencode/ai/providers/openai-compatible و settings.baseURL دارد؛ اگر به آن مهاجرت کردید، همان آدرس و شناسه‌ها را به کار ببرید.

تنظیمات را برای یک پروژه بگذارم یا برای همه؟

اگر همه‌ی پروژه‌هایتان با 1ai کار می‌کنند، ارائه‌دهنده را در ~/.config/opencode/opencode.json بگذارید. فایل opencode.json داخل پروژه روی تنظیمات سراسری اعمال می‌شود و برای انتخاب مدل جدا در یک پروژه مناسب است.

OpenCode بدون اجازه‌ی من فایل را تغییر می‌دهد؟

رفتار OpenCode را با تنظیم دسترسی‌ها (permission) در opencode.json تعیین می‌کنید؛ می‌توانید برای ویرایش فایل و اجرای دستورهای خاص، پرسیدن را اجباری کنید. برای شروع، کارها را با عامل Plan آغاز کنید که به‌طور پیش‌فرض فایل‌های کد را ویرایش نمی‌کند؛ اجرای دستورها در Plan هم تابع همان تنظیم دسترسی‌هاست.

چطور پیش از OpenCode مطمئن شوم کلید و آدرس درست است؟

در ترمینال curl https://1ai.ir/v1/models -H "Authorization: Bearer sk-1ai-..." را اجرا کنید. اگر فهرست مدل‌ها برگشت، کلید و آدرس سالم‌اند و مشکل در opencode.json است؛ نام بسته، شناسه‌ی ارائه‌دهنده و کلیدهای models را دوباره بررسی کنید.

OpenCode فقط در ترمینال کار می‌کند؟

خیر. OpenCode علاوه بر رابط ترمینال، اپ دسکتاپ و افزونه‌ی ویرایشگر هم دارد. ارائه‌دهنده‌ی سفارشی 1ai در همه‌ی آن‌ها با همین opencode.json و همین شناسه‌ها تعریف می‌شود.

مطالب مرتبط

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

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

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

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

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

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

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

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

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

۴ دقیقه مطالعه
مدل زبانی بزرگ (LLM) چیست؟ راهنمای کاربردی برای فارسی
مفاهیم هوش مصنوعی

مدل زبانی بزرگ (LLM) چیست؟ راهنمای کاربردی برای فارسی

LLM موتور بسیاری از دستیارهای هوش مصنوعی است. با مثال‌های ساده، سازوکار آن، تفاوت مدل‌های باز و بسته و روش انتخاب مدل مناسب برای متن و کارهای فارسی را بشناسید.

۱۱ دقیقه مطالعه
همه‌ی امکانات

اتصال Aider

Aider را با دو متغیر محیطی به 1ai وصل کنید و در ترمینال، روی مخزن git خودتان، با Claude، GPT، DeepSeek و Qwen کد بنویسید و commit بگیرید.

اتصال Cline

افزونه‌ی Cline را با گزینه‌ی OpenAI Compatible به 1ai وصل کنید و با Claude، GPT، Gemini و DeepSeek از یک کلید و با پرداخت ریالی کدنویسی کنید.

اتصال Continue

Continue را با چند خط config.yaml به API سازگار با OpenAI در 1ai وصل کنید و برای چت، ویرایش، Agent و تکمیل خودکار مدل جداگانه بگذارید.

اتصال OpenCode به 1ai؛ ارائه‌دهنده‌ی سفارشی در opencode.json

OpenCode را با یک ارائه‌دهنده‌ی سفارشی در opencode.json به 1ai وصل کنید و در ترمینال با Claude، GPT، Qwen و DeepSeek از یک کلید کدنویسی کنید.

ساخت کلید API