语义路由器
语义路由器 是一个用于为你的LLMs和代理构建决策层的库。它使用向量嵌入来做出工具使用决策,而不是LLM生成,通过语义意义来路由我们的请求。
Qdrant 作为 Semantic-Router 中支持的索引,可供您用于摄取路由数据并执行检索。
安装
要使用Semantic-Router与Qdrant,请安装qdrant额外组件:
pip install semantic-router[qdrant]
用法
设置QdrantIndex并配置适当的参数:
from semantic_router.index import QdrantIndex
qdrant_index = QdrantIndex(
url="https://xyz-example.eu-central.aws.cloud.qdrant.io", api_key="<your-api-key>"
)
一旦Qdrant索引设置了适当的配置,我们可以将其传递给RouteLayer。
from semantic_router.layer import RouteLayer
RouteLayer(encoder=some_encoder, routes=some_routes, index=qdrant_index)
完整示例
Click to expand
import os
from semantic_router import Route
from semantic_router.encoders import OpenAIEncoder
from semantic_router.index import QdrantIndex
from semantic_router.layer import RouteLayer
# we could use this as a guide for our chatbot to avoid political conversations
politics = Route(
name="politics value",
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]
os.environ["OPENAI_API_KEY"] = "<YOUR_API_KEY>"
encoder = OpenAIEncoder()
rl = RouteLayer(
encoder=encoder,
routes=routes,
index=QdrantIndex(location=":memory:"),
)
print(rl("What have you been upto?").name)
这将返回:
[Out]: 'chitchat'
