venice أصلي — إتمامات المحادثة، والبث، والأدوات، والمخرجات المُهيكلة، والتضمينات، والتفريغ الصوتي، وتوليد الصور، والكلام — موصولةً بواجهة برمجة تطبيقات Venice مباشرةً بدلًا من تمريرها عبر عميل OpenAI.
إذا كنت تريد وسيط Axum خامًا بدلًا من إطار عمل وكلاء، راجع بناء بوابة LLM بلغة Rust.
المتطلبات الأساسية
- سلسلة أدوات Rust مستقرة حديثة (يستخدم Rig 0.42 إصدار 2024)
- Rig 0.42 أو أحدث
- مفتاح Venice API
الإعداد
VENICE_BASE_URL (يستخدم الموفّر افتراضيًا https://api.venice.ai/api/v1):
تهيئة عميل Venice
يقرأvenice::Client::from_env() قيمة VENICE_API_KEY. أدرج ProviderClient ضمن النطاق:
يُفضَّل استخدام
venice::Client بدلًا من توجيه عميل OpenAI في Rig نحو Venice. العميل الافتراضي openai::Client يستهدف واجهة Responses API من OpenAI. أما موفّر Venice فيتحدث لغة /chat/completions ويكشف VeniceParameters.&venice::Client من from_env(). ثوابت الحزمة مثل venice::QWEN3_5_9B هي نقطة بداية — تحقق من المعرّفات الحالية عبر GET /models.
بث الاستجابة
يُرجعstream_prompt طلبًا يمكنك استخدام .await عليه للحصول على تدفق. استخدم rig::agent::stream_to_stdout لطباعة الرموز فور وصولها:
? بعد .await على stream_prompt — فهي تُنتج التدفق مباشرةً، وليس Result.
المخرجات المُهيكلة
استخدم مُستخرِجًا (extractor) مع نوعJsonSchema للتحقق من صحة إجابة النموذج:
الأدوات
عرِّف أداة باستخدام#[rig_tool] (المُضمَّنة مع ميزة derive الافتراضية في Rig). النوع المُولَّد هو اسم الدالة بصيغة PascalCase:
rig::tool::Tool يدويًا عندما تحتاج إلى أنواع وسيطات مخصّصة أو معالجة مخصّصة للأخطاء. راجع توثيق الأدوات في Rig.
التضمينات
dimensions في OpenAI. استخدم embedding_model_with_ndims عندما تريد عرضًا محددًا بدلًا من الحجم الأصلي للنموذج.
المعاملات الخاصة بـ Venice
مرِّر الخيارات الخاصة بـ Venice عبرVeniceParameters وادمجها مع additional_params. على سبيل المثال، لتفعيل البحث المدمج على الويب:
cost لكل طلب)، استدعِ raw_completion على نموذج الإتمام. فمسار الوكيل المُطبَّع يُسقط تلك الحقول الخاصة بـ Venice:
VeniceParameters أيضًا مُعرِّفات الشخصيات (character slugs)، وضوابط التفكير، وكشط الويب، والبحث في X، وما إذا كان يجب تضمين موجّه النظام الافتراضي في Venice. راجع مواصفات API للاطلاع على القائمة الكاملة لـ venice_parameters.
قدرات أخرى
يقودvenice::Client نفسه أيضًا:
- التفريغ الصوتي —
client.transcription_model(venice::WHISPER_LARGE_V3) - توليد الصور —
client.image_generation_model(...)(فعِّل ميزةimageفي Rig) - الكلام —
client.audio_generation_model(venice::TTS_KOKORO)(فعِّل ميزةaudioفي Rig)
/augment/*، و crypto RPC ليس لها سمة (trait) في Rig وغير مغلفة. استدعِ نقاط نهاية Venice تلك مباشرةً.
ميزة الخصوصية
كثيرًا ما تُستخدم Rig لوكلاء يتعاملون مع بيانات التطبيق، أو سياق المستخدم، أو الأدوات الداخلية. اقترانها بـ Venice يُبقي هذا العمل ضمن استدلال خاص وغير خاضع للرقابة:- عدم الاحتفاظ بالبيانات على النماذج الخاصة — لا يُحتفظ بالموجّهات وحمولات الأدوات بعد الطلب
- تحليل غير خاضع للرقابة عندما يحتاج الوكلاء إلى نقد صريح أو اختبار اختراق (red-teaming)
- موفّر أصلي مدمج حتى لا تضطر إلى إعادة ربط أنواع OpenAI بلهجة Venice
استكشاف الأخطاء وإصلاحها
401 غير مصرَّح به
401 غير مصرَّح به
تأكّد من ضبط
VENICE_API_KEY في العملية التي تشغّل الوكيل. أعد تشغيل الصدفة أو العملية بعد تغيير متغيرات البيئة. لا يقرأ from_env() قيمة OPENAI_API_KEY.النموذج غير موجود أو أخطاء غير متوقعة في نقطة النهاية
النموذج غير موجود أو أخطاء غير متوقعة في نقطة النهاية
استخدم مُعرِّف نموذج حديثًا من صفحة النماذج أو
GET /models. قد تتأخر ثوابت الحزمة مثل venice::QWEN3_5_9B عن الكتالوج المباشر.فشل واجهة Responses API
فشل واجهة Responses API
استخدم
venice::Client، وليس openai::Client. عميل OpenAI يستهدف افتراضيًا Responses API، وهي في مرحلة ألفا فقط على Venice.تجاهُل الأدوات أو المخرجات المُهيكلة
تجاهُل الأدوات أو المخرجات المُهيكلة
اختر نموذجًا يدعم استدعاء الدوال، ووضّح متى ينبغي تشغيل الأدوات في التمهيد (preamble)، واحرص على أن تكون أوصاف الأدوات دقيقة — إذ تبني Rig مخططات JSON من توقيعات
#[rig_tool] والتوثيق.توثيق Rig
الوكلاء، والأدوات، والمُستخرِجات، والموفّرون
نماذج Venice
تصفّح النماذج والقدرات المدعومة