عن المشروع
WindsurfAPI هي خدمة وكيل عكسي ذاتية الاستضافة تحوّل أكثر من 100 نموذج ذكاء اصطناعي سحابي من Windsurf (المعروفة سابقًا بـ Codeium، وحاليًا Devin Desktop) إلى عدة مجموعات من واجهات API القياسية. المشروع منفّذ بلغة Node.js الصرفة، ويُعلن خلوه من أي اعتماديات npm وقت التشغيل، ويستمع افتراضيًا على المنفذ 3003.
## الواجهات المتوفرة
- `POST /v1/chat/completions`: متوافقة مع OpenAI Chat، ويمكن استخدام OpenAI SDK مباشرة
- `POST /v1/completions`: واجهة OpenAI Completions القديمة (غير متدفقة)
- `POST /v1/responses`: متوافقة مع OpenAI Responses، وتدعم أيضًا `GET`/`DELETE /v1/responses/{id}` لقراءة الردود المخزنة وحذفها، ويمكن استخدام `previous_response_id` لمتابعة السياق
- `POST /v1/messages`: متوافقة مع Anthropic، لتتصل بها عملاء مثل Claude Code وCline وCursor
- `POST /v1beta/models/*`: متوافقة مع Gemini، وتدعم ترويسة `x-goog-api-key` ومعامل الاستعلام `?key=`
## آلية العمل
تقوم الخدمة بترجمة طلبات البروتوكولات المختلفة إلى بروتوكول gRPC الداخلي لـ Windsurf، ثم تمرّرها عبر ملف Language Server الثنائي المحلي إلى سحابة Windsurf؛ ويمكن أيضًا الاتصال المباشر بسحابة Devin عبر مسار `DEVIN_CONNECT`. تتضمن الخدمة تجميعًا للحسابات يوفر التناوب وعزل حدود المعدل والتبديل عند الفشل وقطع الدائرة؛ وقبل الإرجاع تُجرَّد معلومات هوية Windsurf من المصدر الأعلى.
## النشر والاستخدام
يتوفر `setup.sh` للنشر بأمر واحد، والنشر عبر Docker Compose، وسكربت التحديث `update.sh`. يجب أولًا إضافة حساب Windsurf: عبر تسجيل الدخول بـ Google/GitHub OAuth من لوحة التحكم، أو تسجيل الدخول بالبريد وكلمة المرور، أو استيراد الرموز المميزة (Tokens) التي يتم الحصول عليها من `windsurf.com/show-auth-token` بشكل جماعي عبر واجهة `/auth/login`.
توفر لوحة التحكم (`/dashboard`) لوحات للنظرة العامة وتسجيل الدخول وإضافة الحسابات وإدارة الحسابات والقوائم البيضاء والسوداء للنماذج وإعدادات الوكيل والسجلات المباشرة والتحليلات الإحصائية.
## نقاط الإعداد
تتجاوز متغيرات البيئة المنفذ ومفتاح API والنموذج الافتراضي والحد الأقصى للرموز ومستوى السجلات ومسار ملف LS الثنائي ودليل البيانات ومجموعة نسخ LS وحدود الذاكرة وتخزين الردود (TTL والعدد وميزانية البايتات) والجلسات اللاصقة والقائمة البيضاء لمضيفي الوكيل وغيرها. عند ترك `API_KEY` فارغًا و`DASHBOARD_PASSWORD` فارغًا يكون السلوك الافتراضي fail-closed (إرجاع 401)، ويتطلب الفتح المحلي ضبط المفاتيح المقابلة صراحةً.
## النماذج والعملاء
تغطي قائمة النماذج الثابتة سلاسل Claude وGPT وGemini وGrok وQwen وKimi وGLM وMiniMax وSWE وArena وغيرها، وتُدمج عند بدء التشغيل مع كتالوج النماذج الديناميكي المُرسَل من السحابة. توضح الوثائق أن النماذج نفسها لا تتعامل مع الملفات، بل ينفّذ قراءة الملفات وكتابتها عملاء مثل Claude Code وCline محليًا، بينما تقتصر البوابة على تمرير tool_use/tool_result. ولمعالجة اعتراض عميل Cursor للقائمة البيضاء لأسماء النماذج التي تحتوي على `claude`، يوفر README جدول تعيين الأسماء البديلة.
المشروع مفتوح المصدر بترخيص MIT، ويتضمن README أيضًا إعلانًا شخصيًا من المؤلف بشأن الاستخدام التجاري.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.