Docs · App Dev Guide
大模型应用开发
从 Prompt 工程到 AI Agent,一站式覆盖大模型应用开发全链路 —— 让你能在 1 周内跑出生产级 MVP。
Prompt · 指令模型 vs 推理模型
大模型应用开发里,模型不再只是「选一个最强的」。更常见的做法是按任务路由:快任务用低延迟模型,复杂任务用推理模型,图片/语音任务用多模态模型,批量任务用低成本模型。
这一章不追逐某个固定模型名,而是教你判断:这个任务该用哪类模型,以及 prompt 应该怎么写。
四类常见模型
| 类型 | 典型能力 | 适合任务 | Prompt 风格 |
|---|---|---|---|
| 指令模型 | 对话、总结、抽取、改写、普通代码 | 客服、内容生成、RAG 回答、简单工具调用 | 指令清晰、上下文充分、格式明确 |
| 推理模型 | 数学、复杂代码、长程规划、逻辑推断 | 复杂分析、算法、疑难排错、关键决策 | 少规定步骤,给目标、约束和验收标准 |
| 多模态模型 | 图像、表格、音频、视频理解 | PDF 图表、截图问答、语音助手、视觉质检 | 说明输入对象、关注区域、输出结构 |
| 低成本/小模型 | 分类、路由、改写、召回前处理 | 意图识别、query rewrite、是否需要检索 | 短 prompt、强 schema、低 token |
生产系统通常会组合这些模型,而不是让一个模型包打天下。
指令模型的 Prompt 写法
指令模型默认擅长听清楚任务并稳定输出。你要做的是把任务边界讲明白。
你是资深 Python 工程师。
任务:审查下面代码的安全风险。
关注点:
1. SQL 注入
2. Secret 硬编码
3. 不安全的文件读写
4. 第三方依赖风险
输出格式:
- 用 Markdown 表格
- 每条问题包含:风险等级、位置、原因、修复建议
代码:
{code}
适合场景:
- 普通问答、客服、摘要、翻译
- 信息抽取、分类、结构化输出
- RAG 基于材料回答
- 简单 Function Call 决策
推理模型的 Prompt 写法
推理模型已经会在内部做更深的搜索和权衡。不要把每一步推理路径写死,否则可能限制模型。
反模式:
你必须先列出 10 个原因,再逐个证明,再用第三步的结论推导第四步...
更推荐:
定位这个并发 bug 的根因。
已知现象:
- 只有高并发下出现
- 日志显示偶发重复扣款
- 数据库使用乐观锁
要求:
- 给出最可能的 3 个根因
- 每个根因说明验证方法
- 最后给出优先排查顺序
适合场景:
- 多步逻辑推理
- 复杂代码 review
- 算法设计与性能权衡
- 规划类任务
- 高风险决策前的分析
多模态模型的 Prompt 写法
多模态任务的关键不是「请看图」,而是告诉模型看哪里、输出什么。
分析这张系统架构图。
重点:
1. 识别所有服务节点
2. 找出数据流向
3. 标注可能的单点故障
4. 用 Mermaid 输出架构关系
不要描述颜色和装饰元素,除非它们承载架构信息。
适合场景:
- PDF 图表解析
- 网页截图审查
- UI 走查
- 票据、表格、合同图片理解
- 语音和实时交互
小模型的价值
小模型不是「弱模型」,而是系统里的低成本组件。很多任务不需要强推理:
| 任务 | 推荐用法 |
|---|---|
| 意图分类 | 小模型 + 固定 label schema |
| Query 改写 | 小模型生成 2-3 个候选查询 |
| 是否需要检索 | 小模型判断 yes/no |
| 安全预检 | 小模型先做粗筛,高风险再升级 |
| 路由 | 小模型决定下一步用 RAG、工具还是人工 |
把这些轻任务交给小模型,通常能显著降低成本和延迟。
模型路由模式
一个常见生产架构:
def route_task(task):
if task.has_image or task.has_audio:
return "multimodal"
if task.requires_deep_reasoning:
return "reasoning"
if task.is_classification_or_routing:
return "small"
return "instruct"
实际系统里,这个路由可以由规则、小模型或混合策略完成。
选择模型的 7 个维度
| 维度 | 要问的问题 |
|---|---|
| 质量 | 这个任务真正的错误代价是什么? |
| 延迟 | 用户能等 1 秒、10 秒,还是可以异步处理? |
| 成本 | 单次调用成本和日调用量相乘是否可接受? |
| 上下文 | 需要 8K、128K、1M,还是应该改用 RAG? |
| 工具能力 | 是否稳定支持 Function Call、并行工具、结构化输出? |
| 多模态 | 是否需要读图、听音频、看视频、操作界面? |
| 合规 | 数据能否出境?是否需要私有化或本地模型? |
不要写死价格和型号
模型名、上下文长度、价格、限速都会变。文档和代码里建议这样做:
LLM_MODEL=...
REASONING_MODEL=...
SMALL_MODEL=...
EMBEDDING_MODEL=...
model = os.getenv("LLM_MODEL")
reasoning_model = os.getenv("REASONING_MODEL")
在团队文档里保留一个「模型选型快照」即可,标清更新时间和来源链接。教程正文只讲选型原则。
什么时候升级到推理模型
先问 4 个问题:
- 普通指令模型是否已经失败,并且失败原因是推理不足?
- 任务是否需要多步权衡,而不是简单读材料或改写?
- 更高延迟和成本是否被业务价值覆盖?
- 评测集是否能证明升级后真的变好?
如果答案不是明确的 yes,先优化上下文、schema、RAG 和工具结果,再考虑换推理模型。
总结
| 场景 | 默认选择 |
|---|---|
| 客服、摘要、RAG 问答 | 指令模型 |
| 数学、复杂代码、疑难分析 | 推理模型 |
| 图片、表格、语音、截图 | 多模态模型 |
| 分类、路由、改写、预检 | 小模型 |
| 大规模批处理 | 低成本模型 + Batch |
经验法则:先用便宜、快、稳定的模型跑通闭环;只有评测证明需要时,再升级到更强模型。
下一节:Prompt 工程化 —— 把 prompt、schema、评测集都当代码管理。