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'

📚 拓展阅读

此页面有用吗?

感谢您的反馈!🙏

很抱歉听到这个消息。😔 你可以在 GitHub 上编辑此页面,或者创建一个 GitHub issue。