本文主要基于ollama加载的qwen2.5模型以及Qwen-Agent框架,实现对工具的自主定义和准确调用。调用方式上尝试了Function Call及ReAct这两种大的方向,并探索了流式与非流式生成方式、串行与并行的函数调用、以及中英语言的提示词模版的效果比较。
文章目录
- 准备工作
- 工具定义
- 模型定义
- 工具调用
- FnCallAgent(Function Call路径)
- 流式串行版本
- 非流式串行版本
- 非流式并行版本
- 非流式串行中文版本
- ReActChat(ReAct路径)
- 非流式串行 VS 非流式并行
- 非流式英文 VS 非流式中文
准备工作
第一步是使用pip安装Qwen-Agent,这个就不细说了。
工具定义
工具与基于Qwen2.5在多框架下的Function Call尝试及总结中用到的一致。这里的自定义工具比较麻烦,要严格按照下面的格式才可以,否则会提示工具没有注册的错误。
from qwen_agent.tools.base import BaseTool, register_tool