
Qwen2.5-7B入门实战5分钟学会工具调用与智能问答你是不是经常遇到这样的场景想让AI帮你查天气、写代码、分析数据但发现它只能聊天干不了实事或者好不容易找到一个能调用工具的模型配置起来却复杂得让人头疼今天我来带你用Qwen2.5-7B和Qwen-Agent框架5分钟搞定工具调用让AI真正成为你的智能助手。不需要复杂的配置不需要深厚的编程功底跟着我一步步来你就能让AI帮你查天气、执行代码、处理文件实现真正的智能问答。1. 为什么选择Qwen2.5-7B和Qwen-Agent在开始动手之前我们先简单了解一下为什么这套组合值得你花时间学习。Qwen2.5-7B是阿里开源的最新语言模型相比前代有了显著提升。它不仅在编程和数学能力上大幅增强更重要的是它在指令遵循、工具调用方面表现更加出色。这意味着它能更好地理解你的需求并调用合适的工具来完成任务。而Qwen-Agent则是专门为Qwen模型设计的智能体框架。你可以把它想象成一个大脑它能让Qwen模型具备使用工具、规划任务、记忆对话的能力。最棒的是它的模块化设计让你可以轻松添加自定义工具打造属于你自己的AI助手。简单来说Qwen2.5-7B提供了强大的思考能力Qwen-Agent则提供了灵活的动手能力。两者结合就能创造出真正有用的AI应用。2. 环境准备快速搭建开发环境好了理论说再多不如动手实践。我们先来搭建开发环境整个过程只需要几分钟。2.1 基础环境要求首先确保你的系统满足以下基本要求操作系统Linux推荐CentOS 7或Ubuntu 20.04Python版本3.10内存至少16GB如果有GPU更好但CPU也能运行2.2 安装依赖包打开终端按照以下步骤操作# 创建并激活虚拟环境 conda create --name qwen-agent python3.10 conda activate qwen-agent # 安装Qwen-Agent及其必要组件 pip install -U qwen-agent[gui,rag,code_interpreter,python_executor] pip install python-dateutil如果你想要最小化安装也可以只安装核心组件pip install -U qwen-agent # 如果需要代码执行功能再单独安装 pip install -U qwen-agent[code_interpreter]安装过程通常很快几分钟就能完成。如果遇到网络问题可以尝试使用国内镜像源。2.3 获取模型文件Qwen2.5-7B-Instruct模型可以从多个渠道获取从Hugging Face下载# 使用git下载 git clone https://huggingface.co/Qwen/Qwen2.5-7B-Instruct从ModelScope下载国内推荐git clone https://www.modelscope.cn/qwen/Qwen2.5-7B-Instruct.git选择其中一个渠道下载即可。模型文件大约14GB下载时间取决于你的网络速度。3. 第一个工具调用让AI帮你查天气现在进入最有趣的部分——让AI真正动起来。我们先从一个简单的例子开始创建一个能查询天气的AI助手。3.1 创建自定义天气工具工具调用的核心是让AI能够调用外部函数。我们先创建一个查询天气的工具# weather_tool.py import json5 from qwen_agent.tools.base import BaseTool, register_tool # 注册一个名为get_current_weather的工具 register_tool(get_current_weather) class GetCurrentWeather(BaseTool): # 工具描述告诉AI这个工具是干什么用的 description 获取实时天气服务输入城市名称例如广州返回该城市当前的天气情况。 # 定义工具需要的参数 parameters [{ name: location, type: string, description: 城市名称例如广州、北京、上海, required: True }] # 工具的实际执行函数 def call(self, params: str, **kwargs) - str: # params是AI生成的参数通常是JSON格式的字符串 print(f收到查询参数: {params}) location json5.loads(params)[location] # 这里模拟天气查询实际应用中可以调用真实的天气API if location 广州: return 目前广州多云间晴局部有阵雨气温29~32℃吹轻微的东南风。 elif location 北京: return 北京今天晴转多云气温25~30℃微风。 elif location 上海: return 上海今天阴天有零星小雨气温27~31℃东南风3-4级。 else: return f{location}的天气信息暂时无法获取请确认城市名称是否正确。这个工具做了几件事定义了一个get_current_weather工具告诉AI这个工具需要什么参数这里只需要城市名称实现了实际的查询逻辑这里用模拟数据你可以替换成真实的天气API3.2 配置AI助手并调用工具有了工具接下来我们创建AI助手并让它使用这个工具# assistant_demo.py from qwen_agent.agents import Assistant from weather_tool import GetCurrentWeather # 导入我们刚才创建的工具 # 配置语言模型 llm_cfg { model: /path/to/Qwen2.5-7B-Instruct, # 修改为你的模型路径 model_server: http://localhost:8000/v1, # 模型服务地址 api_key: EMPTY, # 如果没有API密钥就填EMPTY # 可选调整生成参数 generate_cfg: { top_p: 0.8, # 控制生成的多样性 temperature: 0.7, # 控制生成的随机性 max_tokens: 512 # 最大生成长度 } } # 创建AI助手 system_instruction 你是一个乐于助人的AI助手可以帮用户查询天气信息。 tools [get_current_weather] # 使用我们注册的天气工具 assistant Assistant( llmllm_cfg, system_messagesystem_instruction, function_listtools ) # 开始对话 if __name__ __main__: print( AI天气助手 ) print(输入退出结束对话\n) while True: user_input input(你: ) if user_input.lower() in [退出, exit, quit]: print(再见) break # 构建消息 messages [{role: user, content: user_input}] # 获取AI回复 print(AI: , end, flushTrue) for response in assistant.run(messagesmessages): if len(response) 3: # 流式输出AI的回复 print(response[2][content], end, flushTrue) print() # 换行3.3 运行并测试保存上面的代码为weather_assistant.py然后运行python weather_assistant.py你会看到类似这样的对话 AI天气助手 输入退出结束对话 你: 今天广州的天气怎么样 收到查询参数: {location: 广州} AI: 今天广州的天气是多云间晴局部有阵雨气温在29到32摄氏度之间吹轻微的东南风。建议出门携带雨具。看到了吗AI不仅理解了你的问题还自动调用了我们编写的天气查询工具然后把工具返回的结果用自然语言组织成完整的回答。4. 进阶功能代码执行与文件处理只会查天气还不够酷Qwen-Agent还内置了很多强大的工具比如代码执行器。这意味着AI可以帮你写代码、运行代码、分析数据。4.1 使用代码执行器让我们创建一个能执行Python代码的AI助手# code_assistant.py from qwen_agent.agents import Assistant # 配置模型同上 llm_cfg { model: /path/to/Qwen2.5-7B-Instruct, model_server: http://localhost:8000/v1, api_key: EMPTY, } # 创建支持代码执行的助手 assistant Assistant( llmllm_cfg, system_message你是一个代码助手可以帮用户编写和执行Python代码。, function_list[code_interpreter] # 使用内置的代码执行器 ) # 测试代码执行 messages [{ role: user, content: 请帮我计算1到100所有偶数的和并用Python代码实现。 }] print(用户问题:, messages[0][content]) print(\nAI回复:) for response in assistant.run(messagesmessages): if len(response) 3: print(response[2][content], end, flushTrue) print()运行这个脚本AI会生成Python代码来计算1到100的偶数和然后执行这段代码并返回结果。4.2 处理文件和数据Qwen-Agent还能处理文件。比如你可以让AI分析CSV文件# file_analysis.py from qwen_agent.agents import Assistant # 创建支持文件处理的助手 assistant Assistant( llmllm_cfg, system_message你是一个数据分析助手可以帮用户分析文件数据。, function_list[code_interpreter] ) # 假设我们有一个data.csv文件 messages [{ role: user, content: 请分析data.csv文件统计每个类别的数量并绘制柱状图。 }] # AI会自动读取文件、分析数据、生成图表5. 实际应用场景与技巧学会了基础操作我们来看看在实际工作中怎么用这些功能。5.1 场景一智能客服机器人想象一下你要为公司创建一个客服机器人它需要回答常见问题查询订单状态处理退货申请你可以这样实现# customer_service.py from qwen_agent.agents import Assistant from qwen_agent.tools.base import BaseTool, register_tool import json5 # 自定义工具查询订单 register_tool(query_order) class QueryOrder(BaseTool): description 查询订单状态需要订单号作为参数。 parameters [{ name: order_id, type: string, description: 订单编号例如ORD20240001, required: True }] def call(self, params: str, **kwargs) - str: order_id json5.loads(params)[order_id] # 这里可以连接数据库查询真实订单状态 return f订单{order_id}的状态是已发货预计明天送达。 # 自定义工具处理退货 register_tool(process_return) class ProcessReturn(BaseTool): description 处理商品退货申请需要订单号和退货原因。 parameters [ {name: order_id, type: string, required: True}, {name: reason, type: string, required: True} ] def call(self, params: str, **kwargs) - str: data json5.loads(params) return f已收到订单{data[order_id]}的退货申请原因{data[reason]}。客服将在24小时内联系您。 # 创建客服助手 assistant Assistant( llmllm_cfg, system_message你是一个专业的客服助手可以帮用户查询订单、处理退货等。, function_list[query_order, process_return, code_interpreter] )5.2 场景二数据分析助手如果你经常需要处理数据可以创建一个数据分析助手# data_analyst.py assistant Assistant( llmllm_cfg, system_message你是一个数据分析专家擅长 1. 数据清洗和预处理 2. 统计分析和可视化 3. 生成数据报告 请用专业但易懂的方式解释分析结果。, function_list[code_interpreter] ) # 使用示例 messages [{ role: user, content: 我有一个销售数据文件sales.csv包含以下字段 date, product, quantity, price 请帮我 1. 计算每个产品的总销售额 2. 找出销售额最高的产品 3. 绘制月度销售趋势图 }]5.3 实用技巧与注意事项在实际使用中有几个小技巧能让你的AI助手更好用技巧1给AI清晰的指令# 好的指令 system_message 你是一个数学老师用简单易懂的方式解释数学概念。 # 不够清晰的指令 system_message 你是一个助手。 # 太模糊了技巧2合理设置工具参数# 明确的参数描述 parameters [{ name: city, type: string, description: 城市名称必须是中文例如北京、上海、广州, required: True }]技巧3处理工具调用失败class SafeTool(BaseTool): def call(self, params: str, **kwargs) - str: try: # 尝试执行工具 result do_something(params) return result except Exception as e: # 返回友好的错误信息 return f工具执行失败{str(e)}请检查输入参数是否正确。技巧4流式输出优化# 更好的流式输出体验 for response in assistant.run(messagesmessages, streamTrue): if content in response: # 逐字输出更像真人打字 for char in response[content]: print(char, end, flushTrue) time.sleep(0.02) # 稍微延迟让输出更自然6. 总结通过今天的学习你已经掌握了Qwen2.5-7B结合Qwen-Agent进行工具调用的核心技能。让我们回顾一下关键点核心收获环境搭建很简单只需要几行命令就能安装好所有依赖工具创建很直观通过装饰器注册工具定义参数和执行函数AI调用很智能Qwen2.5-7B能准确理解何时该调用工具应用场景很广泛从查天气到数据分析都能轻松实现实际价值提升工作效率让AI帮你处理重复性任务降低开发门槛不需要复杂的AI知识就能创建智能应用灵活可扩展可以根据需求随时添加新的工具成本可控使用开源模型无需支付API费用下一步建议尝试创建自己的工具比如查询股票、翻译文档、生成报告探索Qwen-Agent的其他功能如长文本处理、多轮对话记忆将AI助手集成到你的实际项目中比如网站客服、内部工具学习如何优化提示词让AI更好地理解你的需求最重要的是现在就开始动手实践。从修改天气查询工具开始把它变成查询你真正需要的信息的工具。只有实际动手你才能真正掌握这项技能。工具调用只是AI应用的开始。随着你对Qwen2.5-7B和Qwen-Agent的深入了解你会发现更多可能性自动化的数据分析、智能的文档处理、个性化的内容生成……AI不再只是聊天机器人而是真正能帮你解决问题的智能伙伴。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。