|

3 خطوات لتهيئة OpenCode للربط بمحطة API وسيطة وفتح إمكانية التبديل بحرية بين أكثر من 400 نموذج ذكاء اصطناعي

هل ترغب في استخدام مساعد البرمجة المفتوح المصدر OpenCode، ولكنك تعاني من ارتفاع أسعار واجهة البرمجة (API) الرسمية أو عدم استقرار الشبكة؟ تعد المحطات الوسيطة لـ API (API Relay) هي الحل الأمثل لك. سيعلمك هذا المقال من خلال دليل عملي كيفية إتمام ربط OpenCode بخدمات الوساطة مثل APIYI وOpenRouter في 3 خطوات فقط، مما يتيح لك الوصول إلى أكثر من 75 نموذج لغة كبير رائد مثل Claude وGPT-4 وGemini بتكلفة أقل.

القيمة الجوهرية: بعد قراءة هذا المقال، ستتعلم كيفية تهيئة OpenCode لاستخدام أي API متوافق مع OpenAI، مما يحقق لك حرية التبديل بين النماذج وتحسين التكلفة.

opencode-api-proxy-configuration-guide-ar 图示

ما هو OpenCode؟ ولماذا نحتاج للربط بمحطة API وسيطة؟

OpenCode هو مساعد برمجة مفتوح المصدر يعمل عبر الطرفية (Terminal)، ويُعرف بأنه البديل المفتوح لـ Claude Code. تم تطويره بلغة Go، ويتميز بواجهة مستخدم نصية (TUI) جذابة، وإدارة جلسات متعددة، وتكامل مع بروتوكول خادم اللغة (LSP)، وغيرها من الميزات الاحترافية.

نظرة سريعة على مميزات OpenCode الأساسية

الخاصية الوصف الفائدة
دعم أكثر من 75 نموذجاً يدعم OpenAI، Claude، Gemini، Bedrock وغيرها عدم الارتباط بمورد واحد
أصلي في الطرفية واجهة TUI مبنية باستخدام مكتبة Bubble Tea تجربة استخدام صديقة للمطورين
مفتوح المصدر ومجاني الكود متاح بالكامل للجميع، بدون رسوم اشتراك الدفع حسب استخدام الـ API فقط، مع تحكم كامل في التكلفة
تكامل LSP الكشف التلقائي عن خوادم اللغة إكمال ذكي للكود وتشخيص الأخطاء
إدارة جلسات متعددة تشغيل عدة وكلاء (Agents) بالتوازي تفكيك المهام المعقدة والتعاون في حلها
وضع Vim محرر مدمج بأسلوب Vim انتقال سلس لمستخدمي الطرفية

لماذا نستخدم محطة API وسيطة؟

قد تواجه بعض التحديات عند استخدام الـ API الرسمي مباشرة:

المشكلة حل محطة API الوسيطة
الأسعار المرتفعة توفر المحطة الوسيطة أسعاراً تنافسية تناسب المطورين الأفراد
عدم استقرار الشبكة تحسين مسارات الوصول لضمان سرعة واستقرار الاتصال
تعقيد الفوترة واجهة فوترة موحدة لإدارة نماذج متعددة من مكان واحد
قيود الحصص (Quotas) توفير حصص استخدام أكثر مرونة
عوائق التسجيل لا حاجة لبطاقات ائتمان دولية أو أرقام هواتف أجنبية

🚀 البداية السريعة: نوصي باستخدام APIYI (apiyi.com) كمحطة وسيطة، حيث يوفر واجهة متوافقة مع OpenAI وجاهزة للاستخدام فوراً. عند التسجيل ستحصل على رصيد تجريبي مجاني، ويمكنك إتمام إعداد OpenCode في غضون 5 دقائق.

النقاط الأساسية لربط OpenCode بمحطة API الوسيطة

قبل البدء بالإعداد، دعنا نفهم مبدأ ربط OpenCode بواجهة البرمجة (API):

opencode-api-proxy-configuration-guide-ar 图示

شرح هيكلية الإعدادات

يعتمد OpenCode نظام إدارة إعدادات موحداً يدعم مستويات متعددة من التجاوز (Override):

مستوى الإعدادات موقع الملف الأولوية حالات الاستخدام
إعدادات عن بُعد .well-known/opencode الأقل الإعدادات الموحدة للفريق
إعدادات عامة ~/.config/opencode/opencode.json متوسطة الإعدادات الشخصية الافتراضية
متغيرات البيئة الملف الذي يشير إليه OPENCODE_CONFIG متوسطة-عالية التجاوز المؤقت
إعدادات المشروع opencode.json في جذر المشروع عالية إعدادات مخصصة لمشروع معين
إعدادات مضمنة OPENCODE_CONFIG_CONTENT الأعلى سيناريوهات CI/CD

مبدأ الاتصال بمحطة API الوسيطة

يدعم OpenCode أي واجهة برمجة متوافقة مع OpenAI من خلال محول @ai-sdk/openai-compatible. بنود الإعداد الأساسية هي:

  • baseURL: عنوان واجهة المحطة الوسيطة.
  • apiKey: مفتاح الـ API المقدم من المحطة الوسيطة.
  • models: قائمة النماذج المتاحة.

هذا يعني أنه طالما توفر المحطة الوسيطة واجهة قياسية لمسار /v1/chat/completions ، فيمكن ربطها مباشرة بـ OpenCode.

الإعداد السريع لـ OpenCode

الخطوة الأولى: تثبيت OpenCode

يوفر OpenCode عدة طرق للتثبيت، اختر ما يناسبك أكثر:

نص برمجي للتثبيت بنقرة واحدة (موصى به):

curl -fsSL https://opencode.ai/install | bash

التثبيت عبر Homebrew (macOS/Linux):

brew install opencode-ai/tap/opencode

التثبيت عبر npm:

npm i -g opencode-ai@latest

التثبيت عبر Go:

go install github.com/opencode-ai/opencode@latest

التحقق من نجاح التثبيت:

opencode --version

الخطوة الثانية: تكوين مفتاح وسيط الـ API

يدعم OpenCode طريقتين للمصادقة:

الطريقة الأولى: استخدام أمر /connect (موصى بها)

بعد تشغيل OpenCode، أدخل أمر /connect:

opencode
# في واجهة TUI أدخل
/connect

اختر Other لإضافة مزود مخصص (Provider)، ثم أدخل مفتاح الـ API الخاص بك. سيتم تخزين المفتاح بشكل آمن في ~/.local/share/opencode/auth.json.

الطريقة الثانية: تكوين متغيرات البيئة

أضف الأسطر التالية في ملف ~/.zshrc أو ~/.bashrc:

# تكوين وسيط APIYI
export OPENAI_API_KEY="sk-your-apiyi-key"
export OPENAI_BASE_URL="https://api.apiyi.com/v1"

تفعيل التكوين:

source ~/.zshrc

الخطوة الثالثة: إنشاء ملف التكوين opencode.json

هذه هي الخطوة الأكثر أهمية، حيث يتم إنشاء ملف تكوين لتحديد وسيط الـ API:

التكوين العام (ينطبق على جميع المشاريع):

mkdir -p ~/.config/opencode
touch ~/.config/opencode/opencode.json

تكوين المشروع (يسري على المشروع الحالي فقط):

touch opencode.json  # في المجلد الرئيسي للمشروع

مثال لتكوين مبسط

{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "apiyi": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "APIYI",
      "options": {
        "baseURL": "https://api.apiyi.com/v1",
        "apiKey": "{env:OPENAI_API_KEY}"
      },
      "models": {
        "claude-sonnet-4-20250514": {
          "name": "Claude Sonnet 4"
        },
        "gpt-4o": {
          "name": "GPT-4o"
        }
      }
    }
  },
  "model": "apiyi/claude-sonnet-4-20250514"
}

توضيح التكوين: تقوم صيغة {env:OPENAI_API_KEY} بقراءة متغير البيئة تلقائياً، مما يتجنب كتابة المفتاح يدوياً في ملف التكوين. مفاتيح API التي يتم الحصول عليها عبر APIYI (apiyi.com) متوافقة مع تنسيق OpenAI ويمكن استخدامها مباشرة.

عرض مثال التكوين الكامل (يحتوي على مزودين متعددين)
{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "apiyi": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "APIYI (موصى به)",
      "options": {
        "baseURL": "https://api.apiyi.com/v1",
        "apiKey": "{env:APIYI_API_KEY}"
      },
      "models": {
        "claude-sonnet-4-20250514": {
          "name": "Claude Sonnet 4",
          "limit": {
            "context": 200000,
            "output": 65536
          }
        },
        "claude-opus-4-20250514": {
          "name": "Claude Opus 4",
          "limit": {
            "context": 200000,
            "output": 32000
          }
        },
        "gpt-4o": {
          "name": "GPT-4o",
          "limit": {
            "context": 128000,
            "output": 16384
          }
        },
        "gpt-4o-mini": {
          "name": "GPT-4o Mini",
          "limit": {
            "context": 128000,
            "output": 16384
          }
        },
        "gemini-2.5-pro": {
          "name": "Gemini 2.5 Pro",
          "limit": {
            "context": 1000000,
            "output": 65536
          }
        },
        "deepseek-chat": {
          "name": "DeepSeek V3",
          "limit": {
            "context": 64000,
            "output": 8192
          }
        }
      }
    },
    "openrouter": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "OpenRouter",
      "options": {
        "baseURL": "https://openrouter.ai/api/v1",
        "apiKey": "{env:OPENROUTER_API_KEY}",
        "headers": {
          "HTTP-Referer": "https://your-site.com",
          "X-Title": "OpenCode Client"
        }
      },
      "models": {
        "anthropic/claude-sonnet-4": {
          "name": "Claude Sonnet 4 (OpenRouter)"
        },
        "openai/gpt-4o": {
          "name": "GPT-4o (OpenRouter)"
        }
      }
    }
  },
  "model": "apiyi/claude-sonnet-4-20250514",
  "small_model": "apiyi/gpt-4o-mini",
  "agent": {
    "coder": {
      "model": "apiyi/claude-sonnet-4-20250514",
      "maxTokens": 8000
    },
    "planner": {
      "model": "apiyi/gpt-4o",
      "maxTokens": 4000
    }
  },
  "tools": {
    "write": true,
    "bash": true,
    "glob": true,
    "grep": true
  }
}

مقارنة وسطاء الـ API المدعومين في OpenCode

opencode-api-proxy-configuration-guide-ar 图示

معلمات التكوين لوسطاء الـ API الرئيسيين

الوسيط baseURL المميزات السيناريو الموصى به
APIYI https://api.apiyi.com/v1 دعم محلي ممتاز، أسعار مغرية، استجابة سريعة الخيار الأول للمطورين المحليين
OpenRouter https://openrouter.ai/api/v1 الأكثر شمولاً، أكثر من 400 نموذج لمن يحتاج للتنقل المستمر بين النماذج
Together AI https://api.together.xyz/v1 نماذج مفتوحة المصدر وفيرة لمستخدمي Llama وMistral
Groq https://api.groq.com/openai/v1 سرعة فائقة، رصيد مجاني للسيناريوهات الحساسة للتأخير

شرح مفصل لتكوين APIYI

APIYI هي منصة وسيطة لـ AI API محسنة خصيصاً للمطورين، توفر:

  • واجهة موحدة متوافقة مع OpenAI
  • دعم للنماذج الرئيسية مثل Claude وGPT وGemini وDeepSeek
  • الدفع حسب الاستخدام، بدون رسوم شهرية
  • رصيد تجريبي مجاني
  • دعم فني محلي
{
  "provider": {
    "apiyi": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "APIYI",
      "options": {
        "baseURL": "https://api.apiyi.com/v1"
      },
      "models": {
        "claude-sonnet-4-20250514": { "name": "Claude Sonnet 4" },
        "claude-opus-4-20250514": { "name": "Claude Opus 4" },
        "gpt-4o": { "name": "GPT-4o" },
        "gpt-4o-mini": { "name": "GPT-4o Mini" },
        "gemini-2.5-pro": { "name": "Gemini 2.5 Pro" },
        "deepseek-chat": { "name": "DeepSeek V3" }
      }
    }
  }
}

شرح مفصل لتكوين OpenRouter

يجمع OpenRouter أكثر من 400 نموذج ذكاء اصطناعي، وهو مناسب للسيناريوهات التي تتطلب تبديلاً متكرراً بين النماذج:

{
  "provider": {
    "openrouter": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "OpenRouter",
      "options": {
        "baseURL": "https://openrouter.ai/api/v1",
        "apiKey": "{env:OPENROUTER_API_KEY}",
        "headers": {
          "HTTP-Referer": "https://your-app.com",
          "X-Title": "My OpenCode App"
        }
      },
      "models": {
        "anthropic/claude-sonnet-4": {
          "name": "Claude Sonnet 4"
        },
        "google/gemini-2.5-pro": {
          "name": "Gemini 2.5 Pro"
        },
        "meta-llama/llama-3.1-405b": {
          "name": "Llama 3.1 405B"
        }
      }
    }
  }
}

💡 نصيحة للاختيار: إذا كنت تستخدم بشكل أساسي سلاسل نماذج Claude وGPT، نوصي بـ APIYI (apiyi.com) لأسعارها الأفضل وسرعة استجابتها. أما إذا كنت بحاجة لاستخدام نماذج مفتوحة المصدر أو نماذج نادرة، فإن OpenRouter يوفر تغطية أشمل.

تقنيات التكوين المتقدمة في OpenCode

استراتيجية تخصيص نماذج الوكيل (Agent)

يحتوي OpenCode على وكيلين مدمجين هما Coder و Planner، ويمكنك تخصيص نماذج مختلفة لكل منهما:

{
  "agent": {
    "coder": {
      "model": "apiyi/claude-sonnet-4-20250514",
      "maxTokens": 8000,
      "description": "主要编码任务,使用强模型"
    },
    "planner": {
      "model": "apiyi/gpt-4o-mini",
      "maxTokens": 4000,
      "description": "规划分析,使用轻量模型节省成本"
    }
  }
}

التبديل بين مزودي الخدمة المتعددين (Provider)

بعد تكوين عدة مزودين (Providers)، يمكنك استخدام الأمر /models داخل OpenCode للتبديل في أي وقت:

# 启动 OpenCode
opencode

# 在 TUI 中切换模型
/models
# 选择 apiyi/claude-sonnet-4-20250514 或其他模型

أفضل الممارسات لمتغيرات البيئة

نوصي بإدارة مفاتيح واجهة برمجة التطبيقات (API keys) في ملف .env:

# .env 文件
APIYI_API_KEY=sk-your-apiyi-key
OPENROUTER_API_KEY=sk-or-your-openrouter-key

ثم الإشارة إليها في ملف opencode.json:

{
  "provider": {
    "apiyi": {
      "options": {
        "apiKey": "{env:APIYI_API_KEY}"
      }
    }
  }
}

تكوين حدود الرموز (Token)

حدد قيود السياق والمخرجات للنموذج لتجنب أخطاء تجاوز الحدود:

{
  "models": {
    "claude-sonnet-4-20250514": {
      "name": "Claude Sonnet 4",
      "limit": {
        "context": 200000,
        "output": 65536
      }
    }
  }
}

استكشاف أخطاء OpenCode وإصلاحها

المشكلات التي قد تواجهها أثناء عملية التكوين وحلولها:

س1: تظهر رسالة الخطأ “Route /api/messages not found” بعد التكوين؟

يحدث هذا عادةً بسبب تكوين baseURL بشكل غير صحيح. تحقق من النقاط التالية:

  1. تأكد من أن baseURL ينتهي بـ /v1 وليس بـ /v1/chat/completions.
  2. تأكد من أن محطة التوزيع (Relay) تدعم تنسيق واجهة OpenAI القياسي.
  3. تحقق من صلاحية مفتاح واجهة برمجة التطبيقات (API key).

التنسيق الصحيح:

"baseURL": "https://api.apiyi.com/v1"

التنسيق الخاطئ:

"baseURL": "https://api.apiyi.com/v1/chat/completions"

عنوان الواجهة الذي يتم الحصول عليه عبر APIYI (apiyi.com) تم التحقق منه ويمكن استخدامه مباشرة.

س2: تظهر رسالة “ProviderModelNotFoundError” ولم يتم العثور على النموذج؟

هذا لأن معرف النموذج (Model ID) المكون لا يتطابق مع ما هو محدد في المزود (Provider). الحل:

  1. تحقق من تنسيق حقل model: provider-id/model-id.
  2. تأكد من تعريف هذا النموذج داخل كائن models.

مثال:

{
  "provider": {
    "apiyi": {
      "models": {
        "claude-sonnet-4-20250514": { "name": "Claude Sonnet 4" }
      }
    }
  },
  "model": "apiyi/claude-sonnet-4-20250514"
}
س3: كيف يمكنني التحقق من نجاح التكوين؟

استخدم الأوامر التالية للتحقق:

# 查看已配置的认证信息
opencode auth list

# 查看可用模型
opencode
/models

# 测试简单对话
opencode -p "Hello, 请用中文回复"

إذا تلقيت استجابة عادية، فهذا يعني أن التكوين ناجح. يمكنك عبر منصة APIYI (apiyi.com) الاطلاع على سجلات استدعاء واجهة برمجة التطبيقات في لوحة التحكم لتسهيل عملية استكشاف الأخطاء.

س4: ما هو أفضل مكان لوضع ملف التكوين؟

اختر بناءً على سيناريو الاستخدام:

السيناريو الموقع الموصى به ملاحظات
افتراضي عالمي للشخص ~/.config/opencode/opencode.json مشترك بين جميع المشاريع
تكوين مشروع معين دليل المشروع الرئيسي opencode.json يمكن رفعه إلى Git (بدون المفاتيح)
بيئة CI/CD متغير البيئة OPENCODE_CONFIG_CONTENT حقن التكوين ديناميكيًا
س5: كيف يمكنني التبديل بين محطات توزيع API المختلفة في OpenCode؟

بعد تكوين عدة مزودين (Providers)، استخدم الأمر /models للتبديل:

opencode
/models
# 选择不同 Provider 下的模型即可切换

يمكنك أيضًا تعيين نموذج افتراضي في التكوين:

{
  "model": "apiyi/claude-sonnet-4-20250514"
}

مقارنة بين OpenCode وClaude Code: طرق الوصول إلى واجهة برمجة التطبيقات (API)

بُعد المقارنة OpenCode Claude Code
دعم النماذج أكثر من 75 نموذجاً، تكوين مرن سلسلة Claude فقط
محطات API الوسيطة يدعم أي واجهة متوافقة مع OpenAI لا يدعم الواجهات المخصصة
السعر برنامج مجاني + دفع حسب استخدام الـ API اشتراك شهري بقيمة 17-100 دولار + API
طريقة التكوين ملفات تكوين JSON + متغيرات البيئة تكوين مدمج، غير قابل للتعديل
مستوى المصدر المفتوح مفتوح المصدر بالكامل مغلق المصدر
الأداء يعتمد على النموذج المختار تحسينات أصلية لـ Claude، بنسبة 80.9% في SWE-bench

🎯 نصيحة تقنية: تكمن الميزة الكبرى لـ OpenCode في مرونة النماذج. بالتعاون مع محطة APIYI (apiyi.com) الوسيطة، يمكنك استخدام نفس التكوين للتبديل بين نماذج متعددة مثل Claude وGPT-4 وGemini وغيرها، للعثور على الحل الأمثل من حيث التكلفة والأداء.

المراجع

فيما يلي المراجع التي قد تحتاجها عند إعداد OpenCode:

المرجع الرابط الوصف
وثائق OpenCode الرسمية opencode.ai/docs مرجع التكوين الكامل
مستودع OpenCode على GitHub github.com/opencode-ai/opencode الكود المصدري والمشكلات (Issues)
تكوين مزودي OpenCode opencode.ai/docs/providers شرح مفصل للمزودين
وثائق OpenRouter openrouter.ai/docs دليل الوصول إلى OpenRouter

ملخص

من خلال طريقة التكوين المكونة من 3 خطوات في هذا المقال، أصبحت الآن تتقن:

  1. تثبيت OpenCode: استخدام نص برمجي بنقرة واحدة أو مدير حزم للتثبيت السريع.
  2. تكوين مفتاح API: إعداد المصادقة عبر الأمر /connect أو من خلال متغيرات البيئة.
  3. إنشاء ملف التكوين: كتابة ملف opencode.json لتحديد خادم الوسيط والنماذج.

بصفته مساعد برمجة بالذكاء الاصطناعي مفتوح المصدر في واجهة الأوامر (Terminal)، يوفر OpenCode تجربة تضاهي Claude Code عند استخدامه مع وسيط API، مع الحفاظ على التحكم في التكاليف ومرونة النماذج.

نوصي بالحصول على مفتاح API بسرعة عبر APIYI apiyi.com والبدء في الاختبار. توفر المنصة رصيداً مجانياً، وتدعم النماذج الرائدة مثل Claude و GPT و Gemini، كما أن تنسيق الواجهة الموحد يجعل التكوين أكثر سهولة.


📝 المؤلف: فريق APIYI التقني | APIYI apiyi.com – لجعل استدعاء واجهات برمجة تطبيقات الذكاء الاصطناعي (AI API) أكثر سهولة.

موضوعات ذات صلة