# CodeBuddy

> اربط CodeBuddy بواجهة LMU AI عبر models.json — أدخل مسار /chat/completions الكامل لاستخدام Claude وGPT والنماذج الصينية.

URL: https://docs.lmuai.com/ar/docs/tools/codebuddy



CodeBuddy (مساعد البرمجة من Tencent Cloud) هو محرر أكواد بالذكاء الاصطناعي يدعم قائمة نماذج مخصصة عبر ملف تهيئة `models.json`. تتناول هذه الصفحة ربطه بـ LMU AI.

***

## التثبيت وتسجيل الدخول [#التثبيت-وتسجيل-الدخول]

1. نزّل وثبّت الإصدار المناسب لنظام تشغيلك من الموقع الرسمي: [https://www.codebuddy.cn](https://www.codebuddy.cn/home/)
2. سجّل الدخول إلى حساب CodeBuddy الخاص بك عند المطالبة

***

## تهيئة LMU AI [#تهيئة-lmu-ai]

### الخطوة 1: اختر موقع ملف التهيئة [#الخطوة-1-اختر-موقع-ملف-التهيئة]

| المستوى                      | المسار                                  | ملاحظات                                         |
| ---------------------------- | --------------------------------------- | ----------------------------------------------- |
| **مستوى المستخدم** (موصى به) | `~/.codebuddy/models.json`              | تهيئة عالمية، تُطبَّق على جميع المشاريع         |
| **مستوى المشروع**            | `<project-root>/.codebuddy/models.json` | خاصة بالمشروع، ولها الأولوية على مستوى المستخدم |

أنشئ الملف إن لم يكن موجودًا. ترتيب الدمج من الأعلى إلى الأدنى: مستوى المشروع ← مستوى المستخدم ← الإعدادات الافتراضية المدمجة.

### الخطوة 2: اكتب التهيئة [#الخطوة-2-اكتب-التهيئة]

باستخدام ملف مستوى المستخدم `~/.codebuddy/models.json` كمثال:

```json
{
  "models": [
    {
      "id": "claude-opus-5",
      "name": "Claude Opus 5 (LMU AI)",
      "vendor": "LMU AI",
      "apiKey": "sk-your-lmu-ai-api-key",
      "url": "https://api.lmuai.com/v1/chat/completions",
      "maxInputTokens": 200000,
      "maxOutputTokens": 32000,
      "supportsToolCall": true,
      "supportsImages": true,
      "supportsReasoning": true
    },
    {
      "id": "gpt-5.6-sol",
      "name": "GPT-5.6 Sol (LMU AI)",
      "vendor": "LMU AI",
      "apiKey": "sk-your-lmu-ai-api-key",
      "url": "https://api.lmuai.com/v1/chat/completions",
      "maxInputTokens": 400000,
      "maxOutputTokens": 32000,
      "supportsToolCall": true
    }
  ]
}
```

<Callout type="warn" title="يجب أن يكون url المسار الكامل، وليس عنوانًا أساسيًّا">
  يأخذ الحقل `url` **مسار النقطة الطرفية الكامل**، وينتهي بـ `/chat/completions`:

  * ✅ صحيح: `https://api.lmuai.com/v1/chat/completions`
  * ❌ خاطئ: `https://api.lmuai.com/v1`
  * ❌ خاطئ: `https://api.lmuai.com`

  هذا هو السبب الأكثر شيوعًا لفشل مثال بسيط منسوخ ملصوق — إذ يعامله كثير من الدروس كعنوان أساسي، فلا يستطيع CodeBuddy عندئذٍ الوصول إلى النقطة الطرفية.
</Callout>

<Callout type="info" title="يدعم CodeBuddy تنسيق OpenAI فقط">
  تنص الوثائق الرسمية على أنه لا يجري دعم سوى واجهات برمجة التطبيقات **بتنسيق OpenAI** في الوقت الحالي، لذا اتصل بـ LMU AI عبر البروتوكول المتوافق مع OpenAI.

  تعمل نماذج Claude بلا مشكلات أيضًا: أدخل معرّف نموذج مثل `claude-opus-5` مباشرةً، وتتولى واجهة LMU AI الخلفية التحويل بين OpenAI وAnthropic.
</Callout>

### الخطوة 3: اختر النموذج وابدأ الدردشة [#الخطوة-3-اختر-النموذج-وابدأ-الدردشة]

فقط احفظ الملف — يدعم models.json **إعادة التحميل الفوري** (مهلة ارتداد قدرها ثانية واحدة)، فلا حاجة إلى إعادة تشغيل CodeBuddy. اختر النموذج الذي هيّأته للتو من منتقي النماذج في مربع الدردشة وستكون جاهزًا.

النماذج المضافة عبر models.json تُوسَم تلقائيًّا بـ `custom`، ما يسهّل تمييزها في الواجهة.

***

## مرجع الحقول [#مرجع-الحقول]

الحقول المتاحة على كل مدخل في مصفوفة `models`:

| الحقل               | النوع   | مطلوب | ملاحظات                                                                                     |
| ------------------- | ------- | ----- | ------------------------------------------------------------------------------------------- |
| `id`                | string  | ✓     | معرّف نموذج فريد — استخدم معرّف نموذج LMU AI                                                |
| `name`              | string  | -     | الاسم المعروض في القائمة المنسدلة                                                           |
| `vendor`            | string  | -     | اسم المورّد؛ أي شيء تريده                                                                   |
| `apiKey`            | string  | -     | مفتاح `sk-` المُولّد في وحدة تحكم LMU AI (القيمة الفعلية للمفتاح، وليست اسم متغير بيئة)     |
| `url`               | string  | -     | مسار النقطة الطرفية الكامل؛ بالنسبة إلى LMU AI، `https://api.lmuai.com/v1/chat/completions` |
| `maxInputTokens`    | number  | -     | الحد الأقصى لعدد رموز الإدخال                                                               |
| `maxOutputTokens`   | number  | -     | الحد الأقصى لعدد رموز الإخراج                                                               |
| `supportsToolCall`  | boolean | -     | ما إذا كان استدعاء الأدوات مدعومًا                                                          |
| `supportsImages`    | boolean | -     | ما إذا كان إدخال الصور مدعومًا                                                              |
| `supportsReasoning` | boolean | -     | ما إذا كان وضع الاستدلال مدعومًا                                                            |

***

## عرض نماذج محددة فقط [#عرض-نماذج-محددة-فقط]

استخدم الحقل العلوي `availableModels` للتحكم في النماذج التي تظهر في القائمة المنسدلة:

```json
{
  "models": [
    {
      "id": "claude-opus-5",
      "name": "Claude Opus 5 (LMU AI)",
      "apiKey": "sk-your-lmu-ai-api-key",
      "url": "https://api.lmuai.com/v1/chat/completions",
      "supportsToolCall": true
    }
  ],
  "availableModels": ["claude-opus-5"]
}
```

* محذوف أو مصفوفة فارغة ← تُعرض جميع النماذج
* بمجرد ضبطه ← لا تظهر سوى معرّفات النماذج المدرجة (المدمجة والمخصصة على حدٍّ سواء)
* الحقل `availableModels` على مستوى المشروع **يتجاوز بالكامل** ذلك الموجود على مستوى المستخدم بدلًا من الدمج

<Callout type="warn" title="انتبه للفاصلة عند إزالة availableModels">
  وفقًا للوثائق الرسمية: بعد حذف الحقل `availableModels`، تذكّر إزالة الفاصلة `,` الزائدة الآن بعد مصفوفة `models` أعلاه، وإلا أصبح ملف JSON غير صالح وتوقفت التهيئة بأكملها عن العمل.
</Callout>

***

## معرّفات النماذج الشائعة [#معرّفات-النماذج-الشائعة]

| معرّف النموذج         | ملاحظات                         |
| --------------------- | ------------------------------- |
| `claude-opus-5`       | Claude Opus 5 (الرائد، موصى به) |
| `claude-sonnet-5`     | Claude Sonnet 5 (متوازن)        |
| `claude-haiku-4-5`    | Claude Haiku 4.5 (سريع)         |
| `gpt-5.6-sol`         | GPT-5.6 Sol                     |
| `glm-5.2`             | GLM-5.2                         |
| `qwen3.8-max-preview` | Qwen 3.8 Max Preview            |
| `deepseek-v4-pro`     | DeepSeek V4 Pro                 |
| `kimi-k3`             | Kimi K3                         |

لست متأكدًا من النموذج الذي تدخله؟ انتقل إلى [معرض النماذج](/ar/docs/guide/models) لرؤية كل معرّف نموذج متاح ونسخه بنقرة واحدة.

للحصول على نافذة سياق بحجم 1M، اكتب معرّف النموذج مع اللاحقة `[1M]` (مثال: `claude-opus-5[1M]`) وارفع `maxInputTokens` وفقًا لذلك.

***

## استكشاف الأخطاء وإصلاحها [#استكشاف-الأخطاء-وإصلاحها]

### التهيئة لا تعمل؟ [#التهيئة-لا-تعمل]

1. تحقق من أن **ملف JSON صالح** (الفاصلة المفقودة أو الزائدة هي السبب المعتاد)
2. تأكد من صحة **مسار الملف** (`~/.codebuddy/models.json`)
3. تأكد من أن كل مدخل يحتوي على الحقل المطلوب `id`
4. تأكد من أن الملف قد **حُفظ فعلًا على القرص** (إعادة التحميل الفوري لها مهلة ارتداد قدرها ثانية واحدة)

### النموذج مفقود من القائمة المنسدلة؟ [#النموذج-مفقود-من-القائمة-المنسدلة]

* إذا جرى ضبط `availableModels`، فتحقق من أن معرّف النموذج مدرج فيه
* تحقق من أن المدخل في مصفوفة `models` كامل

### تحصل على خطأ 401 / 404؟ [#تحصل-على-خطأ-401--404]

* **401**: هل `apiKey` هو مفتاح `sk-` المُولّد في وحدة تحكم LMU AI؟
* **404**: من شبه المؤكد أن `url` تنقصه `/chat/completions` — يجب أن يكون المسار الكامل

***

## ملاحظات [#ملاحظات]

* يجب أن يكون `url` هو **مسار النقطة الطرفية الكامل** `https://api.lmuai.com/v1/chat/completions`، وليس مجرد `/v1` أو النطاق المجرد
* يدعم CodeBuddy **تنسيق OpenAI فقط**؛ وتمر نماذج Claude عبر تحويل بروتوكول LMU AI
* يأخذ `apiKey` قيمة المفتاح الفعلية — أسماء متغيرات البيئة غير مدعومة
* تُعاد تهيئة الملف فوريًّا، لذا يكفي الحفظ؛ ولا حاجة إلى إعادة التشغيل
* كل مدخل نموذج يحتاج إلى `apiKey` و`url` خاصين به
* التهيئة على مستوى المشروع تتجاوز مستوى المستخدم بحسب `id`، بينما يُستبدل `availableModels` بالكامل بدلًا من الدمج
