مزوّدو نماذج اللغة
تخاطب كاظمه نماذج اللغة عبر HTTP عادي (دون ارتهان لحزمة SDK). معظم المزوّدين
يتحدثون صيغة OpenAI Chat Completions ويعملون عبر LLMProvider العام مع
Authorization: Bearer. وبعض المزوّدين يحتاجون صنفًا أصليًا مخصصًا لأن
مصادقتهم أو مخطط طلباتهم يختلف — نذكرهم أدناه، ويوجّهها model_registry.py.
اضبط المزوّدين في واجهة الويب ← الإعدادات ← المزوّدون، أو في kazma.yaml،
أو عبر متغيرات البيئة. انظر الإعدادات ← الإعدادات المسبقة
للمزوّدين.
الصوت ليس دردشة. يُستخدم مفتاح OpenAI/Groq/Cohere نفسه لتحويل الكلام
إلى نص بـ Whisper، لكن نماذج Whisper مخفية من قوائم اختيار الدردشة ومن اختبار
المزوّد (/chat/completions). اختر STT/TTS من الإعدادات ←
الصوت.
طبقتا تكامل
Section titled “طبقتا تكامل”| الطبقة | كيف تعمل | المزوّدون |
|---|---|---|
متوافق مع OpenAI (LLMProvider العام) | عميل httpx واحد، ومصادقة Bearer، و/v1/chat/completions | OpenAI، وDeepSeek، وGroq، وxAI، وOpenRouter، وMistral، وTogether، وCohere، وFireworks، وPerplexity، وAI21، وNVIDIA NIM، وOllama، وLM Studio، ومخصص |
| صنف أصلي (مصادقة/مخطط مختلف) | صنف مزوّد مخصص + فرع في model_registry.get_client() | Anthropic، وAzure، وBedrock، وGoogle Gemini |
يرسل
LLMProviderالعام دائمًاAuthorization: Bearerإلى/chat/completions. فهو لا يستطيع الوصول إلى Anthropic الأصلي (/messages)، ولا Azure (ترويسةapi-key+api-version)، ولا Bedrock (SigV4). تلك تحتاج أصنافها الأصلية — وإضافة واحد منها تعني صنفًا جديدًا + فرعًا في مواضع بناء العميل الثلاثة (get_clientوget_modelوget_client_by_provider)، لا مجرد مدخل إعداد مسبق.
وسيط LiteLLM الاختياري
Section titled “وسيط LiteLLM الاختياري”اضبط KAZMA_LITELLM_URL (أو llm.gateway.url) لإرسال النداءات المتوافقة مع
OpenAI عبر وسيط LiteLLM (الإنفاق والمفاتيح والبدائل تعيش في الوسيط).
وهذا ليس حصريًا: يبقى Anthropic / Azure / Bedrock / Gemini أصليين.
ويبقى Ollama / LM Studio على الحلقة المحلية مباشرين ما لم يُضبط KAZMA_LITELLM_LOCAL=1.
ويعطّل KAZMA_LITELLM=0 الوسيط. ولا تستورد كاظمه litellm.
المزوّدون المتوافقون مع OpenAI
Section titled “المزوّدون المتوافقون مع OpenAI”كلها تعمل بمتغير بيئة واحد لمفتاح API (أو بضبطه في الواجهة). لا تغيير في الكود — اضبط عنوان URL الأساسي + المفتاح فحسب.
| المزوّد | base_url | متغير البيئة |
|---|---|---|
| OpenAI | https://api.openai.com/v1 | OPENAI_API_KEY |
| DeepSeek | https://api.deepseek.com/v1 | DEEPSEEK_API_KEY |
| Groq | https://api.groq.com/openai/v1 | GROQ_API_KEY |
| xAI / Grok | https://api.x.ai/v1 | XAI_API_KEY |
| OpenRouter | https://openrouter.ai/api/v1 | OPENROUTER_API_KEY |
| Mistral | https://api.mistral.ai/v1 | MISTRAL_API_KEY |
| Together AI | https://api.together.xyz/v1 | TOGETHER_API_KEY |
| Cohere | https://api.cohere.ai/v1 | COHERE_API_KEY |
| Fireworks AI | https://api.fireworks.ai/inference/v1 | FIREWORKS_API_KEY |
| Perplexity | https://api.perplexity.ai | PERPLEXITY_API_KEY |
| AI21 Labs | https://api.ai21.com/studio/v1 | AI21_API_KEY |
| NVIDIA NIM | https://integrate.api.nvidia.com/v1 | NVIDIA_API_KEY |
| Ollama (محلي) | http://127.0.0.1:11434/v1 | (لا شيء) |
| LM Studio (محلي) | http://localhost:1234/v1 | (لا شيء) |
| مخصص | (أي) | (أي) |
المزوّدون المحليون (Ollama/LM Studio) لا يحتاجون مفتاحًا حقيقيًا — يُحقن مفتاح صوري تلقائيًا.
يستخدم اكتشاف Ollama وفحص صحته عنوانَ URL الأساسي المضبوط للمزوّد (والاحتياطي
http://127.0.0.1:11434)، فيستطيع خادم يعمل في WSL/حاوية الوصول إلى خادم
Ollama على مضيف آخر بتوجيه العنوان الأساسي للمزوّد إليه (مثل عنوان IP لبوابة
WSL حين يكون Ollama على Windows — فـ 127.0.0.1 داخل WSL هو آلة WSL الافتراضية
لا Windows). ويُبلغ زر اختبار الاتصال للمزوّد بـ
Cannot connect to <base_url> (connection failed) حين تتعذر نقطة النهاية.
المزوّدون الأصليون
Section titled “المزوّدون الأصليون”Anthropic (Claude) — AnthropicProvider
Section titled “Anthropic (Claude) — AnthropicProvider”يخاطب نقطة النهاية الأصلية /v1/messages بترويستي x-api-key +
anthropic-version: 2023-06-01. ويترجم الرسائل بصيغة OpenAI إلى مخطط Anthropic
(النظام في المستوى الأعلى، والمحتوى كتل منمذجة، وكتل
tool_use/tool_result لنداءات الأدوات).
export ANTHROPIC_API_KEY=sk-ant-...ثم اختر نموذج Claude في الواجهة أو في kazma.yaml. يوجّه السجل تلقائيًا إلى
AnthropicProvider حين يكون المزوّد النشط anthropic. لا حاجة إلى وسيط.
Azure OpenAI — AzureProvider
Section titled “Azure OpenAI — AzureProvider”حمولة متوافقة مع OpenAI لكن بتوجيه خاص بـ Azure: ترويسة api-key
(لا Bearer)، وعنوان URL خاص بالنشر
(.../openai/deployments/<deployment>/chat/completions)، ومعامل استعلام
api-version إلزامي.
export AZURE_OPENAI_ENDPOINT=https://<resource>.openai.azure.comexport AZURE_OPENAI_API_KEY=<key>export AZURE_OPENAI_DEPLOYMENT=<deployment-name>export AZURE_OPENAI_API_VERSION=2024-10-21AWS Bedrock — BedrockProvider
Section titled “AWS Bedrock — BedrockProvider”يستخدم Converse API لواجهة موحّدة عبر النماذج المستضافة على Bedrock
(Claude وLlama وMistral، …). تُوقَّع الطلبات بـ SigV4 عبر سلسلة اعتماد boto3
القياسية (متغيرات البيئة، أو ملف الاعتمادات المشترك، أو دور IAM).
ويتطلب pip install boto3 — ويتراجع برسالة واضحة حين يغيب.
export AWS_REGION=us-east-1export AWS_ACCESS_KEY_ID=...export AWS_SECRET_ACCESS_KEY=...# optional: AWS_SESSION_TOKEN for temporary credentialsأمثلة لمعرّفات النماذج: anthropic.claude-3-5-sonnet-20241022-v2:0،
meta.llama3-1-70b-instruct-v1:0.
Google Gemini — GeminiProvider
Section titled “Google Gemini — GeminiProvider”Vertex AI عبر بيانات الاعتماد الافتراضية للتطبيق (ADC). يُحسب base_url لكل
مشروع/موقع. قائمة النماذج مثبّتة في الكود: gemini-2.5-flash،
gemini-2.5-pro، gemini-2.0-flash، gemini-2.0-flash-lite. انظر
البدء السريع لإعداد ADC.
تبديل المزوّدين/النماذج أثناء التشغيل
Section titled “تبديل المزوّدين/النماذج أثناء التشغيل”يصحّح السجل تلقائيًا عدم التطابق بين المزوّد والنموذج: استدعاء نموذج يملكه
مزوّد غير النشط يبدّل الاثنين. استخدم الإعدادات ←
المزوّدون في الواجهة، أو /config model <name> (في الدردشة)، أو محدّد النموذج
في الشريط الجانبي. انظر AGENTS.md §1 لثوابت سجل
النماذج.

