API Hop

الوثائق

وثائق API Hop

تكامل Codex

>-

يستدعي Codex النماذج عبر بروتوكول OpenAI Responses. اضبط مزود النموذج باستخدام Base URL المتوافق مع OpenAI المعروض في هذه الصفحة.

text
Codex base_url: https://api.apihop.ai/openai

المتطلبات المسبقة

جهز مفتاح API Hop API صالحا أولا. سيكتب المفتاح في مجلد إعداد Codex المحلي لديك. لا تضعه في المستودعات أو السجلات أو لقطات الشاشة.

يخزن Codex ملفات الإعداد عادة في:

  • مسار macOS / Linux: ~/.codex/
  • مسار Windows: %userprofile%\.codex\

إذا لم يكن المجلد أو ملف الإعداد موجودا، فأنشئه أولا:

bash
mkdir -p ~/.codex
touch ~/.codex/config.toml

في Windows CMD:

bat
mkdir %userprofile%\.codex
type nul > %userprofile%\.codex\config.toml

نسخ الإعداد احتياطيا

إذا سبق أن استخدمت Codex، فانسخ الإعداد الحالي احتياطيا أولا:

bash
cp ~/.codex/config.toml ~/.codex/config.toml.bak
cp ~/.codex/auth.json ~/.codex/auth.json.bak

تحديث config.toml

افتح ~/.codex/config.toml، ثم أضف هذا الإعداد أو حدثه:

toml
model_provider = "apihop"
model = "gpt-5.4"
review_model = "gpt-5.4"
model_reasoning_effort = "high"
disable_response_storage = true
network_access = "enabled"

[model_providers.apihop]
name = "API Hop"
base_url = "https://api.apihop.ai/openai"
wire_api = "responses"
requires_openai_auth = true
supports_websockets = true
websocket_connect_timeout_ms = 15000

[features]
responses_websockets = true

قاعدة base_url هي: عنوان API Base URL العام المعروض في هذه الصفحة + /openai.

إذا كان config.toml لديك يحتوي بالفعل على [marketplaces.*] أو [plugins.*] أو إعدادات أدوات أخرى، فاحتفظ بها وأضف أو حدث إعدادات مزود نموذج Codex أعلاه فقط.

وضع WebSocket

عند تفعيل supports_websockets = true وresponses_websockets = true، يستخدم Codex نقطة نهاية Responses WebSocket المعروضة أدناه:

text
https://api.apihop.ai/openai/responses

إذا استخدم API Base URL الصيغة https://، فيستخدم Codex اتصال wss:// المقابل.

وضع WebSocket هذا جسر Responses عبر WebSocket مخصص لـCodex:

  • يدعم response.create
  • يدعم response.cancel
  • يعيد response.completed
  • يحتفظ أيضا بحدث التوافق response.processed

يقر response.cancelled بطلب الإلغاء المحلي. ولا يؤكد استرداد المبلغ لدى المزود. يظل مبلغ الطلب ذي نتيجة المزود المجهولة محجوزا حتى التحقق من استخدامه أو إخفاقه.

هذه ليست OpenAI Realtime API. لا تدعم session.update أو conversation.item.* أو input_audio_buffer.* أو بث الصوت أو الرسائل الثنائية أو أغلفة Realtime.

إذا تعذر على وكيل الشبكة أو بوابة الشركة أو إصدار Codex أقدم إنشاء اتصالات WebSocket، فانتقل مؤقتا إلى:

toml
[model_providers.apihop]
supports_websockets = false

[features]
responses_websockets = false

سيعود Codex عندئذ إلى HTTP POST https://api.apihop.ai/openai/responses. ‏Compact قدرة مستقلة: لا توجد قناة Compact متحقق منها للنماذج الخمسة من GPT المدرجة حاليا. لا يؤدي تبديل وضعي HTTP/WebSocket إلى تفعيل ضغط السياق. ابدأ محادثة جديدة قبل تجاوز حد سياق النموذج؛ ولا تعتمد على الضغط التلقائي للسياق الطويل مع هذه المسارات.

كتابة مفتاح API

استبدل YOUR_APIHOP_API_KEY بمفتاح API Hop API لديك:

bash
echo '{"OPENAI_API_KEY":"YOUR_APIHOP_API_KEY"}' > ~/.codex/auth.json

في Windows CMD:

bat
echo {"OPENAI_API_KEY":"YOUR_APIHOP_API_KEY"} > %userprofile%\.codex\auth.json

إعادة التشغيل والاختبار

احفظ الإعداد وأغلق Codex بالكامل ثم افتحه مجددا.

يمكنك اختبار واجهة الأوامر باستخدام:

bash
codex "Reply in one sentence whether the current model is available."

لإضافة VS Code أو تطبيق سطح المكتب، أغلق التطبيق بالكامل ثم أعد فتحه وابدأ محادثة عادية.

تشخيص المشكلات

  • يجب أن يكون base_url عنوان API Base URL العام المعروض في هذه الصفحة مضافا إليه /openai.
  • يجب أن تكون wire_api هي responses؛ ولا تغيرها إلى chat.
  • يعني خطأ عدم توفر Compact عدم وجود قناة Compact متحقق منها؛ ولا يمكن لتغيير عتبة رموز محلية تفعيلها.
  • يدعم API Hop كلا من HTTP Responses وCodex Responses WebSocket. أبق supports_websockets = true وresponses_websockets = true افتراضيا. إذا تعذر على إصدار Codex أو وكيل الشبكة استخدام WebSocket، فاضبط supports_websockets = false مؤقتا للعودة إلى HTTP.
  • يجب أن يكون auth.json بصيغة JSON صحيحة، وأن يكون اسم المفتاح OPENAI_API_KEY.
  • إذا تلقيت 401 أو invalid key، فأكد صلاحية مفتاح API وأن مفتاحا محليا أقدم لم يكتب فوقه.
  • إذا كان النموذج غير متاح، فتحقق من GET https://api.apihop.ai/v1/models واضبط model وreview_model على نموذج GPT ظاهر. يستخدم المثال الافتراضي gpt-5.4؛ ولا يفعل gpt-5.3-codex وgpt-5.6-luna حاليا.
  • أغلق Codex بالكامل وأعد فتحه بعد تغيير الإعداد. قد لا يؤدي إغلاق النافذة وحدها إلى إعادة تحميل auth.json.
  • POST https://api.apihop.ai/openai/responses: نقطة نهاية API Hop المتوافقة مع Responses الموصى بها.
  • POST https://api.apihop.ai/openai/responses/compact: تتطلب قناة Compact مفعلة صراحة؛ وإلا تعيد 503 قبل حجز الرصيد. تعيد القناة المدعومة response.compaction.
  • WS /openai/responses: نقطة نهاية متوافقة مع Responses WebSocket. تدعم response.create وresponse.cancel، وتعيد response.completed، وتحتفظ بحدث التوافق response.processed.
  • WS /openai/responses/compact: تستخدم فحص قدرة Compact ونقطة النهاية نفسيهما. مصافحة WebSocket وحدها لا تثبت دعم النموذج.