本阶段课程 · 模型 API 与工具调用
API:一次模型请求与响应
用可读的请求结构,说明用户、应用和模型服务分别负责什么。
API 解决的是软件怎样调用另一种能力
API是软件之间约定好的通信接口。一个天气应用可以通过天气API取得预报,一个AI应用也可以通过模型API提交输入并取得生成结果。使用API不一定意味着自己训练或部署模型,可以直接调用服务方已经运行的模型。
你在聊天网页里输入问题时,网页背后的应用已经替你完成了调用。自己开发一个AI功能,就是把“收集输入、发送请求、处理结果”放进自己的产品。对非程序员来说,先理解这三个环节,比先记命令行语法更有帮助。
一次模型调用怎样往返
假设做一个“消息改写器”。用户在页面输入“今天三点前发报告”。应用把这段原文与改写规则打包,发送给模型服务;服务运行模型,返回一段改写结果;应用读取返回内容并显示给用户。
| 参与方 | 负责什么 | 在这个例子里做什么 |
|---|---|---|
| 使用者 | 提供任务与必要材料 | 填入原始消息 |
| 应用 | 组织请求、保存状态、展示结果 | 加上改写规则,向服务发送请求 |
| 模型服务 | 接收调用并运行模型 | 生成礼貌、自然的改写 |
| 应用 | 处理成功或失败 | 显示草稿,或说明调用失败 |
这里有两次网络通信的可能:浏览器与应用后端通信,应用后端再与模型服务通信。许多产品会这样安排,以便保护凭据、控制用量和处理权限。具体架构可以不同,但模型密钥不应该作为公开网页里的普通文本暴露。
请求里通常有什么
下面是教学用的请求结构示意。它采用常见的消息形式帮助阅读,不代表所有服务都接受这些字段,也不能直接当作可运行命令。
{
"model": "所选模型",
"messages": [
{"role": "system", "content": "礼貌改写,只用原有事实。"},
{"role": "user", "content": "今天三点前发报告。"}
]
}model说明希望调用哪个模型。messages包含本次消息;role标出消息来源与用途,content是具体内容。真正发送请求时,还需要正确的服务地址、身份凭据和符合接口要求的其他信息。下一课会详细解释消息角色。
响应里不只有一段文字
成功响应通常会包含生成结果,也可能带有请求编号、结束原因和用量信息。应用需要从结构里提取实际内容,而不是把所有字段直接展示给使用者。失败时可能得到权限、额度、格式或服务错误,而不是模型回答。
在改写例子中,返回文字可能是:“报告方便今天下午三点前发我吗?谢谢!”此时完成的是生成草稿,应用没有因此自动发送消息,收件人也没有因此同意期限。API返回什么能力的结果,就应按那个能力理解。
API Key、模型和额度分别是什么
API Key通常是一种调用凭据,服务用它识别或授权调用方,并关联相应账户与用量。模型是要运行的能力,额度是账户允许的使用范围。拥有一个密钥,并不代表可以免费使用所有模型或访问所有数据。
可视化平台把许多接口细节封装成节点:输入节点收材料,LLM节点调用模型,输出节点显示结果。课后可以用Dify体验这一过程。即使用了节点界面,底层的请求、响应与错误处理仍然存在。
检查一下理解
本节参考与继续阅读
下列章节用于核对概念与机制。本站以中文重新组织讲解,例子和练习为独立编写。
- Hugging Face · 从API与工具构建最小Agent
对应从一次调用到工具执行、结果回传与继续生成的教学顺序;本站用白话伪代码和自写场地示例讲解。
- Dify · 创建一个简单聊天应用
参考 LLM 节点、变量引用和预览方式,练习任务与提示词为本站设计。
可选练习理解一个应用怎样把你的输入交给模型,再把返回文字显示给你。
理解一个应用怎样把你的输入交给模型,再把返回文字显示给你。
这一课可选择在 Dify 中搭建,也可以先沿着步骤读懂。真实搭建需要可用的 Dify 工作区,并按平台说明配置模型提供商;调用可能产生费用。无需把密钥发给 AI。没有这些条件时,用普通 AI 对话完成相同输入输出,再继续下一课,不影响理解。
名字:消息改写器 输入:original_message(原始消息) 处理:改得自然礼貌,保留事实 输出:一段可以人工核对的消息草稿
跟着做一遍
下面的结果是本站编写的对照示例。实际工具的措辞可能不同,按每步的关键条件检查即可。
创建输入,把变量想成空格
在 Dify 的 Studio 中从空白创建 Workflow。给用户输入节点添加文本字段 original_message,显示名称写“原始消息”。本课字段名由我们自己定义。
做完后,展开结果对照
运行时会出现一个让使用者填写原始消息的输入项。它目前还不会改写,因为还没有接处理步骤。
为什么这样做变量就是每次使用时会换的值。这里输入字段只负责收文字,并不具备 AI 能力。
加一个 LLM 节点,填入规则和材料
在流程中添加 LLM 节点并选择已配置的模型。填入下方规则,然后在用户消息位置用变量选择器引用 original_message;不要只打字段名当作正文。
把用户提供的消息改得自然、礼貌。保留日期、数字、人物和原意,不增加背景。只输出改写后的消息正文。
做完后,展开结果对照
LLM节点收到两部分:固定改写规则,以及这一次输入的原始消息。它会把这些内容交给所选模型服务。
为什么这样做LLM是“大语言模型”的缩写。这个节点替你处理发送模型请求的细节,底层通常通过模型API通信。
接上输出,再运行一次
添加 Output 节点,用变量选择器引用 LLM 的文本输出。把输入、LLM、输出连起来,在测试运行中填入下面原文。不同版本的终点可能显示为 Output 或输出。
原始消息:报告怎么还没给我?今天下午三点之前发我。
做完后,展开结果对照
预期得到类似“报告方便今天下午三点前发我吗?谢谢!”的草稿。输入“今天三点”后不应输出昨天或四点。
为什么这样做你现在能分清三处:页面收输入,模型服务生成文字,页面展示返回结果。没有输出节点时,即使模型执行成功,用户也可能看不到结果。
API
软件之间约定好的通信接口;你的应用按要求发送请求,模型服务返回结果。
没做出来?从这里排查
LLM节点提示模型未配置
按Dify模型提供商说明配置你有权使用的服务;暂时不配置也可用聊天工具完成同一练习。
输出为空或把original_message原样打印出来
检查输入变量是否通过选择器引用,以及Output是否引用LLM实际输出。
换一个例子验证
把改写器换成“通知整理器”。
- 输入仍是一段原文。
- 把固定规则改成按时间、地点、报名方式整理。
- 分别测试完整通知与缺少地点的通知,缺失信息应标为未说明。
完成状态仅保存在当前浏览器,可再次点击取消。