langchain-Agent-工具检索

8 篇文章 0 订阅

有时会定义很多工具,而定义Agent的时候只想使用与问题相关的工具,这是可以通过向量数据库来检索相关的工具,传递给Agent

# Define which tools the agent can use to answer user queries
search = SerpAPIWrapper()
search_tool = Tool(
        name = "Search",
        func=search.run,
        description="useful for when you need to answer questions about current events"
    )
def fake_func(inp: str) -> str:
    return "foo"
fake_tools = [
    Tool(
        name=f"foo-{i}", 
        func=fake_func, 
        description=f"a silly function that you can use to get more information about the number {i}"
    ) 
    for i in range(99)
]
ALL_TOOLS = [search_tool] + fake_tools

from langchain.vectorstores import FAISS
from langchain.embeddings import OpenAIEmbeddings
from langchain.schema import Document
docs = [Document(page_content=t.description, metadata={"index": i}) for i, t in enumerate(ALL_TOOLS)]
vector_store = FAISS.from_documents(docs, OpenAIEmbeddings())
retriever = vector_store.as_retriever()
 
def get_tools(query):
    docs = retriever.get_relevant_documents(query)
    return [ALL_TOOLS[d.metadata["index"]] for d in docs]

tool = get_tools("What is today weather")
LangChain-ChaT是基于Laravel框架构建的一个聊天机器人系统,用于与用户进行自然语言交互。配置LangChain-ChaT的agent通常涉及以下几个步骤: 1. **安装依赖**:首先,确保您的项目已经安装了Laravel框架并激活了相应的版本。然后,通过Composer安装`langchain/chaat`库,例如: ``` composer require langchain/chaat ``` 2. **配置服务提供者**:在`config/app.php`文件中,添加LangChain ChaT的服务提供者到`providers`数组中: ```php Langchain\Chaat\Providers\ChaatServiceProvider::class, ``` 3. **注册中间件**:同样在`config/app.php`,在`middleware`部分注册聊天中间件: ```php 'chaaat' => \Langchain\Chaat\Middleware\ChaatMiddleware::class, ``` 4. **配置路由**:在`routes/web.php`或相应的路由文件里,设置与聊天机器人交互的URL,并绑定到适当的控制器动作: ```php Route::post('/chat', [YourController::class, 'chat'])->middleware('chaaat'); ``` 5. **初始化Agent**:在控制器中,创建一个新的ChaT Agent实例并初始化它: ```php public function chat(Request $request) { $agent = app(\Langchain\Chaat\Agent::class); // 设置你的代理配置,如API密钥、模型路径等 $agent->setApiKey('your_api_key'); $response = $agent->processRequest($request->input('message')); return response()->json($response); } ``` 6. **配置数据模型**:如果你使用了自定义的数据模型来存储对话历史,记得按照文档配置模型及其迁移。 7. **测试和调整**:完成上述配置后,你可以开始测试代理,查看是否能正常响应用户的输入并返回适当的结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值