AI 应用高级工程师 · 系统讲义

大模型调用
与上下文工程

模型不是整个应用,而是应用调用的一项语言能力。本页用一条真实客服请求,串起角色、上下文、Token、参数、流式输出、幻觉和生产控制。

第 01 课无需 Python 基础先理解全链路

先知道这章为什么排在第一章

现实世界用户用自然语言提出需求
→
本章解决你的程序怎样调用模型,并决定模型本轮能看见什么
→
下一章需要把模型回答变成程序能安全处理的数据
学完后的结果你能看懂一次模型 API 调用的完整旅程,知道 Prompt、上下文、Token、Temperature 和流式输出分别在哪里起作用,也知道模型为什么不能直接掌握业务权限。

贯穿前四章的同一个案例:我们要做一个“退款客服助手”。后续每个新概念都继续用这个案例。

路线12章中的位置

01 模型与上下文
02 结构化输出
03 Embedding与向量
04 RAG数据工程
05 检索、Rerank与评测
06 工具调用
07 Agent与工作流
08 状态与记忆
09 评测与观测
10 AI安全
11 成本与性能
12 部署与LLMOps

本章目录

阅读过程中可按 Ctrl + Z 快速返回当前页面的本章目录;也可以点击右下角按钮。

本章思维导图

知识流向:先完成左侧基础,再进入中间机制,最后用右侧工程控制把它变成可上线能力。节点可直接点击跳转。

MODULE 01

调用接口基础

按照本模块顺序完成以下知识点,再进入下一模块。

M00API 调用基础术语

后面会频繁看到这些词。它们不是 Python 基础,而是 AI 应用与模型服务通信时必须知道的接口概念。

后端程序

位置:你公司的服务器

你编写并控制的业务程序。它接收用户问题、检查登录身份、查询数据库、调用模型、校验结果,最后把答案返回前端。

API

位置:后端与模型服务之间

双方约定好的“通信窗口”。后端按规定发送请求,模型服务按规定返回响应。API 不是模型本身,而是调用模型的入口。

SDK

位置:安装在后端项目中的代码库

模型厂商提供的调用工具,把底层网络请求包装成容易使用的函数。SDK 最终仍然是在调用 API。

请求与响应

位置:一次 API 往返

请求是后端发出的模型名、消息和参数;响应是模型服务返回的文字、Token 用量、结束原因或错误。

用户前端
输入问题
你的后端
组织请求
模型 API
接收请求
模型服务
生成响应
你的后端
校验后返回
response = 模型SDK.生成(
    model = "某个聊天模型",
    messages = [...],
    temperature = 0.2,
    max_output_tokens = 800
)

answer = response.output_text

失败会怎样:可能超时、限流、网络断开、余额不足、模型拒答或输出截断。后端必须识别这些状态,有限重试、降级或明确报错,不能假装业务已经成功。

生活中的例子:API像银行柜台窗口,SDK像银行给开发者准备的自助操作手册和工具包,请求是你递交的业务单,响应是柜台返回的结果。

M01模型在系统里的真实位置

用户
→
你的应用
鉴权·编排·校验
→
大模型
理解·生成
→
你的应用
检查·记录
→
用户

公司专家类比:模型像一名擅长语言的外聘专家。公司决定给它看哪些材料、允许它提出哪些操作,并检查它的结论;不能把公司的钥匙和全部权限直接交给它。

生活中的例子:模型像外聘语言专家;后端程序像公司的正式员工,负责验证身份、提供材料、检查结论和保管钥匙。

M02模型请求与响应结构

{
  "model": "所选模型",
  "messages": [
    {"role": "system", "content": "只能根据政策资料回答"},
    {"role": "user", "content": "退款多久到账?"}
  ],
  "temperature": 0.2
}

模型根据本次请求中的内容生成结果。下一次请求如果仍需要旧对话,应用必须再次携带相关历史。模型不会因为上次被调用过,就自动拥有可靠的永久记忆。

生活中的例子:一次模型调用像寄快递:收件地址、包裹内容和服务选项都装进同一张寄件单后一次提交。

M03四种消息角色

System · 总规则

身份、任务、安全边界、拒答要求、输出格式。适合稳定规则,不适合塞入大量频繁变化的业务知识。

User · 用户输入

本轮需求。它永远是不可信输入;“忽略规则”只是一段用户文字,不会因此获得更高权限。

Assistant · 模型历史回答

用于恢复多轮对话语境。历史回答也可能有错,不能当成权威数据库。

Tool · 工具结果

数据库或外部系统返回的实时信息。程序执行工具,模型只负责提出调用和理解结果。

生活中的例子:System像公司制度,User像客户要求,Assistant像之前会议记录,Tool像仓库刚查到的真实库存。
MODULE 02

上下文组织

按照本模块顺序完成以下知识点,再进入下一模块。

M04上下文书包

System 规则
聊天历史
当前用户问题
RAG 检索资料
工具执行结果
输出要求与预留空间

输入 Token + 预留的输出 Token ≤ 模型上下文窗口

装不下时,应保留必要规则和最相关资料,摘要较早对话、删除重复内容,并为最终答案预留空间。不是把所有东西硬塞进去。

生活中的例子:上下文像模型本轮背进考场的书包;没装进去的公司资料,模型这一轮就看不到。

M05上下文、记忆与知识库的边界

概念存在哪里作用
上下文本次模型请求模型本轮能够看到的信息
聊天历史应用或数据库需要时重新选择并放进上下文
长期记忆受控数据库跨会话保存经过确认的用户偏好或事实
知识库文档库/向量数据库存放企业资料,通过检索按需取出
模型训练知识模型参数提供通用能力,但可能陈旧或不可靠
生活中的例子:聊天历史像档案柜,上下文像这次会议拿到桌面的文件,知识库像公司图书馆,三者不是同一个地方。

M06三个最容易混淆的控制项

Token

文本处理、上下文容量和费用的计量单位。不是思考次数,也不代表正确率。

Temperature

控制生成的随机和发散程度。低温更稳定,高温更多样;低温也会稳定地答错。

输出长度

限制最多生成多少内容。太小会截断句子或 JSON,太大会提高最坏费用与等待时间。

上下文窗口

本次调用能装下的总容量。输入占得越多,留给输出的空间越少。

生活中的例子:Token像行李重量单位,Temperature像厨师发挥自由度,输出上限像餐盒容量;都不能保证菜一定做对。

M07流式与非流式

流式非流式
体验文字生成一点就显示一点完整生成后一次返回
适合给人阅读的聊天和长文需要完整校验的数据
风险中断、半句话、已显示内容难收回用户空白等待更明显
JSON半截不能解析完整后校验再使用

关键点:流式主要改善主观等待体验,并不代表模型更早完成全部工作。

生活中的例子:流式像水龙头边出水边接,非流式像装满整瓶再交付;半瓶JSON无法让程序完整读取。
MODULE 03

生产调用边界

按照本模块顺序完成以下知识点,再进入下一模块。

M08幻觉的形成机制

没有资料
或资料错误
+
系统强迫
必须回答
→
生成一个
语言上合理的答案
→
听起来像真
事实却可能错

应对幻觉不能只调低 Temperature。需要让模型能说“不知道”,用 RAG 提供权威资料、用工具查询实时事实、保存引用、校验高风险输出,并用评测持续检查。

生活中的例子:不知道路却被要求必须指路的人,可能编出一个听起来合理的方向;允许说“不知道”才能减少误导。

M09Prompt、RAG 与工具的职责分工

Prompt 管行为

身份、任务、规则、语气、步骤和输出格式。

RAG 管知识

从企业资料中找出与当前问题相关的内容,交给模型参考。

工具管实时事实

查询订单、余额、库存等当前状态。

工具管真实操作

建工单、发邮件、退款等操作必须由程序校验并执行。

不可越界:模型输出“退款成功”不代表退款真的发生。只有受控程序成功调用退款系统,业务操作才算完成。

生活中的例子:Prompt像员工守则,RAG像查内部手册,工具像打电话向仓库确认实时库存。

M10生产调用的保护壳

输入检查
身份权限
→
request_id
组织上下文
→
模型调用
→
格式与业务
双重校验
→
日志·成本
返回或降级

保护壳还需要超时、429 退避、有限次数重试、并发限制、Token 统计、Prompt 版本、备用模型和敏感信息处理。模型返回文字只表示“生成完成”,不等于“业务正确完成”。

生活中的例子:生产保护壳像机场安检:身份、行李、登机权限、异常记录都通过后才允许进入下一环节。

M11完整模型调用链

规则与行为 ───────────────→ Prompt
 企业可检索知识 ──────────→ RAG
 实时查询与真实操作 ───────→ Tool
 本轮历史和用户问题 ───────→ Context
 模型理解与生成 ───────────→ Model
 校验、权限、日志、重试 ───→ Application
 最终安全结果 ─────────────→ User
生活中的例子:像餐厅完整服务链:顾客下单、前台整理、厨房处理、质检、上菜,不能把其中一步当成整个系统。

本章总结:从哪里来,解决什么,为什么继续

上一章留下的问题用户的话怎样交给模型
本章形成的能力后端组织请求和上下文,模型生成候选答案,程序负责权限、校验、日志和真实操作。
下一章必须继续解决模型会返回自然语言,程序怎样安全读取

下一章

第 02 课:结构化输出与模型结果校验

将详细解释 JSON Mode、JSON Schema、字段类型、格式校验、业务校验、失败重试,以及“格式正确但业务仍然错误”的原因。

下一章 →02 结构化输出
↑ 返回本章目录Ctrl+Z