تخطَّ إلى المحتوى
kazma.
البحث في كاظمه والتوثيق
EN

مزوّدو نماذج اللغة

تخاطب كاظمه نماذج اللغة عبر HTTP عادي (دون ارتهان لحزمة SDK). معظم المزوّدين يتحدثون صيغة OpenAI Chat Completions ويعملون عبر LLMProvider العام مع Authorization: Bearer. وبعض المزوّدين يحتاجون صنفًا أصليًا مخصصًا لأن مصادقتهم أو مخطط طلباتهم يختلف — نذكرهم أدناه، ويوجّهها model_registry.py.

اضبط المزوّدين في واجهة الويب ← الإعدادات ← المزوّدون، أو في kazma.yaml، أو عبر متغيرات البيئة. انظر الإعدادات ← الإعدادات المسبقة للمزوّدين.

الصوت ليس دردشة. يُستخدم مفتاح OpenAI/Groq/Cohere نفسه لتحويل الكلام إلى نص بـ Whisper، لكن نماذج Whisper مخفية من قوائم اختيار الدردشة ومن اختبار المزوّد (/chat/completions). اختر STT/TTS من الإعدادات ← الصوت.


الطبقةكيف تعملالمزوّدون
متوافق مع OpenAI (LLMProvider العام)عميل httpx واحد، ومصادقة Bearer، و/v1/chat/completionsOpenAI، و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)، لا مجرد مدخل إعداد مسبق.

اضبط 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متغير البيئة
OpenAIhttps://api.openai.com/v1OPENAI_API_KEY
DeepSeekhttps://api.deepseek.com/v1DEEPSEEK_API_KEY
Groqhttps://api.groq.com/openai/v1GROQ_API_KEY
xAI / Grokhttps://api.x.ai/v1XAI_API_KEY
OpenRouterhttps://openrouter.ai/api/v1OPENROUTER_API_KEY
Mistralhttps://api.mistral.ai/v1MISTRAL_API_KEY
Together AIhttps://api.together.xyz/v1TOGETHER_API_KEY
Coherehttps://api.cohere.ai/v1COHERE_API_KEY
Fireworks AIhttps://api.fireworks.ai/inference/v1FIREWORKS_API_KEY
Perplexityhttps://api.perplexity.aiPERPLEXITY_API_KEY
AI21 Labshttps://api.ai21.com/studio/v1AI21_API_KEY
NVIDIA NIMhttps://integrate.api.nvidia.com/v1NVIDIA_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) حين تتعذر نقطة النهاية.


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. لا حاجة إلى وسيط.

حمولة متوافقة مع OpenAI لكن بتوجيه خاص بـ Azure: ترويسة api-key (لا Bearer)، وعنوان URL خاص بالنشر (.../openai/deployments/<deployment>/chat/completions)، ومعامل استعلام api-version إلزامي.

نافذة طرفيّة
export AZURE_OPENAI_ENDPOINT=https://<resource>.openai.azure.com
export AZURE_OPENAI_API_KEY=<key>
export AZURE_OPENAI_DEPLOYMENT=<deployment-name>
export AZURE_OPENAI_API_VERSION=2024-10-21

يستخدم Converse API لواجهة موحّدة عبر النماذج المستضافة على Bedrock (Claude وLlama وMistral، …). تُوقَّع الطلبات بـ SigV4 عبر سلسلة اعتماد boto3 القياسية (متغيرات البيئة، أو ملف الاعتمادات المشترك، أو دور IAM). ويتطلب pip install boto3 — ويتراجع برسالة واضحة حين يغيب.

نافذة طرفيّة
export AWS_REGION=us-east-1
export 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.

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 لثوابت سجل النماذج.