当前位置: 首页 > news >正文

L10 Function Calling与智能Agent开发

Function Calling 在大模型中的作用

1 拓展模型能力
大模型本身无法直接调用外部系统(如数据库,计算工具),但通过调用预设函数,可以完成
实时获取(天气 股价 新闻)
复杂计算(数学运算 代码执行)
操作外部系统(发送邮件,控制智能设备)

2 结构化输出
模型可将用户自然语言请求转化为结构化参数,传给函数。例如:
用户说:明天北京天气如何?
模型可以识别其中的参数:北京 20250824

3 动态决策流程
模型可根据上下文决定是否以及何时调用函数,甚至链式调用多个函数(如先查天气,再推荐穿搭)

Qwen3

于2025.4.29发布,包含8种不同规模的模型,涵盖了密集(Dense)和 混合专家(MoE)架构,支持免费商用

MoE模型(高效推理):
Qwen3-235B-A22B 旗舰级模型 性能接近 Gemini2.5 Pro

Qwen3-30B-A3B 高效推理 仅需10%激活参数可超越前QwQ-32B

密集模型(全参数激活):
Qwen3-32B 14B 8B 4B 1.7B 0.6B,其中Qwen3-4B性能媲美前代Qwen2.5-72B(企业部署中作者推荐Qwen3-8B 和 32B)

Qwen-Turbo-Latest 速度快,但数学能力不太行

Qwen-Agent

https://github.com/QwenLM/Qwen-Agent
安装方法:
pip3 install -e ./“[gui,rag,code_interpreter,mcp]”

gui 图形化界面
rag RAG知识库
code_interpreter 代码解析器,帮你执行Python代码
MCP 模型上下文协议

Case: 门票助手(Qwen-Agent实现)

Q:陈博,刚刚门票部分的提示词里面的特殊案例提示词如何写呢?比方说1.5天这种,如何提出公用的提示词写法呢?
prompt = “”"
1、你是一个XXXX(角色说明),你任务是XXX
2、提供上下文
如果ChatBI,需要提供 数据表的结构metadata
如果RAG,需要提问 RAG chunks
3、提供术语(黑话)
4、bad case
<q, a>
“”"

Q:如果建表语句,有更新,也要把代码进行更新吗?有更好的解藕办法吗?
方法1:在prompt中更新
方法2:提供数据库的直连,每次重新获取metadata
LangChain

Q:一定要有建表语句吗?对sql 不了解的;在编写提示词的时候怎么解决呢
如果是数据查询,是需要建表语句,方便了解都有哪些数据表,以及对应的字段

Q:老师你刚才查询的时候出了一个柱状图,那个prompt是什么?
是我们写一个 function calling,然后大模型来调用
你也可以在原有的function calling(exc_sql) 中增加 图表生成的功能

qwen-agent的页面是基于gradio (开源web页面)
python中两个轻量的开源web页面有:gradio, streamlit
也可以使用vue,但会增加调试工作

需要给AI以逻辑

可视化图表:实现步骤

一次调用,完成查询和可视化
自动推断,图表类型和字段映射(x轴 y轴)
结果双输出,同时返回表格和图表

Q:有没有可以画图表的大模型?
A:实际是让文本大模型写代码(代码中调用专业的画图工具:如 matplotlib图表 或者 echarts图表)

@assistant_ticket_bot-2.py 现在的画图是用的 matplotlib,我想改成echarts,将生成的数据给到 gui进行显示。
帮我查看 qwen-agent中的gradio gui的实现方式,是否可以增加 echarts显示的部分
帮我设计方案(先不用修改代码)

Q:如何发布qwen-agent,让其他人使用
方法1:用grdio的 share=True
WebUI(
bot,
chatbot_config=chatbot_config
).run(share=True)
方法2:
放到服务器上,server_name=“0.0.0.0”
server_port=“你指定的服务器端口,比如9001”

本地部署 127.0.0.1:7860
远程访问:share=True
服务器部署:放到服务器上,server_name=“0.0.0.0”
server_port=“你指定的服务器端口,比如9001”

Function Call的微调

Thinking:Function call 是否需要微调?
通常大模型具备Function call的能力,但有时候针对特定的function call理解和提参能力不强,就可以微调

Function call的微调目标,是教会模型下面两件事:
1 判断是否需要调用函数(比如 查天气 需要,而 写诗 不需要)
2 正确提取参数并生成格式化的调用指令(比如转成Json)

Function call微调步骤:
Step1 准备数据
Step2 模型训练

关键点:
数据质量:需覆盖各种场景(需要/不需要调用 参数变化)
函数描述要清晰:模型靠描述理解函数用途
避免误触发:加入足够多 无需调用 的样本,防止模型滥用函数。

mysql -u root -p

http://www.xdnf.cn/news/1404721.html

相关文章:

  • IC验证 AXI 项目(二)——断言
  • LeetCode - 21. 合并两个有序链表
  • 【前端教程】JavaScript 基础实战案例(5-10)
  • UE5多人MOBA+GAS 56、WSL + Docker 编排 Linux 服务器与 Windows 客户端
  • Linux基础1
  • AI融合高等教育:从通识到专业 - 学科+AI人才培养白皮书(上)
  • Linux查看Java进程PID、端口号和内存占用脚本
  • 【多项式】快速莫比乌斯变换(FMT)
  • ⭐CVPR2025 自动驾驶半监督 LiDAR 分割新范式:HiLoTs 框架深度解析
  • Python 数据分析:计算,分组统计2,df.groupby()和grouped.agg()。听故事学知识点怎么这么容易?
  • 告别图片处理焦虑:用imgix实现智能、实时且高效的视觉媒体交付(含案例、截图)
  • 一键掌控三线资源:极简 Shell 脚本实现 CPU·磁盘·内存可视化巡检
  • SRE命令行兵器谱之二:lsof - 解密“端口被占用”与“文件句柄泄漏”的终极侦探
  • MySQL-事务(下)-MySQL事务隔离级别与MVCC
  • 2021-11-10 C++不变初心数
  • ans1语法的一个例子nt5inf.cat
  • 详解Vue2、Vue3与React的Diff算法
  • TuringComplete游戏攻略(2.2存储器)
  • spark.sparkContext.broadcast() 与 org.apache.spark.sql.functions.broadcast 的区别
  • Docker实战避坑指南:从入门到精通
  • 神经网络激活函数:从ReLU到前沿SwiGLU
  • 分分合合,门模块方案又兴起了
  • 用更少的数据识别更多情绪:低资源语言中的语音情绪识别新方法
  • Vue生命周期、工程化开发和脚手架、组件化开发
  • hubert模型代码分析
  • 聚中原·贸全国·达世界,2026郑州台球展8月15至17举办
  • 深入解析Nginx常见模块1
  • 世界模型的典型框架与分类
  • 如何提高存储过程的可维护性
  • wav2vec2.0模型代码分析