أدلة الانتقالمن OpenRouter
من OpenRouter، مع بقاء OpenRouter في الصورة إن أردت
يمنحك OpenRouter حسابًا واحدًا ومفتاحًا واحدًا لنماذج من مورّدين كثيرين، تدفع ثمنها من وحدات استخدام تشتريها منه سلفًا، مع خيار استخدام مفاتيح مزوّديك. أما INFRO فعلى العكس: كل طلب يعمل على حساب مزوّد تملكه أنت. ولا يُلغي أحدهما الآخر، فـ OpenRouter أحد المزوّدين الذين تتصل بهم INFRO. تشرح هذه الصفحة الخيارين: OpenRouter كمصدر واحد بين حساباتك المباشرة، أو الحسابات المباشرة وحدها.
اتفقت Stripe على الاستحواذ عليها (أُعلن في 2026-08-19)؛ ولا إشعار إتمام حتى 2026-10-19
التسجيل في INFRO ذاتي، دون وسيط. الكتالوج والتوثيق وعقد API متاحة للعموم، والبوابة قيد التشغيل، وكل ما يتجاوز v1 موسوم بـ «لاحقًا». الباقات والفترة التجريبية
أين وصلت الأمور
الملكية
أعلنت Stripe في 2026-08-19 أنها اتفقت على الاستحواذ على OpenRouter. ويقول منشور OpenRouter نفسها إن الاسم والمنتج وخارطة الطريق باقية وإن التكاملات لا تتغير. ولم تكن أي من الشركتين قد نشرت إشعار إتمام عندما قرأنا صفحتيهما في 2026-10-19.
على حساب مَن يُخدَم الطلب
افتراضيًا تُستخدم حسابات المزوّدين لدى OpenRouter نفسها، وتُدفع من وحدات مشتراة سلفًا. ومع BYOK يُجرَّب مفتاح مزوّدك أولًا؛ وتقول وثائق OpenRouter إنه قد يعود إلى سعتها المشتركة عند الفشل ما لم يُعطَّل ذلك لكل مفتاح.
ما الذي ينتقل
عنوان URL الأساسي والمفتاح؛ وmodels إلى fallbacks؛ وتوجيه provider إلى مسارات أو routing.providers؛ وuser وsession_id وtrace إلى metadata أو ترويسات INFRO. ويُحذف HTTP-Referer وX-OpenRouter-Title.
يحلّ OpenRouter مشكلة الوصول: حساب واحد لمورّدين كثيرين. إن كانت هذه مشكلتك فهو المنتج المناسب، ويمكنك مع ذلك وضع INFRO أمامه.
- لا تريد حسابًا لدى كل مورّد. تعمل INFRO على حسابات تملكها فقط، لذا يحتاج كل نموذج تستدعيه إلى حساب مزوّد خلفه (ويمكن أن يكون حساب OpenRouter أحدها).
- تختار من بين مضيفين كثيرين للنماذج مفتوحة الأوزان بحسب السعر أو الإنتاجية أو زمن الاستجابة لكل طلب (
provider.sortوmax_price). ليس لدى INFRO ترتيب بحسب السعر أو زمن الاستجابة لكل طلب؛ ويحدد المسار الترتيب. - تعتمد على
openrouter/autoأو على إعدادات مسبقة تحمل مطالبة نظام ومعاملات. أقرب ما لدى INFRO هو مسار بمصنِّف مطالبات، يختار الأهداف لا المطالبات. - تحتاج إلى توجيه داخل منطقة الاتحاد الأوروبي اليوم. إقامة البيانات لدى INFRO في خارطة الطريق، وغير متاحة.
التعديلات، صف لكل منها. كل ما لم يُذكر هنا يبقى كما هو.
| OpenRouter | INFRO | |
|---|---|---|
| عنوان URL الأساسي | https://openrouter.ai/api/v1 | https://api.infro.io/v1 |
| المفتاح | مفتاح OpenRouter؛ مع إضافة مفاتيح مزوّديك اختياريًا كـ BYOK. | مفتاح بوابة INFRO. حسابات مزوّديك (ومفتاح OpenRouter الخاص بك، إن احتفظت به) اتصالات في لوحة التحكم. |
| معرّف النموذج | vendor/model, ~vendor/...-latest, openrouter/auto, @preset/name. | vendor/model من كتالوج INFRO، أو اسم مسار. يعرض GET /v1/models ما تخدمه اتصالاتك. تختلف بعض بادئات المورّدين عن OpenRouter (xai/ لدى INFRO وx-ai/ لدى OpenRouter). |
| حقول الجسم | models, provider { order, only, ignore, sort, max_price }, user, session_id, trace. | fallbacks (حتى 5)، وrouting.providers { allow, deny }، وmetadata { user_id, session_id, tags }؛ وX-INFRO-Trace-Id لمعرّف التتبّع. |
قبل · OpenRouter
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://openrouter.ai/api/v1",
apiKey: process.env.OPENROUTER_API_KEY,
defaultHeaders: { "X-OpenRouter-Title": "Example App" },
});
await client.chat.completions.create({
model: "anthropic/claude-sonnet-5.5",
messages: [{ role: "user", content: "Hello" }],
user: "user_123",
// @ts-expect-error OpenRouter extensions
models: ["anthropic/claude-sonnet-5.5", "openai/gpt-5.6-terra"],
provider: { order: ["anthropic", "google-vertex"] },
});بعد · INFRO
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.infro.io/v1",
apiKey: process.env.INFRO_API_KEY,
});
await client.chat.completions.create({
model: "anthropic/claude-sonnet-5.5",
messages: [{ role: "user", content: "Hello" }],
// @ts-expect-error INFRO extensions
fallbacks: ["openai/gpt-5.6-terra"],
routing: { providers: { allow: ["anthropic", "google-vertex"] } },
metadata: { user_id: "user_123" },
});الترتيب يُحدَّد في المسار
يقصر routing.providers المزوّدين الذين يجوز لهم خدمة طلب من بين مزوّديك؛ ولا يحدد الترتيب. لترتيب ثابت، أنشئ مسارًا (مثل chat-default) بأهدافك بالتسلسل وأرسله كـ model.
إبقاء OpenRouter خلف INFRO
اربط مفتاح OpenRouter كمزوّد في لوحة التحكم. عندها يمكن أن تتحول الطلبات عند الأعطال من حساباتك المباشرة إلى OpenRouter، ويمكن تضمينه أو استبعاده لكل طلب عبر routing.providers بإضافة openrouter إلى allow أو deny.
مُشغّلات البديل الاحتياطي
تُجرَّب fallbacks بعد فشل كل اتصال خاص بـ model. أما خطأ المزوّد بعد أن تبدأ الاستجابة بالبث فيُعاد كما هو ولا يُوجَّه من جديد.
كائنات OpenRouter مقابل كائنات INFRO، استنادًا إلى توثيق OpenRouter العام كما اطّلعنا عليه في 19 أكتوبر 2026، ومطابقةً مع ما تدعمه البوابة فعلًا. صفّان يقولان إن INFRO لا يملك شيئًا.
| OpenRouter | ما تفعله هناك | في INFRO |
|---|---|---|
| مفتاح OpenRouter ووحدات الاستخدام المدفوعة سلفًامختلف | مفتاح واحد لكل النماذج، يُدفع من مبلغ تشحنه مقدمًا. | مفتاح بوابة واحد فوق حسابات المزوّدين التي تربطها؛ ويحاسبك كل مزوّد مباشرةً. تتقاضى INFRO اشتراكًا، ولا تضيف أي نسبة (0%) إلى إنفاقك على النماذج. |
| BYOKمختلف | مفاتيح مزوّديك، تُجرَّب أولًا؛ وبديل احتياطي على سعة مشتركة ما لم يُوقَف لكل مفتاح. | الوضع الوحيد. لا سعة مشتركة خلف البوابة: إذا فشلت كل الاتصالات، يفشل الطلب. |
| بدائل `models` الاحتياطيةالصيغة نفسها | قائمة نماذج مرتبة حسب الأولوية تُجرَّب عند حدوث خطأ. | fallbacks، حتى 5 معرّفات نماذج تُجرَّب بعد فشل كل اتصال خاص بـ model. |
| `provider` order وonly وignoreمختلف | اختيار المزوّدين الأصليين وترتيبهم واستبعادهم لكل طلب. | routing.providers بـ allow أو deny لكل طلب؛ ويُضبط الترتيب على مسار، مع قواعد فشل لكل نوع (429 و5xx وانتهاء المهلة). |
| `provider.sort` و`max_price` وتفضيلات الإنتاجية وزمن الاستجابةلا شيء | اختيار مضيف لكل طلب حسب السعر أو الإنتاجية أو زمن الاستجابة. | لا شيء. لا تختار INFRO بين المضيفات حسب السعر أو زمن الاستجابة؛ ترتيب المسار أو أوزانه هي التي تقرر. |
| الموجّه التلقائيمختلف | openrouter/auto يختار نموذجًا لكل مطالبة. | يمكن للمسار تصنيف كل مطالبة بنموذج اتخاذ قرار على اتصالك الخاص وإرسال كل فئة إلى أهدافها. |
| الإعدادات المسبقةمختلف | إعدادات مسمّاة من جهة الخادم: النموذج، والتوجيه، ومطالبة النظام، والمعاملات. | يحدد المسار النموذج والأهداف، وتبقى مطالبات النظام والمعاملات في كودك. |
| تخزين الاستجابات مؤقتًاالصيغة نفسها | ذاكرة مؤقتة بالتطابق التام لكل مفتاح عبر ترويسات X-OpenRouter-Cache. | ذاكرة مؤقتة اختيارية بالتطابق التام لـ chat completions، مع مساحة أسماء وTTL. |
| ضوابط الحماية (الميزانيات، وقوائم السماح)الصيغة نفسها | سقوف إنفاق وقوائم سماح للنماذج أو المزوّدين لكل مشروع أو عضو أو مفتاح. | ميزانيات على مستوى المؤسسة والمشروع والعضو والمفتاح والعميل النهائي ترفض بـ 402 قبل الاستدعاء؛ وقوائم سماح وحظر لكل مؤسسة ومشروع ومفتاح. |
| بثمختلف | تتبّعات تُصدَّر إلى Langfuse أو Datadog أو مجمّع OTel أو S3 أو Webhook. | Spans إلى مجمّع OpenTelemetry الخاص بك، وتصدير الطلبات وسجل الطلبات. بلا وجهات مدمجة لمورّدين محددين. |
| التكلفة لكل طلبمختلف | التكلفة لكل عملية توليد بالسعر الذي تعلنه OpenRouter. | تقدير لفاتورة مزوّدك على كل استجابة (usage.cost وusage.price_source): سعرك المتفاوض عليه حيث أدخلته، وإلا فالسعر المعلن للمورّد، وunpriced بدلًا من الصفر حين لا يُعرف أيٌّ منهما. |
| توجيه داخل منطقة الاتحاد الأوروبي، ونقاط نهاية ZDRلا شيء | عنوان URL أساسي في الاتحاد الأوروبي ومرشّح لنقاط النهاية بلا احتفاظ بالبيانات. | غير متاح. تثبيت المنطقة على خارطة الطريق؛ والاحتفاظ بالبيانات لدى المزوّد يحكمه عقدك معه. |
هذه قراءتنا للوثائق التي نشرتها OpenRouter، لا نتيجة تجربة أو اختبار أداء. إن أخطأنا في فهم شيء، أخبرنا وسنصحّح الصف.
ما لا يفعله INFRO
- منحك وصولًا إلى مورّد ليس لديك حساب لديه، إلا عبر اتصال بحساب لدى مجمِّع تملكه (ومنها OpenRouter).
- اختيار مضيف لكل طلب حسب السعر أو الإنتاجية أو زمن الاستجابة.
- تخزين مطالبات النظام والمعاملات على جانب الخادم (إعدادات مسبقة).
- حصر حركة الطلبات في الاتحاد الأوروبي، أما ضمان موقع البيانات فعلى خارطة الطريق.
- تقديم التضمينات لدى مزوّدين غير OpenAI وAzure OpenAI وMistral أو نقطة نهاية متوافقة مع OpenAI.
ما الذي لا ينتقل
- سجل نشاط OpenRouter وسجلات التوليد لديك. لا توجد أداة استيراد.
- الـ credits. تبقى في حسابك لدى OpenRouter، ولا تُستهلك إلا إذا أبقيت OpenRouter كاتصال.
- الإعدادات المسبقة ومساحات العمل وضوابط الحماية. أعد إنشاءها كمسارات ومشاريع وميزانيات وقوائم سماح.
الأسئلة
- هل يمكنني الاحتفاظ بـ OpenRouter وإضافة INFRO؟
- نعم. OpenRouter نوع مزوّد في INFRO: اربط مفتاح OpenRouter لديك فيخدم الطلبات إلى جانب حساباتك المباشرة، مع تحويل تلقائي عند الأعطال بينها.
- هل تبيع INFRO الـ credits أو تعيد بيع الوصول إلى النماذج؟
- لا. تشغّل INFRO كل طلب على حساب مزوّد تملكه، ويُصدر مزوّدوك فواتيرهم لك مباشرةً، وتتقاضى INFRO اشتراكًا بهامش 0% على الإنفاق على النماذج.
- ما الذي يحل محل الحقلين `models` و`provider`؟
- تحل
fallbacksمحلmodels؛ ويحلrouting.providersبـ allow وdeny محلprovider.onlyوprovider.ignore؛ ويحدد مسار مسمّى الترتيب. ليس للترتيب بحسب السعر وزمن الاستجابة ما يقابله.
انتقل معنا، أو بمفردك
يطابق برنامج الترحيل إعداداتك في OpenRouter مع اتصالات INFRO ومساراته وميزانياته خلال مكالمة، وينقل معك الخدمة الأولى. ويستمر مزوّدوك في محاسبتك مباشرة؛ وINFRO اشتراك يضيف 0% على الإنفاق على النماذج.
المصادر
كل معلومة عن OpenRouter في هذه الصفحة مصدرها أحد هذه المراجع، كما اطلعنا عليها في 19 أكتوبر 2026. لم نستنتج شيئًا من تجربة أو اختبار أداء أو محادثة.
- Stripe newsroom — Stripe agrees to acquire OpenRouterاطّلعنا عليه في 19 أكتوبر 2026
- OpenRouter — OpenRouter is joining Stripeاطّلعنا عليه في 19 أكتوبر 2026
- OpenRouter — announcementsاطّلعنا عليه في 19 أكتوبر 2026
- OpenRouter docs — Quickstartاطّلعنا عليه في 19 أكتوبر 2026
- OpenRouter docs — BYOKاطّلعنا عليه في 19 أكتوبر 2026
- OpenRouter docs — Provider routingاطّلعنا عليه في 19 أكتوبر 2026
- OpenRouter docs — Model fallbacksاطّلعنا عليه في 19 أكتوبر 2026
- OpenRouter docs — Auto routerاطّلعنا عليه في 19 أكتوبر 2026
- OpenRouter docs — Presetsاطّلعنا عليه في 19 أكتوبر 2026
- OpenRouter docs — Response cachingاطّلعنا عليه في 19 أكتوبر 2026
- OpenRouter docs — Guardrailsاطّلعنا عليه في 19 أكتوبر 2026
- OpenRouter docs — Broadcastاطّلعنا عليه في 19 أكتوبر 2026
- OpenRouter docs — Zero data retentionاطّلعنا عليه في 19 أكتوبر 2026