参考
先是看到了这个文章: https://mp.weixin.qq.com/s/noM8Hy1atF8asuj1Bagpdg
AutoGPT 等自动推理,自动执行的项目火热出现
之前看过飞书的 AI 的介绍视频,里面有创建日程的场景
结合我们的场景
类型场景我们也有, 定会议室, 创建日程
代码实践
核心是应用 langchain 中的 Agent, Tools, Chain 来完成整个步骤
大致关系如下:
Agent
from langchain.agents import Tool, AgentExecutor, LLMSingleActionAgent, AgentOutputParser |
日期计算 Tool
import datetime |
查询员工信息 Tool
这里是连了数据库, 通过自然语言转换为 sql
import os |
日程查询 Tool
- 将日期和查询 Tool 得到的结果汇总处理.
- 解析出需要的信息
- 根据业务逻辑去判断空闲时间,或者日程冲突. 返回结果或者错误处理
|
Error Tool
当在推断过程中返回 类似出错了 这种意思的时候, agent 会选择 Error tool. 此时推断直接结束.
Tool 定义中的 return_direct=True 代表这个 Tool 返回的结果就直接结束了, 不会让程序再次判断给哪个 Tool 去处理
Session 模块
因为没有找到现成的能记录下各个 Tool 里的历史记录和 agent 的记录. 所以独立找 redis 来自己记录了
import os |
示例解析过程(debug)
这个例子中, 日期推算错误,但格式是对的, 这里只需要针对每个 Tool 去做优化迭代就好了. 整个场景上是跑通的
> Entering new AgentExecutor chain... |