在对话式人工智能中实现工具功能
💡
原文英文,约1700词,阅读约需6分钟。
📝
内容提要
作者在构建Glama时,研究了OpenAI助手工具的概念,并编写了一个PoC来复制这些功能。他定义了一组函数供模型调用,以响应用户查询,并实现了自己的路由逻辑,使所有模型都能使用这些工具。这些工具可以获取外部信息、计算复杂表达式或执行操作。作者使用zod描述工具参数和响应的JSON模式,通过循环调用routeMessage函数来判断是否需要使用工具,从而在不支持工具的模型中也能使用工具,并根据用户提示加载特定工具。
🎯
关键要点
- 作者在构建Glama时研究了OpenAI助手工具的概念,并编写了一个PoC来复制这些功能。
- 助手工具是一组可以被模型调用的函数,用于响应用户查询。
- 工具的实际例子包括获取外部信息、计算复杂表达式和代表用户执行操作。
- 并非所有模型都支持工具,作者希望实现自己的路由逻辑以便所有模型都能使用这些工具。
- 作者使用zod描述工具的参数和响应的JSON模式,并通过循环调用routeMessage函数来判断是否需要使用工具。
- 工具描述需要以模型能够理解的方式表达,作者使用JSON格式。
- 对话历史需要包括工具调用,以便模型了解在对话中已经使用了哪些工具。
- 路由逻辑的实现将对话历史和可用工具结合,返回回答用户问题的计划。
- 每次用户提问时,使用routeMessage确定是否需要使用工具,以及使用哪些工具。
- 作者选择自己实现路由逻辑,以便在不支持工具的模型中使用工具,并扩展工具解析逻辑。
➡️