news 2026/4/18 14:44:19

通义千问3-14B函数调用指南:qwen-agent库使用教程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
通义千问3-14B函数调用指南:qwen-agent库使用教程

通义千问3-14B函数调用指南:qwen-agent库使用教程

1. 引言

1.1 学习目标

本文旨在为开发者提供一份完整的Qwen3-14B 模型函数调用能力实践指南,重点围绕官方推出的qwen-agent库展开。通过本教程,你将掌握:

  • 如何在本地部署 Qwen3-14B 并启用函数调用功能
  • 使用qwen-agent定义工具(tools)并实现结构化输出
  • 在 Ollama + Ollama-WebUI 环境中集成 agent 能力
  • 切换 Thinking / Non-thinking 模式以优化推理质量与延迟

最终实现一个可响应用户自然语言指令、自动调用外部 API 的智能代理系统。

1.2 前置知识

建议读者具备以下基础: - Python 编程经验 - 对大模型的 prompt 工程和 JSON Schema 有一定了解 - 熟悉命令行操作及 Docker 基本使用


2. Qwen3-14B 核心特性回顾

2.1 模型定位与优势

Qwen3-14B 是阿里云于 2025 年 4 月发布的开源 Dense 架构大模型,参数量达 148 亿,虽非 MoE 结构,但凭借架构优化,在多项基准测试中表现接近甚至超越部分 30B 级别模型。

其核心亮点包括:

  • 单卡可运行:FP8 量化版本仅需 14GB 显存,RTX 4090 可全速运行
  • 双模式推理
  • Thinking模式:显式输出<think>推理链,适合复杂任务
  • Non-thinking模式:直接返回结果,响应速度提升约 50%
  • 超长上下文支持:原生支持 128k token,实测可达 131k,适用于法律文书、代码库分析等场景
  • 多语言互译能力:覆盖 119 种语言与方言,低资源语种翻译性能较前代提升 20%+
  • 原生函数调用支持:内置对 JSON Schema 和 tool calling 的解析能力

2.2 函数调用能力的意义

传统大模型输出为自由文本,难以被程序直接解析。而 Qwen3-14B 支持结构化函数调用(Function Calling),即模型可根据输入决定是否调用预定义工具,并以标准 JSON 格式返回函数名与参数。

这一能力是构建 Agent 系统的基础,使得模型可以: - 查询天气、股票等实时信息 - 执行数据库查询或 API 请求 - 控制智能家居设备 - 自动化工作流编排


3. 环境准备与模型部署

3.1 使用 Ollama 部署 Qwen3-14B

Ollama 提供了极简的大模型本地运行方案,支持一键拉取 Qwen3-14B 模型。

# 拉取 FP8 量化版(推荐) ollama pull qwen:14b-fp8 # 或拉取 BF16 版本(更高精度,占用更大) ollama pull qwen:14b-bf16

启动服务后,默认监听http://localhost:11434

验证是否成功加载:

ollama list

应能看到qwen:14b-fp8处于可用状态。

3.2 配置 Ollama-WebUI 提升交互体验

Ollama-WebUI 为 Ollama 提供图形化界面,支持历史会话管理、模型切换、自定义 system prompt 等功能。

安装步骤(Docker 方式)
git clone https://github.com/ollama-webui/ollama-webui.git cd ollama-webui docker compose up -d

访问http://localhost:3000即可进入 Web 界面。

提示:若需启用函数调用功能,请确保前端能正确传递tools字段至/api/generate接口。


4. qwen-agent 库快速入门

4.1 安装 qwen-agent

qwen-agent是阿里官方提供的轻量级 Python 库,用于封装工具定义、处理函数调用逻辑。

pip install qwen-agent

当前版本兼容 Ollama 输出格式,支持同步与异步调用。

4.2 定义第一个工具:获取天气

我们以“根据城市名获取天气”为例,演示如何注册工具并触发调用。

import json import requests from qwen_agent.agents import Assistant # Step 1: 定义工具描述(JSON Schema) tools = [ { "type": "function", "function": { "name": "get_weather", "description": "获取指定城市的当前天气信息", "parameters": { "type": "object", "properties": { "city": { "type": "string", "description": "城市名称,如 Beijing, Shanghai" } }, "required": ["city"] } } } ] # Step 2: 实现工具函数 def get_weather(city: str) -> str: try: url = f"https://wttr.in/{city}?format=3" response = requests.get(url, timeout=5) return response.text if response.status_code == 200 else "无法获取天气数据" except Exception as e: return f"请求失败: {str(e)}"

4.3 创建 Agent 并处理函数调用

# 初始化助手 bot = Assistant( llm='ollama', # 使用本地 Ollama model='qwen:14b-fp8', function_list=[get_weather], # 注册函数 system_message="你是一个智能助手,擅长调用工具帮助用户解决问题。" ) # 用户提问 messages = [{'role': 'user', 'content': '北京现在天气怎么样?'}] # 启动对话循环 for response in bot.run(messages=messages, tools=tools): if response.get("tool_calls"): # 模型希望调用函数 for tool_call in response["tool_calls"]: if tool_call["function"]["name"] == "get_weather": args = json.loads(tool_call["function"]["arguments"]) result = get_weather(args["city"]) # 将结果追加到消息历史 messages.append({ "role": "tool", "content": result, "tool_call_id": tool_call["id"] }) else: # 模型返回最终回答 final_answer = response["content"] print("助手:", final_answer) break # 继续让模型基于工具返回结果生成自然语言回复 if messages[-1]["role"] == "tool": for final_resp in bot.run(messages=messages, tools=tools): if not final_resp.get("tool_calls"): print("助手:", final_resp["content"]) break
输出示例
助手: 正在为您查询北京的天气... (内部调用 get_weather 返回) 助手: 北京, 晴, 18°C

5. 进阶技巧与最佳实践

5.1 控制推理模式:Thinking vs Non-thinking

Qwen3-14B 支持两种推理模式,可通过 system prompt 显式控制。

启用 Thinking 模式(高质量推理)
system_message = """你是一个严谨的推理助手。 请先在 <think> 标签中逐步分析问题,再给出答案。 适用于数学计算、逻辑推理、复杂决策等场景。"""
启用 Non-thinking 模式(低延迟响应)
system_message = """你是一个高效对话助手。 无需展示思考过程,直接给出简洁准确的回答。 适用于日常问答、写作润色、翻译等高频交互场景。"""

建议:在需要函数调用的复杂任务中使用 Thinking 模式,提升决策准确性。

5.2 多工具协同调用

qwen-agent支持同时注册多个工具,模型将根据上下文选择合适的组合。

tools = [ { "type": "function", "function": { "name": "search_knowledge_base", "description": "在内部知识库中搜索相关信息", "parameters": {"type": "object", "properties": {"query": {"type": "string"}},"required": ["query"]} } }, { "type": "function", "function": { "name": "send_email", "description": "发送邮件给指定收件人", "parameters": { "type": "object", "properties": { "to": {"type": "string"}, "subject": {"type": "string"}, "body": {"type": "string"} }, "required": ["to", "subject", "body"] } } } ]

当用户说:“帮我查一下公司差旅政策,并发邮件给张经理确认”,模型可能依次调用两个函数。

5.3 错误处理与重试机制

实际应用中,工具执行可能失败。建议添加异常捕获和反馈机制:

try: result = tool_function(**args) except Exception as e: result = f"执行出错: {type(e).__name__}: {str(e)}" messages.append({ "role": "tool", "content": result, "tool_call_id": tool_call["id"] })

这样模型可基于错误信息进行修正或提示用户。


6. 性能优化与部署建议

6.1 显存与速度优化

配置显存占用推理速度(token/s)
FP16 全精度~28 GB~60 (A100)
FP8 量化版~14 GB~80 (4090), ~120 (A100)

建议: - 消费级显卡用户优先选用qwen:14b-fp8- 若追求极致性能,可结合 vLLM 进行批处理加速

6.2 生产环境部署建议

  • 使用 FastAPI 封装 agent 服务,暴露 RESTful 接口
  • 添加缓存层(Redis)避免重复调用
  • 设置调用频率限制与权限校验
  • 日志记录所有 tool call 行为,便于审计

7. 总结

7.1 全景总结

Qwen3-14B 凭借148 亿 Dense 参数、128k 上下文、双模式推理、原生函数调用支持,成为目前最适合个人开发者和中小企业落地 AI Agent 的开源模型之一。配合qwen-agent库,能够快速构建具备真实世界交互能力的智能体。

其 Apache 2.0 商用许可也极大降低了企业集成门槛,真正实现了“高性能 + 零成本 + 可商用”的三位一体价值。

7.2 实践建议

  1. 开发阶段:使用 Ollama + Ollama-WebUI 快速验证想法
  2. 测试阶段:引入qwen-agent实现结构化函数调用流程
  3. 上线阶段:迁移至 vLLM 或 TGI 提升吞吐,搭配 FastAPI 提供服务

无论你是想打造自动化客服、智能办公助手,还是个性化教育辅导系统,Qwen3-14B 都是一个极具性价比的选择。


获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 8:04:58

一键部署PhoneAgent,Open-AutoGLM让手机自动化落地

一键部署PhoneAgent&#xff0c;Open-AutoGLM让手机自动化落地 1. 技术背景与核心价值 随着移动设备在日常生活和工作中的深度渗透&#xff0c;用户对高效、智能的手机操作方式提出了更高要求。传统手动操作模式在面对重复性任务&#xff08;如比价购物、信息收集&#xff09…

作者头像 李华
网站建设 2026/4/17 21:24:30

通义千问2.5-0.5B-Instruct知识管理:企业内部文档问答系统搭建

通义千问2.5-0.5B-Instruct知识管理&#xff1a;企业内部文档问答系统搭建 1. 引言&#xff1a;轻量级大模型在企业知识管理中的新机遇 随着企业数字化转型的深入&#xff0c;内部文档数量呈指数级增长&#xff0c;涵盖技术手册、会议纪要、项目报告、制度流程等多个维度。传…

作者头像 李华
网站建设 2026/4/18 7:53:04

中小企业降本增效方案:AI证件照系统免费镜像部署教程

中小企业降本增效方案&#xff1a;AI证件照系统免费镜像部署教程 1. 引言 1.1 业务场景描述 在中小企业日常运营中&#xff0c;员工入职、资质申报、社保办理等环节频繁需要标准证件照。传统方式依赖照相馆拍摄或外包设计服务&#xff0c;不仅成本高&#xff08;单次50-100元…

作者头像 李华
网站建设 2026/4/18 9:21:28

西门子 S71200 PLC 编程之 TCP/IP 通讯 FB 功能块的妙用

西门子S71200PLC编程TCP/IP通讯FB功能块 以字符串的格式直观显示发送接受数据。 自动计算发送数据长度&#xff0c;简化发送不定长数据过程。 接受不定长数据&#xff0c;转化为对应长度的字符串&#xff0c; 在控制过程中&#xff0c;只需要通过比较字符串来获取反馈状态。在工…

作者头像 李华
网站建设 2026/4/18 8:34:25

AWPortrait-Z商业案例:广告行业的人像生成实践

AWPortrait-Z商业案例&#xff1a;广告行业的人像生成实践 1. 引言 1.1 广告行业对高质量人像内容的需求 在数字营销和品牌推广日益激烈的今天&#xff0c;广告行业对视觉内容的质量要求达到了前所未有的高度。无论是社交媒体广告、电商平台主图&#xff0c;还是线下宣传物料…

作者头像 李华
网站建设 2026/4/18 8:30:42

探索三菱PLC工控板FX1N源码与电路图的奇妙世界

三菱PLC工控板 FX1N源码电路图代码源程序。最近在研究工控领域&#xff0c;三菱PLC工控板FX1N着实引起了我的浓厚兴趣。今天就来和大家唠唠这FX1N的源码以及电路图相关内容&#xff0c;说不定能给同样在这方面探索的小伙伴一些启发。 三菱PLC工控板FX1N简介 FX1N系列可编程序控…

作者头像 李华