Semantic-Router
Semantic-Router 是一个为你的 LLM 和 agent 构建决策层的库。它使用向量嵌入来做出工具使用决策,而不是通过 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)
完整示例
点击展开
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'