news 2026/1/18 17:20:15

大模型通义千问-Plus 练习总结 - 3

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
大模型通义千问-Plus 练习总结 - 3

一、联网搜索 和 Function(有免费接口)总结

文章链接:通义AI工具之 联网搜索 和 Function(有免费接口)-CSDN博客

1. 一段话总结

本文介绍了通义千问 - plus 大模型的四大核心工具(联网搜索、Function Calling、代码解释器、MCP),它们形成 “信息获取 - 能力扩展 - 专业计算 - 私有协作” 的完整闭环,补齐大模型时效性、功能性等短板;同时给出联网搜索的代码实现,基于此前上下文缓存框架,在buildApplicationParam方法中传递enable_search: true参数即可启用,该工具能突破大模型知识时间边界,获取实时 / 多源数据以提升回答精准度与可信度(需注意敏感数据需自行校验)。

2. 思维导图

3. 详细总结

通义千问 - plus 联网搜索 和 Function 代码实现总结

一、工具总述

通义千问 - plus 大模型的四大工具(联网搜索、Function Calling、代码解释器、MCP)并非独立运作,而是构建了 “信息获取 - 能力扩展 - 专业计算 - 私有协作” 的完整闭环,针对性解决大模型在时效性、功能性、专业性、隐私性上的短板,推动大模型从通用型对话工具,转变为可落地于具体工作场景的生产力工具。

二、四大工具详细解析

2.1 工具核心信息对比表
工具名称核心定位核心作用典型场景关键特性 / 注意事项
联网搜索大模型的 “信息天线”1. 突破知识时间边界,获取实时动态数据;2. 多源交叉验证,提升回答可信度1. 查询 2025 年 Spring Boot 稳定版本;2. 某行业最新政策细则;3. 当日热点科技事件进展敏感数据需自行判断,避免信息污染 / 投毒
Function Calling大模型的 “能力扩展接口”1. 调用外部工具 / 自定义函数;2. 多工具联动,拆解执行复杂任务1. 查询 Redis 集群实时监控数据(内存使用率、QPS);2. 定位推荐附近餐饮;3. 天气 + 出行规划联动支持任务拆解与多工具协同
代码解释器专业 “工具箱”1. 沙箱环境运行代码,处理复杂计算 / 调试;2. 解析 / 处理文件,降低技术门槛1. 基于销售数据生成可视化报表;2. 计算 Redis 缓存命中率;3. 解析 Excel 数据、修复代码语法错误适配开发者与非技术人员,避免纯文本计算误差
MCP跨系统 “私有协作桥梁”1. 安全对接企业内部私有系统 / 数据库;2. 权限管控,保障数据隐私1. 访问企业 CRM/ERP 系统;2. 查询内部接口文档;3. 调取项目历史 Bug 记录侧重企业私有资源对接,不泄露敏感信息
2.2 各工具核心细节
2.2.1 联网搜索
  • 核心痛点解决:大模型原生知识存在 “时间边界”(仅覆盖训练截止前信息),无法获取实时数据;
  • 价值体现:不仅能提供最新信息,还能通过多源数据交叉验证,减少单一来源的信息误差;
  • 风险提示:任何模型的联网数据都可能存在污染 / 投毒,涉及财务、合规等极其敏感的内容,需人工二次校验。
2.2.2 Function Calling
  • 核心逻辑:大模型根据用户需求,自动判断需要调用的工具 / 接口,将自然语言需求转化为可执行的工具调用流程;
  • 能力升级:让大模型从 “只能说” 升级为 “能做事”,例如用户说 “帮我规划周末出行”,可联动天气 API、地图 API、旅游服务 API 生成完整方案。
2.2.3 代码解释器
  • 环境特性:内置可运行代码的沙箱,支持 Python 等主流语言,无需本地配置开发环境;
  • 适用人群:① 开发者:快速验证代码逻辑、调试接口;② 非技术人员:完成基础数据处理(如 Excel 数据分析),无需掌握复杂工具操作。
2.2.4 MCP(模型连接协议)
  • 核心差异:区别于公开 API 调用,MCP 专注企业内部资源对接,具备严格的权限管控机制;
  • 业务价值:让大模型贴合企业实际业务,例如后端开发者可通过 MCP 让大模型生成适配公司技术栈的解决方案,提升工作效率。

三、联网搜索代码实现

3.1 基础前提
  • 代码框架:基于上一篇 “通义千问-plus 智能体的上下文缓存-CSDN博客” 项目框架,无需重构核心逻辑;
  • 核心目标:在原有智能体参数构建中,新增联网搜索启用配置。
3.2 关键代码修改

DashScopeServiceImpl类的buildApplicationParam方法中,新增enable_search: true参数,启用联网搜索功能,其余历史消息解析、内容清洗逻辑复用原有代码:

private ApplicationParam buildApplicationParam(ChatRequestDTO requestDTO) throws InputRequiredException { List<Message> messages = new ArrayList<>(); // 1. 复用原有历史消息解析与清洗逻辑(省略重复代码) // 2. 新增:启用联网搜索 return ApplicationParam.builder() .apiKey(apiKey) .appId(appId) .messages(messages) .prompt(prompt) .incrementalOutput(true) .enableSearch(true) // 核心新增参数:启用联网搜索 .build(); }
3.3 实现逻辑
  • 当用户提问涉及实时 / 时效性强的信息(如 “2025 年最新 Java 版本”)时,智能体将自动触发联网搜索;
  • 搜索获取的数据将与本地知识库、历史上下文结合,由大模型整合后生成最终回答。

4. 关键问题

理解一下问题,基本上你就懂的差不多了

问题 1:通义千问 - plus 的四大工具各自解决了大模型的哪些核心短板?它们之间的协同逻辑是什么?

答案:四大工具针对性解决大模型的四大短板,协同逻辑形成完整工作流:

  • 联网搜索:解决 “时效性不足”(突破知识时间边界)和 “信息可信度低”(多源交叉验证)的短板;
  • Function Calling:解决 “功能性单一” 的短板,让大模型能调用外部工具执行复杂任务;
  • 代码解释器:解决 “专业计算 / 处理能力弱” 的短板,处理纯文本无法完成的数据分析、代码调试;
  • MCP:解决 “隐私性不足” 的短板,安全对接企业内部私有资源;
  • 协同逻辑:用户需求→联网搜索获取实时 / 多源信息→Function Calling 调用相关工具 / 接口→代码解释器处理复杂计算 / 文件→MCP 调取企业内部数据,最终整合生成精准、贴合场景的答案。

问题 2:启用通义千问 - plus 的联网搜索功能需要哪些关键操作?使用该工具时需注意什么风险?

答案:

  • 关键操作:基于已有智能体项目框架,在构建ApplicationParam参数时,添加enableSearch(true)配置(即传递enable_search: true参数),无需重构其他核心逻辑,复用原有历史消息解析、内容清洗流程即可;
  • 注意风险:联网获取的数据可能存在 “信息污染 / 投毒” 风险,尤其是涉及财务决策、合规审核、个人敏感信息等场景,不能直接采信模型输出结果,需人工二次校验,确保信息的真实性与安全性。

问题 3:Function Calling 与 MCP 的核心区别是什么?分别适用于什么场景?

答案:两者的核心区别在于 “对接对象” 与 “隐私管控”,适用场景明确区分:

  • 核心区别:① 对接对象:Function Calling 主要对接公开外部工具 / API(如天气 API、地图 API、监控系统接口);MCP 主要对接企业内部私有系统 / 数据库(如 CRM、ERP、内部接口文档库);② 隐私管控:Function Calling 侧重 “功能扩展”,隐私管控较弱;MCP 侧重 “数据安全”,具备严格的权限管控机制,避免敏感信息泄露;
  • 适用场景:① Function Calling:面向公开工具调用、多工具联动的场景(如面向 C 端用户的出行推荐、面向开发者的公开接口监控);② MCP:面向企业内部业务的场景(如企业内部智能助手、对接私有数据库的数据分析、查询内部项目文档)。

二、千问通义plus - 代码解释器的使用 总结

文章链接:千问通义plus - 代码解释器的使用-CSDN博客

1. 一段话总结

本文详细介绍了通义千问 plus 代码解释器的使用,其核心是给不擅长精确计算、数据可视化的大模型配 “理科小助手”(Python/Java 编程工具),能自动编写、调试并执行代码完成复杂数据任务;重点实现了本地 Java 代码执行工具,通过定义 Schema 规范、构建工具实例、配置 Jackson 解析器、编写核心runJavaCode方法(含临时文件管理、编译运行、30 秒超时控制、自动清理),整合到现有 “缓存 + Function Calling + 联网搜索” 框架中(与天气工具并列),并通过测试验证:成功执行 “生成 100 个 0-100 随机数、计算均值方差” 的 Java 代码,输出结果为平均值 51.44,全程保障安全与兼容性。

2. 思维导图

3. 详细总结

通义千问 plus 代码解释器(Java 本地执行)使用详细总结

一、概念解析

1.1 核心定义

代码解释器是通义千问 plus Assistant API 预置的插件,专为解决大模型不擅长的精确计算、数据可视化、逻辑运算等任务设计 —— 大模型会自动编写代码,若运行失败则反复调试,直至输出准确结果。

1.2 生活化比喻
角色特点分工
大模型擅长聊天、逻辑分析,类似 “文科生”识别任务需求,编写对应 Java/Python 代码
代码解释器擅长精确计算、代码执行,类似 “理科小助手”编译运行代码,返回结果,自动纠错
1.3 核心作用
  • 补齐大模型短板:解决纯文本回答无法完成的复杂数学运算、数据处理、图表生成等问题;
  • 自动纠错机制:代码运行失败时,大模型会迭代修改代码(如修复语法错误、调整逻辑),直至成功;
  • 降低操作门槛:无需用户手动编写代码,仅需自然语言提问即可获取结果。

二、代码实现

2.1 实现思路
  1. 新增本地 Java 代码执行工具,对齐 Function Calling 规范;
  2. 实现核心能力:临时文件管理、Java 代码编译 / 运行、异常捕获、安全清理;
  3. 整合到现有框架:与天气工具并列,支持大模型自动选择调用;
  4. 强化安全防护:避免恶意代码执行、内存泄漏等风险。
2.2 依赖与配置

无需额外新增核心依赖,仅需确保:

  • 系统 PATH 中配置JDK(支持 javac 编译、java 运行);
  • 现有框架已集成通义千问 SDK、Spring Boot、Function Calling能力。
2.3 关键代码模块
2.3.1 Schema 定义(参数规范)
String javaCodeParamsSchema = "{" + "\"type\":\"object\"," + "\"properties\":{" + "\"code\":{\"type\":\"string\",\"description\":\"需要执行的Java代码,必须包含main方法,仅使用JDK原生类,禁止文件写入/网络请求等危险操作\"}" + "}," + "\"required\":[\"code\"]" + "}";
  • 核心约束:必须传入 code 字段,代码需含 main 方法,仅允许 JDK 原生类,禁用危险操作。
2.3.2 工具构建与注册
FunctionDefinition javaCodeFunction = FunctionDefinition.builder() .name("run_java_code") // 工具唯一标识 .description("当需要执行精确计算、数据处理、逻辑运算等Java代码时调用...") .parameters(JsonUtils.parseString(javaCodeParamsSchema).getAsJsonObject()) .build(); // 加入工具列表(与天气工具并列) List<ToolFunction> toolFunctions = new ArrayList<>(); toolFunctions.add(ToolFunction.builder().function(weatherFunction).build()); toolFunctions.add(ToolFunction.builder().function(javaCodeFunction).build());
2.3.3 Jackson 配置(兼容性优化)
@Configuration public class JacksonConfig { @Bean public ObjectMapper objectMapper(Jackson2ObjectMapperBuilder builder) { ObjectMapper objectMapper = builder.build(); objectMapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_CONTROL_CHARS, true); // 允许未转义控制字符 objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); // 忽略未知字段 return objectMapper; } }
2.3.4 核心方法:runJavaCode(本地编译运行)
步骤关键操作核心细节
1临时目录初始化路径:System.getProperty("java.io.tmpdir") + "/ai_java_code/",自动创建
2随机类名生成格式:TempJavaCode_时间戳_随机数,避免文件冲突
3代码写入临时文件替换原类名为随机类名,编码 UTF-8
4javac 编译命令:javac -encoding UTF-8 文件名,捕获编译输出,超时 30 秒
5java 运行命令:java -cp 临时目录 类名,捕获运行输出,超时 30 秒
6临时文件清理执行后删除.java.class文件,避免残留
2.3.5 整合到流式对话(streamChat)
  1. streamChat方法中,更新工具列表为包含run_java_code的集合;
  2. executeLocalFunction方法中,新增run_java_code分支,调用runJavaCode方法;
  3. 复用原有缓存逻辑、工具调用循环、流式推送机制,无需重构核心流程。
2.4 安全防护措施
防护类型具体措施作用
代码约束仅允许 JDK 原生类,禁止文件写入 / 网络请求防止恶意代码操作本地资源 / 网络
超时控制编译 / 运行超时 30 秒避免代码卡死导致系统资源占用
临时文件清理执行后自动删除临时文件防止磁盘空间溢出,保护数据隐私
参数校验强制 code 字段非空,校验代码格式避免无效请求触发异常

4. 关键问题

了解以下问题,基本上就代表你懂的差不多了

问题 1:通义千问 plus 代码解释器的核心作用是什么?解决了大模型的哪些核心短板?

答案:代码解释器的核心作用是为大模型提供 “精确计算 + 实操执行” 的能力—— 大模型自动编写 Java/Python 代码,由代码解释器在沙箱 / 本地环境编译运行,获取准确结果,且支持自动纠错直至成功。解决的大模型短板:① 不擅长精确数学运算(如均值、方差计算);② 无法完成数据可视化(如生成柱状图);③ 纯文本回答无法处理复杂逻辑运算;④ 缺乏实操执行能力(仅能输出理论,无法落地计算 / 处理任务)。

问题 2:本地 Java 代码执行工具的实现中,关键步骤有哪些?采取了哪些安全防护措施保障系统稳定?

答案:

  • 关键步骤:① 临时目录初始化(自动创建,避免路径错误);② 随机类名生成(防止文件冲突);③ 代码写入与类名替换(适配动态执行);④ javac 编译(捕获编译错误,超时 30 秒);⑤ java 运行(捕获运行输出,超时 30 秒);⑥ 临时文件清理(执行后删除残留文件)。
  • 安全防护措施:① 代码约束(仅允许 JDK 原生类,禁文件写入 / 网络请求);② 超时控制(编译 / 运行各 30 秒,避免资源占用);③ 临时文件自动清理(防止磁盘溢出和数据泄露);④ 参数校验(强制 code 字段非空,过滤无效请求)。

问题 3:代码解释器如何与现有 Function Calling 框架整合?实际测试效果如何?

答案:

  • 整合方式:① 定义run_java_code工具的 Schema(参数规范);② 构建FunctionDefinition实例,加入工具列表(与天气工具并列);③ 在executeLocalFunction中新增分支,关联runJavaCode核心方法;④ 复用原有streamChat的工具调用循环、流式推送、缓存更新逻辑,无需重构框架。
  • 测试效果:成功执行 “生成 100 个 0-100 随机数,计算均值和方差” 的任务 ——① 大模型自动识别任务,调用run_java_code工具;② 代码编译运行无异常,输出结果准确(平均值 51.44,方差 767.7264);③ 全程流式推送,无卡顿,临时文件自动清理,安全无残留;④ 整合后不影响原有天气工具、缓存、联网搜索功能的正常使用。

创作不易,各位靓仔靓女阔以点点关注嘛~(◦˙▽˙◦)

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

评估与信任AI测试结果的4个指标

一、引言:从“能用”到“可信”,AI测试的关键拐点   在软件工程领域,AI正在从辅助工具迈向决策中枢。它可以生成测试用例、优化测试路径、自动修复脚本、分析缺陷趋势,甚至基于自然语言理解直接从需求文档生成完整的测试场景。然而,当AI开始影响测试决策时,一个更深层的…

作者头像 李华
网站建设 2026/1/13 12:38:11

Wan2.2-T2V-A14B如何生成带有UI界面的操作演示视频?

如何用 Wan2.2-T2V-A14B 一键生成带 UI 操作的演示视频&#xff1f;&#x1f680; 你有没有遇到过这种情况&#xff1a;产品刚上线&#xff0c;UI 改了三版&#xff0c;但用户还是不会用&#xff1f;客服每天重复回答“怎么注册”“在哪转账”&#xff0c;而教学视频还停留在上…

作者头像 李华
网站建设 2026/1/9 11:22:17

5个关键步骤彻底解决Super Productivity在Ubuntu 24.10启动失败问题

5个关键步骤彻底解决Super Productivity在Ubuntu 24.10启动失败问题 【免费下载链接】super-productivity Super Productivity is an advanced todo list app with integrated Timeboxing and time tracking capabilities. It also comes with integrations for Jira, Gitlab, …

作者头像 李华
网站建设 2026/1/4 19:15:54

15分钟搭建VMware许可证验证API服务

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个RESTful API服务用于验证VMware16密钥有效性&#xff0c;要求&#xff1a;1. 接收密钥参数 2. 返回验证结果和类型 3. 缓存机制 4. 限流防护 5. Swagger文档。使用FastAPI框…

作者头像 李华
网站建设 2025/12/26 6:02:47

ComfyUI实战:3步构建电商后台管理系统

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个电商后台管理系统原型&#xff0c;包含以下功能模块&#xff1a;1. 用户管理&#xff08;列表、添加、编辑、删除&#xff09;&#xff1b;2. 商品管理&#xff08;分类、上…

作者头像 李华