جهاز التوجيه الدلالي هو طبقة رائعة لاتخاذ القرارات لـ LLMs ووكلاءك. بدلاً من انتظار أجيال LLM البطيئة لاتخاذ قرارات لاستخدام الأدوات ، نستخدم سحر مساحة المتجه الدلالية لاتخاذ هذه القرارات- توجيه طلباتنا باستخدام المعنى الدلالي .
للبدء مع الإرهاق الدلالي ، نقوم بتثبيته مثل ذلك:
pip install -qU semantic-router
❗ إذا كنت ترغب في استخدام نسخة محلية بالكامل من جهاز التوجيه الدلالي ، فيمكنك استخدام HuggingFaceEncoder و LlamaCppLLM ( pip install -qU "semantic-router[local]" ، انظر هنا). لاستخدام HybridRouteLayer ، يجب عليك pip install -qU "semantic-router[hybrid]" .
نبدأ بتحديد مجموعة من كائنات Route . هذه هي مسارات القرار التي يمكن لجهاز التوجيه الدلالي أن يقرر استخدامها ، دعنا نجرب طريقين بسيطين في الوقت الحالي - أحدهما للحديث عن السياسة والآخر لـ Chitchat :
from semantic_router import Route
# we could use this as a guide for our chatbot to avoid political conversations
politics = Route (
name = "politics" ,
utterances = [
"isn't politics the best thing ever" ,
"why don't you tell me about your political opinions" ,
"don't you just love the president" ,
"they're going to destroy this country!" ,
"they will save the country!" ,
],
)
# this could be used as an indicator to our chatbot to switch to a more
# conversational prompt
chitchat = Route (
name = "chitchat" ,
utterances = [
"how's the weather today?" ,
"how are things going?" ,
"lovely weather today" ,
"the weather is horrendous" ,
"let's go to the chippy" ,
],
)
# we place both of our decisions together into single list
routes = [ politics , chitchat ] لدينا طرقنا جاهزة ، والآن نهيئة نموذج التضمين / التشفير. نحن ندعم حاليًا CohereEncoder و OpenAIEncoder - سيتم إضافة المزيد من المشفرات قريبًا. لتهيئتها نفعل:
import os
from semantic_router . encoders import CohereEncoder , OpenAIEncoder
# for Cohere
os . environ [ "COHERE_API_KEY" ] = "<YOUR_API_KEY>"
encoder = CohereEncoder ()
# or for OpenAI
os . environ [ "OPENAI_API_KEY" ] = "<YOUR_API_KEY>"
encoder = OpenAIEncoder () من خلال routes ومحددة encoder ، نقوم الآن بإنشاء RouteLayer . طبقة الطريق تتعامل مع اتخاذ القرارات الدلالية.
from semantic_router . layer import RouteLayer
rl = RouteLayer ( encoder = encoder , routes = routes )يمكننا الآن استخدام طبقة الطريق الخاصة بنا لاتخاذ قرارات سريعة فائقة بناءً على استعلامات المستخدم. لنجرب مع اثنين من الاستفسارات التي يجب أن تؤدي إلى قرارات طريقنا:
rl ( "don't you love politics?" ). name [Out]: 'politics'
القرار الصحيح ، لنجرب آخر:
rl ( "how's the weather today?" ). name [Out]: 'chitchat'
نحصل على كلا القرارين صحيح! لنحاول الآن إرسال استعلام غير ذي صلة:
rl ( "I'm interested in learning about llama 2" ). name [Out]:
في هذه الحالة ، لا يمكن اتخاذ أي قرار لأنه لم يكن لدينا أي مباريات - لذا فإن طبقة الطريق الخاصة بنا لم ترد None !
تشمل ترميزات جهاز التوجيه الدلالي عمليات تكامل سهلة الاستخدام مع Cohere و Openai و Openai Face و Fastembed والمزيد-حتى أننا ندعم متعددة الوسائط!.
تتكامل مساحة ناقلات الكلام لدينا أيضا مع pinecone و qdrant!
| دفتر | وصف |
|---|---|
| مقدمة | مقدمة إلى جهاز التوجيه الدلالي والطرق الثابتة |
| الطرق الديناميكية | الطرق الديناميكية لتوليد المعلمات ومكالمات الوظائف |
| حفظ/تحميل طبقات | كيفية حفظ وتحميل RouteLayer من الملف |
| تكامل Langchain | كيفية دمج جهاز التوجيه الدلالي مع وكلاء Langchain |
| التنفيذ المحلي | جهاز التوجيه الدلالي المحلي بالكامل مع طرق ديناميكية- نماذج محلية مثل Mistral 7B تفوق GPT-3.5 في معظم الاختبارات |
| تحسين الطريق | كيفية تدريب عتبات طبقة الطريق لتحسين الأداء |
| طرق متعددة الوسائط | باستخدام طرق متعددة الوسائط لتحديد صور Shrek و Not Shrek |

ollama / gemma2:9b الخط الساخن