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

火山引擎方舟API工具扩展指南

火山引擎方舟API工具扩展指南

目录

  • 火山引擎方舟API工具扩展指南
    • 一、内置垂直工具(官方封装,开箱即用)
      • 1. 图像处理工具(`image_processing`)
      • 2. 私域知识库搜索(`knowledge_base_search`)
      • 3. MCP 工具市场(`mcp_marketplace`)
    • 二、自定义函数(Function Calling)
      • 核心流程
      • 经典示例 1:天气查询
      • 经典示例 2:数据库查询
    • 三、组合使用示例(内置工具 + 自定义函数)

在火山引擎方舟(Volcengine Ark)的 API 中,tools数组除了内置的web_search,还支持内置垂直工具和**自定义函数(Function Calling)**两大扩展方向。以下是具体功能、配置示例及核心价值说明:


一、内置垂直工具(官方封装,开箱即用)

方舟 Responses API 提供了多个预封装的内置工具,无需自行开发逻辑,直接配置即可调用。

1. 图像处理工具(image_processing

用途:对输入图片进行分析、编辑或理解(如 OCR 文字识别、物体检测、图像风格描述等)。
配置示例

data={"model":"doubao-1.5-vision-pro-32k","input":[{"role":"user","content":[{"type":"input_text","text":"识别这张图片里的所有文字"},{"type":"input_image","image_url":"https://example.com/receipt.jpg"}]}],"tools":[{"type":"image_processing","task":"ocr"# 可选:object_detection(物体检测)、image_caption(图像描述)}]}

2. 私域知识库搜索(knowledge_base_search

用途:对接你在火山方舟上传的私有知识库(如企业文档、产品手册、内部FAQ),让模型基于你的专属数据回答问题。
配置示例

data={"model":"doubao-seed-2-0-pro-260215","input":[{"role":"user","content":"我们公司2025年的年假制度是什么?"}],"tools":[{"type":"knowledge_base_search","knowledge_base_id":"kb-1234567890",# 替换为你的知识库ID"top_k":3# 召回最相关的3条文档片段}]}

3. MCP 工具市场(mcp_marketplace

用途:直接调用火山方舟 MCP 市场的垂直工具(如巨量千川数据分析、飞书文档操作、企业ERP查询等),无需自行对接第三方API。
配置示例

data={"model":"doubao-seed-2-0-pro-260215","input":[{"role":"user","content":"帮我查一下我巨量千川账户昨天的消耗和ROI"}],"tools":[{"type":"mcp_marketplace","mcp_tool_id":"mcp-qianchuan-stats",# 替换为市场中的工具ID"auth_token":"your-mcp-auth-token"# 工具授权凭证}]}

二、自定义函数(Function Calling)

你可以通过type: "function"定义任意业务逻辑的工具,模型会自动判断何时调用你的函数,并将结果整合到回答中。

核心流程

  1. tools中定义函数的名称、描述和参数 schema;
  2. 模型判断需要调用时,返回tool_calls字段(包含函数名和参数);
  3. 你的代码执行函数逻辑,将结果通过tool_message传回给模型;
  4. 模型基于函数结果生成最终回答。

经典示例 1:天气查询

importosimportrequestsfromvolcenginesdkarkruntimeimportArk# 1. 定义工具函数(实际业务逻辑)defget_current_weather(location,unit="摄氏度"):"""模拟调用天气API,返回指定地点的天气"""# 这里替换为真实的天气API调用(如和风天气、OpenWeatherMap)weather_data={"北京":{"temp":25,"condition":"晴朗"},"上海":{"temp":22,"condition":"多云"}}city_weather=weather_data.get(location,{"temp":"未知","condition":"未知"})returnf"{location}今天{city_weather['condition']},温度{city_weather['temp']}{unit}。"# 2. 配置 API 请求(包含函数定义)client=Ark(api_key=os.environ.get("ARK_API_KEY"))response=client.responses.create(model="doubao-seed-2-0-pro-260215",input=[{"role":"user","content":"北京今天天气怎么样?"}],tools=[{"type":"function",","function":{"name":"get_current_weather","description":"获取指定城市的当前天气信息","parameters":{"type":"object","properties":{"location":{"type":"string","description":"城市名称,如北京、上海"},"unit":{"type":"string","enum":["摄氏度","华氏度"],"description":"温度单位,默认摄氏度"}},"required":["location"]}}}])# 3. 处理模型的工具调用请求ifresponse.output[0].type=="tool_calls":tool_call=response.output[0].tool_calls[0]# 执行你的函数function_result=get_current_weather(**tool_call.function.arguments)# 4. 将结果传回模型,获取最终回答final_response=client.responses.create(model="doubao-seed-2-0-pro-260215",input=[{"role":"user","content":"北京今天天气怎么样?"},response.output[0],# 模型的 tool_calls 消息{"role":"tool","tool_call_id":tool_call.id,"content":[{"type":"tool_output","output":function_result}]}])print(final_response.output[0].content[0].text)

经典示例 2:数据库查询

tools=[{"type":"function",","function":{"name":"query_user_order","description":"根据用户ID查询其最近的订单信息","parameters":{"type":"object","properties":{"user_id":{"type":"string","description":"用户的唯一ID"},"limit":{"type":"integer","description":"返回订单数量,默认5条","default":5}},"required":["user_id"]}}}]

三、组合使用示例(内置工具 + 自定义函数)

你可以同时配置多个工具,让模型自主判断调用哪个:

data={"model":"doubao-seed-2-0-pro-260215","input":[{"role":"user","content":"帮我分析一下这张订单截图,然后查一下我们公司的退款政策"}],"tools":[{"type":"web_search","max_keyword":2},# 联网搜索通用信息{"type":"image_processing","task":"ocr"},# 识别图片文字{"type":"knowledge_base_search","knowledge_base_id":"kb-company-policies"# 查内部知识库},{"type":"function",","function":{"name":"query_order_status","description":"根据订单号查询物流状态","parameters":{"type":"object","properties":{"order_id":{"type":"string"}},"required":["order_id"]}}}]}
http://www.jsqmd.com/news/750103/

相关文章:

  • 线段树的区间修改和懒标记
  • 从零构建极简静态网站:复古项目www-sacred的现代启示
  • BetterNCM安装器终极指南:一键解锁网易云音乐隐藏功能
  • 基于多目标优化的PC连续刚构桥预应力钢束配束设计【附代码】
  • 第1篇:认识仓颉——搭建开发环境 仓颉原生中文编程
  • 3分钟极速上手:Thorium浏览器让老旧电脑也能流畅上网的秘诀
  • # 造过轮子的人学框架有多快——我自己写完IOC和AOP,Spring就是换个API
  • 迭代与递归
  • 3步解锁QQ音乐加密音频:macOS免费高效转换终极方案
  • HoYo-Glyphs终极指南:11款米哈游游戏字体从安装到创意应用完整教程
  • 具身智能体系统Dugong:从AI推理到实时空间界面的编译与渲染
  • 魔兽争霸3完全优化指南:WarcraftHelper 2025简易配置教程
  • 鸣潮工具箱WaveTools:3步轻松解锁120帧与智能抽卡分析
  • 国家安全部曝光AI“投毒”产业链:你平时用的AI,可能早就被人动了手脚
  • LinkSwift:八大网盘直链解析终极解决方案,彻底告别下载限速烦恼
  • 3个核心场景+5个实战技巧:XHS-Downloader如何帮你高效管理小红书内容资源
  • 2004年的Java项目翻出来了我哭了——一个老程序员的回忆杀
  • 别再傻傻分不清!手机卡顿、电脑慢?可能是你的EMMC、UFS、SSD没选对
  • 内容创作平台集成 Taotoken 实现多模型文本生成与优化
  • AT24C02页写翻车实录:我的参数为什么被覆盖了?详解EEPROM页边界与防覆盖技巧
  • 提升arm7开发效率:快马智能生成常用驱动与模块代码库
  • 5步解锁NVIDIA显卡隐藏性能的完整指南:NVIDIA Profile Inspector实战教程
  • 语音数据集选择与应用实践指南
  • Higgsfield:简化多节点大模型训练的分布式编排框架实战指南
  • 第2篇:数据与类型——仓颉的基础数据类型 仓颉原生中文编程
  • Mac终极音乐解密指南:3步解锁QQ音乐加密文件,实现跨平台自由播放
  • 低代码插件热重载失败?(从py_compile缓存污染到__pycache__权限锁死的完整排障链)
  • Xiaomusic插件架构源码级解析:动态加载与异步事件处理机制深度剖析
  • 别再只会用滤镜了!用Python+OpenCV手把手教你调出专业级照片锐化效果(USM/SM实战)
  • 立即解决!Windows任务栏透明美化神器TranslucentTB全攻略