
بوابة API محلية (On-prem) لوكلاء الترميز بالذكاء الاصطناعي مع توزيع التكاليف لكل مهندس، وميزانيات صارمة، وحوكمة البيانات الصادرة (فحص الأسرار/الكيانات)، ومراقبة دوران السياق، وتصدير جاهز للتدقيق. يعمل داخل شبكة VPC الخاصة بك.
لوحة التحكم المحلية (on-prem) لعملاء الترميز بالذكاء الاصطناعي. إسناد التكلفة لكل مهندس · ميزانيات صارمة · حوكمة الصادر (egress) · مراقبة تدهور السياق (context rot) · تقارير جاهزة للتدقيق — كل ذلك داخل شبكتك الافتراضية الخاصة (VPC).
Conduit يقع بين عملاء الترميز بالذكاء الاصطناعي لديك (Claude Code، Cursor، Codex، Aider) وأي مزود تستخدمه بالفعل (Anthropic، OpenAI، Bedrock، Azure — أو نشرك الحالي LiteLLM / Portkey). متغير بيئة واحد للاعتماد، بدون تغييرات على العميل، ولا يتم تخزين المطالبات (prompts) والإكمالات (completions) أبدًا.
[Claude Code / Cursor / Codex]
│ ANTHROPIC_BASE_URL=https://conduit.yourco.dev
▼
[Conduit] vk_live_… (لكل مهندس)
│ القياس · الميزانيات · الحوكمة · التدقيق · تدهور السياق
▼
[LiteLLM / Portkey / المزودون المباشرون]
│
▼
[Anthropic / OpenAI / Bedrock / Azure]
نظرة عامة — الإنفاق، توفير الذاكرة المخبأة، الرموز (tokens)، الطلبات المحظورة، وإشارات الحوكمة في لمحة.

فرض الميزانية الصارمة — تجاوز الحد يعيد 402 عند البوابة (gateway)، قبل أن يصل الطلب إلى المزود.

حوكمة الصادر — يتم حظر طلب يحمل مفتاح AWS برمز 451؛ يتم تسجيل الفئة فقط، ولا يتم تسجيل القيمة أبدًا.

النشاط — كل طلب بحالة مميزة: نجاح · إصابة ذاكرة تخزين مؤقت · تحديد معدل · حظر نموذج · تجاوز ميزانية · حوكمة محظورة.

الإعدادات — إدارة كاملة (CRUD) للمؤسسة، بيانات اعتماد المزود، الفِرق، الميزانيات، والمفاتيح الافتراضية.

نقاط النهاية الخاصة لـ Bedrock / Vertex / Azure واتفاقيات BAA (بدون تدريب) تحل قناة الوصول إلى البائع. لكنها لا تخبر المالية (finance) من الذي أنفق الـ 40 ألف دولار، ولا تكتشف الأسرار عند الصادر، ولا تعطي المدققين سجلاً، ولا تُظهر أين يحرق تدهور السياق ميزانية الرموز الخاصة بك. هذه هي الفجوة التي يملؤها Conduit — دون أن يطلع على مطالباتك أبدًا.
يسحب أحدث الصور الموقّعة من GHCR (قابلة للتحقق عبر cosign verify، انظر الوضع الأمني).
# 1. احصل على ملف compose + قالب env (لا حاجة لاستنساخ كامل)
curl -fsSL https://raw.githubusercontent.com/anee769/conduit/master/docker-compose.yml -o docker-compose.yml
curl -fsSL https://raw.githubusercontent.com/anee769/conduit/master/.env.example -o .env
# 2. أنشئ مفتاح تشفير رئيسي حقيقي
sed -i.bak "s|^MASTER_ENCRYPTION_KEY=.*|MASTER_ENCRYPTION_KEY=$(openssl rand -base64 32)|" .env && rm .env.bak
# 3. اسحب الصور الموقّعة + ابدأ
docker compose --profile app pull
docker compose --profile app up -d
# 4. قم بتشغيل الترحيلات + زرع جدول التسعير (مرة واحدة)
docker exec conduit-gateway-1 pnpm --filter @finops/db db:migrate
docker exec conduit-gateway-1 pnpm --filter @finops/db seed-pricing
# → افتح http://localhost:3000/setup → أنشئ المؤسسة / بيانات الاعتماد / الفريق / المفتاح الافتراضي
ثبّت إصدارًا محددًا بتصدير GATEWAY_IMAGE و CONTROL_PLANE_IMAGE قبل up:
export GATEWAY_IMAGE=ghcr.io/anee769/conduit-gateway:v0.1.0
export CONTROL_PLANE_IMAGE=ghcr.io/anee769/conduit-control-plane:v0.1.0
git clone https://github.com/anee769/conduit && cd conduit
cp .env.example .env
sed -i.bak "s|^MASTER_ENCRYPTION_KEY=.*|MASTER_ENCRYPTION_KEY=$(openssl rand -base64 32)|" .env && rm .env.bak
docker compose --profile app up -d --build
docker exec conduit-gateway-1 pnpm --filter @finops/db db:migrate
docker exec conduit-gateway-1 pnpm --filter @finops/db seed-pricing
export ANTHROPIC_BASE_URL=http://localhost:4000
export ANTHROPIC_AUTH_TOKEN=vk_live_… # المفتاح الافتراضي من /setup
claude # أو cursor / codex / aider
دليل كامل من الصفر في INSTALL.md.
LiteLLM ممتاز في تسميات النماذج وتوجيهها — Conduit يضيف الطبقة التي طلبتها فرق الأمان والمالية لديك. Portkey هو الأقرب في تغطية الميزات لكنه مغلق المصدر على مستوى المؤسسات بمجرد احتياجك للحوكمة والنشر المحلي. Helicone هو للمراقبة فقط (يخبرك أين ذهبت الرموز؛ لا يتحكم في أين تذهب).
SECURITY.md للوضع الكامل./invoke غير البث لـ Bedrock.يعمل Conduit بالكامل في السحابة الخاصة بك — لا بائع في مسار الطلب، لا اتصال بالمنزل، قابل للعزل (air-gappable). انظر SECURITY.md للورقة البيضاء (مخطط تدفق البيانات، ما يتم تخزينه، التشفير، المصادقة المغلقة عند الفشل، وضع الامتثال، نموذج التهديد).
ghcr.io/anee769/conduit-gateway و ghcr.io/anee769/conduit-control-plane مع كل علامة v* في git (انظر .github/workflows/release.yml). تحقق من أي علامة منشورة:
cosign verify ghcr.io/anee769/conduit-gateway:<tag> \
--certificate-identity-regexp 'https://github.com/anee769/conduit' \
--certificate-oidc-issuer https://token.actions.githubusercontent.com
bash scripts/sbom.sh.apps/gateway — Hono على Node.js، طبقة البيانات السريعة (hot-path data plane). بدون خطوة بناء (tsx). عميل ClickHouse بدون تبعيات (zero-dep) + ioredis.apps/control-plane — لوحة تحكم Next.js 15 / React 19 + API إداري + معالج الإعداد الأول /setup.packages/db — مخطط Drizzle، تشفير AES-256-GCM، تجزئة المفاتيح، التسعير والميزانيات.usage_events) + Redis (الذاكرة المؤقتة + حدود المعدل + عدادات الميزانية الحية).دورة حياة الطلب (apps/gateway/src/routes/proxy.ts):
المصادقة (المفتاح الافتراضي) ← تحديد المعدل ← قائمة السماح للنموذج ← فحص الميزانية
→ فحص الحوكمة (أسرار T1 + كيانات T2 الخفيفة)
→ بحث في الذاكرة المؤقتة ← حل بيانات الاعتماد ← adapter.prepare()
→ إرسال + تفريع البث (العميل دون تغيير؛ فرع القياس في الخلفية)
bash scripts/run-tests.sh # مجموعة كاملة من الوحدات + النظام الحي (72 اختبارًا)
bash scripts/run-tests.sh --unit-only # منطق خالص، لا حاجة لمكدس Docker
pwsh scripts/run-tests.ps1 # المكافئ على Windows
يدير CI (.github/workflows/ci.yml) كلتا المهامين على كل طلب سحب — ادمج فقط عندما يكون أخضر.
مرحب بالطلبات (PRs). المسار السريع:
git checkout -b feat/my-change
# …
bash scripts/ci-local.sh # تشغيل نفس الفحوصات التي يشغلها CI
bash scripts/ci-local.sh --fast # فقط فحص النوع والوحدات، بدون Docker
git push -u origin feat/my-change
gh pr create --base dev
تدفق الفروع: ميزة → dev → master. يجب أن ينجح CI قبل الدمج.
رخصة Apache 2.0 — نفس رخصة Kubernetes و Terraform و Kafka. استخدمها تجاريًا، عدّلها، ضمّنها في منتجك; من فضلك لا تدّعي أن Conduit هو عملك الخاص.
SECURITY.mddocs/run-with-litellm.mdINSTALL.md| تشغّله اليوم | هيّئ الوجهة النهائية لـ Conduit كـ |
|---|
| LiteLLM (أي نموذج، أي مزود) | UPSTREAM_ANTHROPIC_URL=http://litellm:4000 → الدليل الكامل: docs/run-with-litellm.md |
| Portkey | وجّه UPSTREAM_OPENAI_URL / UPSTREAM_ANTHROPIC_URL إلى رابط Portkey الأساسي الخاص بك |
| Anthropic / OpenAI مباشر | الإعداد الافتراضي — لا شيء لتكوينه |
| AWS Bedrock | هيّئ بيانات اعتماد Bedrock في /setup؛ Conduit يوقّع الطلبات بـ SigV4 |
| Azure OpenAI | هيّئ بيانات اعتماد Azure (اسم النشر + api-version) في /setup |
| Conduit | LiteLLM | Portkey | Helicone |
|---|
| رخصة مفتوحة المصدر | Apache 2.0 | MIT | Apache 2.0 (البوابة) | MIT |
| يعمل بالكامل محليًا / في شبكتك الخاصة | ✅ | ✅ | ✅ (مؤسسي) | ✅ (استضافة ذاتية) |
| توجيه المزود + تسميات (aliasing) + احتياطي (fallback) | ✅ (أي وجهة نهائية) | ✅ | ✅ | ❌ |
| إسناد التكلفة لكل مهندس (مفاتيح افتراضية بأسماء) | ✅ | جزئي (فواتير مشتركة لمفتاح رئيسي) | ✅ | ✅ (مراقبة فقط) |
| ميزانيات صارمة (إرجاع 402 عند الفشل) | ✅ | جزئي | ✅ | ❌ |
| حوكمة الصادر (أسرار + قائمة سماح كيانات للمؤسسة، تنبيه ← حظر) | ✅ | ❌ | ✅ (حواجز حماية) | ❌ |
| تصدير جاهز للتدقيق (CSV/JSON) (بيانات وصفية فقط) | ✅ | ❌ | جزئي | ✅ |
| مراقبة تدهور السياق (منحنى التكلفة والخطأ حسب حجم رمز الإدخال) | ✅ | ❌ | ❌ | ❌ |
| لا يتم تخزين المطالبات / الإكمالات أبدًا | ✅ | يسجل افتراضيًا | قابل للتكوين | يسجل افتراضيًا |
| إصدارات موقّعة + SBOM (CycloneDX) | ✅ | ❌ | ❌ | ❌ |
| مصمم للوقوف فوق الآخرين | ✅ | غير قابل للتطبيق | غير قابل للتطبيق | غير قابل للتطبيق |