# الأسئلة الشائعة

> حلول لأخطاء ومشكلات إعداد LMU AI API الشائعة — 401 / 403 / 429 / 500، فواتير التوكن، تبديل الموديلات، وحل مشكلات Claude Code / Codex CLI.

URL: https://docs.lmuai.com/ar/docs/guide/faq



## المشكلة 1: انقطاع البث / انتهاء المهلة [#issue-1]

**رسالة الخطأ:**

```
stream disconnected before completion: error sending request for url
(https://api.lmuai.com/responses)
```

**السبب:** انقطاع بث نموذجي، وغالباً ينشأ عن:

* شبكة محلية غير مستقرة (تنقّل متكرر بين Wi-Fi وبيانات الهاتف، إشارة ضعيفة، فقدان حزم)
* **تشغيل VPN / بروكسي / بروكسي النظام**: يبدّل البروكسي عنوان IP الخارج فيقطع الاتصال

**الحل:**

1. **أوقف أي VPN / بروكسي / بروكسي النظام وأعد المحاولة** — LMU AI اتصال محلي مباشر ولا يحتاج VPN
2. تأكد من استقرار شبكتك المحلية؛ وانتقل إلى شبكة أكثر موثوقية إن لزم الأمر

<Callout type="info" title="لا حاجة إلى VPN — الوصول المباشر داخل الصين هو الأسرع">
  بوابة LMU AI مستضافة **داخل البرّ الرئيسي للصين**، لذا يمكن استدعاؤها مباشرة من شبكة محلية **دون أي VPN أو بروكسي أو حلول بديلة**. الاتصال المباشر يمنح أسرع النتائج وأكثرها استقراراً؛ وبالمقابل، فإن VPN أو بروكسي يبدّل عنوان IP الخارج يتسبب غالباً في انقطاع البث.
</Callout>

***

## المشكلة 2: خطأ إعادة المحاولة 429 [#issue-2]

**رسالة الخطأ:**

```
exceeded retry limit, last status: 429 Too Many Requests
```

**السبب:** استُهلكت حصتك اليومية.

**الحل:**

1. افتح **My Subscription** وتأكد مما إذا كانت الحصة اليومية قد استُنفدت
2. إن احتجت المزيد، اشترِ خطة من **فئة مختلفة**، ثم انتقل إلى مجموعة الخطة الجديدة ضمن **API Keys** في لوحة التحكم

<Callout type="warn" title="التجديد مقابل إضافة حصة">
  * **لا تشترِ الخطة نفسها** — الخطة نفسها تُجدَّد ولا تضيف حصة
  * لإضافة حصة، اشترِ خطة مختلفة (مثل الانتقال من تصريح يومي إلى تصريح شهري)
</Callout>

***

## المشكلة 3: 401 Incorrect API key [#issue-3]

**رسالة الخطأ:**

```
unexpected status 401 Unauthorized: Incorrect API key provided
```

**السبب:** ما زال الطلب يذهب إلى نقطة نهاية OpenAI الرسمية بدلاً من وسيطنا.

**الحل:**

1. تأكد من أن `config.toml` أُنشئ أو استُبدل بشكل صحيح وفق الدليل
2. أعد تشغيل بيئة التطوير (VS Code / Cursor، إلخ) لإعادة تحميل ملفات الإعداد
3. إن كنت قد سجّلت الدخول سابقاً بحساب رسمي أو حساب مزوّد آخر، فاخرج منه أولاً ثم أعد الإعداد

<Callout type="info" title="ما تفعله عند مواجهة خطأ">
  خُذ لقطة شاشة للخطأ وترجمها — فهذا غالباً يحدد السبب بسرعة.
</Callout>

***

## المشكلة 4: السكربتات معطّلة (Windows) [#issue-4]

**رسالة الخطأ:**

```
codex: cannot be loaded because running scripts is disabled on this system.
```

**الحل:** نفّذ ما يلي في الطرفية، ثم افتح طرفية جديدة:

```powershell
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
```

***

## المشكلة 5: لم يُعثر على Node.js (Windows) [#issue-5]

**رسالة الخطأ:** `CODEX` is not recognized as a cmdlet، أو ما يشبهها

**السبب:** Node.js غير مثبّت أو أن مسار PATH الخاص به معطوب.

**الحل:** أعد تثبيت Node.js 20+، ثم افتح طرفية جديدة.

***

## المشكلة 6: 503 No available accounts (متغيرات البيئة تتجاوز المفتاح) [#issue-6]

**رسالة الخطأ:**

```
Error code: 503 - {'error': {'message': 'No available accounts: no available accounts', 'type': 'api_error'}}
```

**السبب:** يضبط ملف `~/.zshrc` (أو `~/.bashrc`) القيم `ANTHROPIC_AUTH_TOKEN` / `ANTHROPIC_BASE_URL` / `ANTHROPIC_MODEL`. وبمجرد بدء الشِل، تصبح هذه المتغيرات سارية عالمياً وتتجاوز مفتاح API المضبوط في بيئة التطوير (Cursor، VS Code، إلخ)، فيستخدم الطلب المفتاح الخاطئ.

**الحل (اختر واحداً):**

**الخيار أ: احذف المتغيرات من `.zshrc`**

افتح `~/.zshrc` واحذف هذه الأسطر:

```bash
export ANTHROPIC_AUTH_TOKEN="..."
export ANTHROPIC_BASE_URL="..."
export ANTHROPIC_MODEL="..."
```

ثم نفّذ `source ~/.zshrc` لتطبيق التغيير، وأعد تشغيل بيئة التطوير.

**الخيار ب: انقل المتغيرات إلى ملف منفصل يُحمّل فقط من أجل Claude Code CLI**

1. أنشئ `~/.claude_env` بالأسطر الثلاثة:

```bash
export ANTHROPIC_AUTH_TOKEN="sk-your-lmu-ai-api-key"
export ANTHROPIC_BASE_URL="https://api.lmuai.com"
export ANTHROPIC_MODEL="the-model-you-use"
```

2. احذف تلك الأسطر الثلاثة من `~/.zshrc`.

3. حمّلها يدوياً عند تشغيل Claude Code:

```bash
source ~/.claude_env && claude
```

بهذه الطريقة تستخدم بيئة التطوير المفتاح من ملف إعدادها، ويستخدم Claude Code CLI متغيرات البيئة، دون أن يتعارض أحدهما مع الآخر.

***

## المشكلة 7: 400 Invalid signature in thinking block (تبديل الموديلات بين المجموعات) [#issue-7]

**رسالة الخطأ:**

```
upstream error: 400 messages.<index>.content.<index>:
Invalid `signature` in `thinking` block
```

**السبب:** عندما يُنشئ Extended Thinking في Claude بلوك `thinking`، فإنه يرفق به **توقيعاً مشفّراً** مرتبطاً ارتباطاً وثيقاً بـ **حساب المنبع المحدد** الذي أنتجه. وإذا **بدّلت الموديلات بين مجموعات مختلفة** داخل محادثة واحدة (مثلاً من `claude-sonnet-5` في مجموعة "Claude-Pro direct" إلى `claude-fable-5` في مجموعة "Claude-MAX high-multiplier")، فإن العميل يرسل السجل السابق (بما فيه بلوك thinking الموقّع) إلى حساب منبع المجموعة الجديدة. والمجموعات المختلفة تستخدم **منابع مختلفة** ولا يمكنها التحقق من توقيع صادر من غيرها، فتعيد 400.

**المسببات الشائعة:**

* العميل يدعم تبديل الموديلات أثناء المحادثة ويحمل السجل السابق كاملاً
* المجموعتان قبل التبديل وبعده تأتيان من **حسابي منبع مختلفين** (مثل "مجموعة مباشرة" ↔ "مجموعة وسيط / MAX عالية المضاعف")

**الحل (أي واحد منها):**

1. **ابدأ محادثة جديدة عند تبديل المجموعات** — عدم حمل أي سجل قديم هو أبسط الحلول وأكثرها موثوقية.
2. **التزم بمجموعة واحدة لكل محادثة** — وإن احتجت تعاوناً بين عدة موديلات، فبدّل داخل المجموعة نفسها (المنبع نفسه).
3. **أزل بلوكات thinking من السجل** — إن كان العميل يدعم تعديل السجل، فاحذف بلوكات `thinking` قبل تبديل المجموعات.

<Callout type="info" title="لماذا لا تفيد إعادة المحاولة؟">
  هذا **خطأ عميل 4xx غير قابل للتجاوز وسببه توقيع غير صالح**. وبمجرد أن تكتشفه البوابة، تمرّر الخطأ 400 مباشرة إلى العميل ولا تعيد المحاولة تلقائياً على حساب آخر — لأن أي منبع غير مطابق سيفشل بالطريقة نفسها.
</Callout>

***

## المشكلة 8: 400 Unknown parameter: 'tools\[0].n' (إرسال tools إلى نقطة نهاية صور) [#issue-8]

**رسالة الخطأ:**

```
400 - {'error': {'code': 'unknown_parameter', 'message': "Unknown parameter: 'tools[0].n'.", 'param': 'tools[0].n', 'type': 'invalid_request_error'}}
```

**نقاط النهاية المتأثرة:** `/v1/images/generations`، `/v1/images/edits` (توليد / تحرير الصور).

**السبب:** أدرج العميل مصفوفة `tools` في جسم طلب الصورة، مع حقل `n` داخل `tools[0]`. ونقاط نهاية الصور في OpenAI &#x2A;*لا تقبل `tools`** (فاستدعاءات الأدوات تنتمي إلى نقاط نهاية Chat / Responses؛ ولا يوجد مثل هذا المفهوم في نقاط نهاية الصور)، لذا يرفضها المنبع بالخطأ 400.

وينشأ هذا عادةً عن عميل / غلاف SDK فيه خلل يضع "عدد الصور `n`" في المكان الخطأ — متداخلاً في `tools[0].n`، أو منسوخاً من قالب طلب Chat.

**الحل:**

1. **احذف حقل `tools` من جسم الطلب** — فعمليات `generations` / `edits` للصور لا تدعم استدعاءات الأدوات؛ أسقط الحقل بالكامل.
2. **لتوليد عدة صور، ضع العدد في `n` على المستوى الأعلى** — فقط `/v1/images/generations` يدعم `n` (عدة صور في الاستدعاء الواحد)؛ أما `/v1/images/edits` فلا يدعمه، لذا أسقط `n` هناك.
3. **تحقق من إصدار SDK العميل** — إن كان هناك غلاف يبني المعاملات تلقائياً، فحدّثه أو استبدله حتى لا يطبّق قالب Chat على نقاط نهاية الصور.

<Callout type="info" title="لماذا لا يفيد تبديل الحسابات / إعادة المحاولة؟">
  هذا خطأ عميل 4xx سببه **جسم طلب غير صالح**، ولا علاقة له بحساب المنبع أو المجموعة — فالبوابة تمرّر الطلب كما هو، وأي حساب سيعيد الخطأ 400 نفسه. لا بدّ من تصحيح معاملات الطلب التي يرسلها العميل.
</Callout>

***

## المشكلة 9: هل أحتاج إلى VPN؟ [#issue-9]

**لا.** بوابة LMU AI مستضافة **داخل البرّ الرئيسي للصين**، ويمكن استدعاء `api.lmuai.com` مباشرة من شبكة محلية دون أي VPN أو بروكسي أو حلول بديلة.

وبالمقابل، فإن VPN أو بروكسي يبدّل عنوان IP الخارج يتسبب غالباً في انقطاع البث (انظر [المشكلة 1](#issue-1)). والاتصال المحلي المباشر يمنح أسرع النتائج وأكثرها استقراراً.

***

## المشكلة 10: 401 API\_KEY\_REQUIRED (لا يرسل Codex أي مفتاح) [#issue-10]

**رسالة الخطأ:**

```
unexpected status 401 Unauthorized: {"code":"API_KEY_REQUIRED","message":"API key is required in Authorization header (Bearer scheme), x-api-key header, or x-goog-api-key header"}, url: https://api.lmuai.com/responses, request id: ...
```

**السبب:** غيّرت إصدارات Codex الأحدث طريقة عمل المصادقة — فقد تُخزَّن بيانات الاعتماد الآن في حلقة مفاتيح النظام بدلاً من قراءتها من `auth.json`. ومع إعداد الدليل القديم (`auth.json` + `requires_openai_auth = true`)، لا يحمل الطلب الذي يرسله Codex **أي مفتاح API إطلاقاً** (لا يُرسل أي من `Authorization` أو `x-api-key` أو `x-goog-api-key`)، فلا تجد البوابة أي مفتاح وتعيد 401 `API_KEY_REQUIRED`.

لاحظ أن هذا يختلف عن `Incorrect API key provided` في [المشكلة 3](#issue-3): فتلك ترسل مفتاحاً خاطئاً (عادةً لأن الطلب ذهب إلى نقطة نهاية OpenAI الرسمية بدلاً من وسيط LMU AI)، أما هذه فلا ترسل **أي مفتاح إطلاقاً**.

**الحل:** ضع المفتاح مباشرة في ترويسة الطلب. افتح `~/.codex/config.toml` (وعلى Windows، `C:\users\your-username\.codex\config.toml`)، وابحث عن قسم مزوّد الموديل `[model_providers.<ID>]` (وعادةً `[model_providers.codex]` إن اتبعت دليل هذا الموقع)، واحذف منه سطر `requires_openai_auth = true`، وأضف جدول `http_headers` الفرعي المطابق في **آخر الملف تماماً**:

```toml
[model_providers.codex]
name = "codex"
base_url = "https://api.lmuai.com"
wire_api = "responses"

[model_providers.codex.http_headers]
Authorization = "Bearer your sk- key generated in the console"
```

احفظ، وأعد فتح الطرفية، وأعد تشغيل Codex.

<Callout type="warn" title="مواضع يسهل الخطأ فيها">
  * يجب أن تتطابق كلمة `codex` في اسم الجدول الفرعي مع المعرّف في `[model_providers.codex]` أعلاه (ففي دليل إضافة VS Code مثلاً يكون `[model_providers.OpenAI.http_headers]`)
  * اترك **مسافة واحدة** بين `Bearer` والمفتاح
  * يجب أن يكون جدول `http_headers` الفرعي في آخر الملف تماماً — فأي إعدادات تُكتب بعده تُعامَل كترويسات طلب
</Callout>

حُدِّثت كل أدلة Codex على هذا الموقع ([Mac](/ar/docs/tools/codex-cli-mac) / [Windows](/ar/docs/tools/codex-cli-windows) / [Server](/ar/docs/tools/codex-cli-server) / [Codex App](/ar/docs/tools/codex-app) / [إضافة VS Code](/ar/docs/tools/vscode-plugin)) إلى الإعداد أعلاه.

***

## ما زلت متعطلاً؟ [#ما-زلت-متعطلاً]

إن كانت بيئة خاصة ما تزال تمنعك أثناء التثبيت أو الإعداد، تواصل مع الدعم:

* أضف الدعم على WeChat
* تواصل مع الدعم على Xianyu (闲鱼)

> ساعات المساعدة عن بُعد: **بعد الساعة 2 مساءً** (تُخصَّص الصباحات لحل إعدادات البيئة المعقدة عن بُعد).
>
> إن احتجت مساعدة عن بُعد، فحمّل **NetEase UU Remote** أولاً وأرسله إلى الدعم؛ الإرشاد الفني والمساعدة عن بُعد يجريان بعد الظهر من الساعة 2 مساءً.
