7.1 KiB
7.1 KiB
AI Tool Calling 使用指南
概述
AI Desktop 现已支持完整的 Tool Calling(函数调用)功能!AI 可以自动调用工具来完成复杂任务,如搜索平台内容、获取文章详情等。
🎯 支持的工具
1. search_platform - 搜索平台内容
在指定平台搜索内容,获取相关文章列表。
参数:
platform(string, 必需): 平台名称,目前支持xiaoheihe(小黑盒)query(string, 必需): 搜索关键词
返回:
success(boolean): 是否成功count(number): 结果数量results(array): 搜索结果列表title: 文章标题url: 文章链接author: 作者名称publishTime: 发布时间summary: 摘要commentCount: 评论数likeCount: 点赞数
示例:
用户: 去小黑盒查询三角洲行动的最新更新日志
AI 会自动调用:
{
"platform": "xiaoheihe",
"query": "三角洲行动 更新日志"
}
2. fetch_article - 获取文章详情
获取指定 URL 的文章详细内容。
参数:
url(string, 必需): 文章的完整 URL 地址
返回:
success(boolean): 是否成功article(object): 文章详情title: 标题author: 作者publishTime: 发布时间content: 正文内容tags: 标签列表stats: 统计数据(点赞、收藏、评论数等)topComments: 前5条评论
示例:
用户: 帮我看看这篇文章的详细内容
AI 会自动调用:
{
"url": "https://www.xiaoheihe.cn/article/123456"
}
🚀 使用方式
方式一:自然语言对话(推荐)
直接用自然语言告诉 AI 你想做什么,AI 会自动判断是否需要调用工具。
示例对话:
👤 用户: 去小黑盒搜索一下黑神话悟空的最新攻略
🤖 AI: 🔧 正在调用工具: search_platform
⚙️ 正在执行工具...
✅ 工具执行完成
我为您找到了 15 条关于黑神话悟空的最新攻略:
1. 【黑神话悟空】全Boss打法攻略合集
作者: 游戏大神
发布时间: 2小时前
点赞: 1234, 评论: 567
2. 黑神话悟空隐藏关卡完全指南
...
👤 用户: 帮我看看第一篇文章的详细内容
🤖 AI: 🔧 正在调用工具: fetch_article
⚙️ 正在执行工具...
✅ 工具执行完成
这篇文章详细介绍了黑神话悟空中所有Boss的打法策略:
【文章标题】全Boss打法攻略合集
【作者】游戏大神
【发布时间】2小时前
【正文内容】
第一章:黑风山
1. 黑熊精:
- 阶段一:...
- 阶段二:...
...
方式二:连续对话
AI 可以在一次对话中自动调用多个工具。
👤 用户: 去小黑盒查询三角洲行动的最新版本更新日志,然后告诉我主要更新了什么
🤖 AI:
🔧 正在调用工具: search_platform
⚙️ 正在执行工具...
🔧 正在调用工具: fetch_article
⚙️ 正在执行工具...
✅ 工具执行完成
根据最新的更新日志,三角洲行动 v1.2.0 主要更新内容包括:
1. 新增武器系统
- 新增 5 把新武器
- 优化武器平衡性
2. 地图更新
- 新地图「城市废墟」
- 优化现有地图性能
3. Bug修复
- 修复了 23 个已知问题
- 优化了网络延迟
完整更新日志链接:https://...
💡 支持的使用场景
1. 搜索游戏资讯
- "去小黑盒搜索原神最新活动"
- "查询王者荣耀新赛季更新"
- "搜索黑神话悟空的评测"
2. 获取详细攻略
- "帮我看看这篇攻略的详细内容"
- "获取这个链接的文章内容"
- "这篇文章都说了什么?"
3. 综合查询
- "去小黑盒搜索三角洲行动的更新,然后总结主要内容"
- "查询最新的游戏新闻,帮我挑出最重要的3条"
- "搜索某某游戏的评价,告诉我玩家都在说什么"
🔧 技术实现
架构说明
-
工具定义 (
tools.ts)- 定义所有可用工具的接口和参数
- 实现工具执行器
ToolExecutor
-
AI 服务 (
aiService.ts)chatWithTools: 支持 tool calling 的聊天函数executeToolCalls: 执行工具调用并返回结果- 支持流式响应和工具调用通知
-
界面集成 (
Chat.vue)- 自动检测 AI 的工具调用
- 执行工具并显示进度提示
- 将工具结果返回给 AI 生成最终回复
工作流程
用户输入
↓
发送给 AI (携带工具定义)
↓
AI 分析是否需要调用工具
↓
如果需要: 返回 tool_calls
↓
执行工具调用 (search_platform / fetch_article)
↓
将工具结果添加到对话历史
↓
再次发送给 AI
↓
AI 基于工具结果生成最终回复
↓
显示给用户
📝 添加新工具
如果你想添加新的工具,按照以下步骤:
1. 在 tools.ts 中定义工具
export const availableTools: ToolDefinition[] = [
// ... 现有工具
{
type: 'function',
function: {
name: 'your_tool_name',
description: '工具的详细描述,AI 会根据这个描述判断何时使用',
parameters: {
type: 'object',
properties: {
param1: {
type: 'string',
description: '参数1的描述'
},
param2: {
type: 'number',
description: '参数2的描述'
}
},
required: ['param1']
}
}
}
]
2. 在 ToolExecutor 中实现工具
async execute(toolCall: ToolCall): Promise<ToolResult> {
// ... 现有代码
switch (name) {
case 'your_tool_name':
result = await this.yourToolFunction(args.param1, args.param2)
break
// ...
}
}
private async yourToolFunction(param1: string, param2: number): Promise<any> {
// 实现工具逻辑
// 可以调用 IPC、API 或执行其他操作
return { success: true, data: ... }
}
3. 如果需要新的 IPC 接口
在主进程 (main/index.ts) 中添加:
ipcMain.handle('your-ipc-channel', async (_, args) => {
// 实现功能
return { success: true, ... }
})
⚠️ 注意事项
-
API 兼容性
- 确保使用的 AI 模型支持 Function Calling
- OpenAI GPT-4, GPT-3.5-turbo 1106+ 支持
- DeepSeek Chat 支持
-
工具执行时间
- 搜索和抓取可能需要几秒钟
- 界面会显示进度提示
-
错误处理
- 工具执行失败时会显示错误提示
- AI 会尝试基于错误信息给出建议
-
对话历史
- 工具调用和结果不会显示在对话界面
- 只显示用户消息和 AI 的最终回复
🎉 开始使用
- 确保已在设置中配置 AI 模型(推荐使用支持 Function Calling 的模型)
- 打开对话窗口
- 用自然语言告诉 AI 你想做什么
- AI 会自动判断并调用相应的工具
- 查看执行进度提示和最终结果
就这么简单!🚀