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