Notes

进阶交互:流式传输与提示词工程

摘要:在掌握了基础的请求-响应模式后,本章将探讨两个提升 Agent 体验的关键技术:流式传输 (Streaming) 让用户不再枯等加载;提示词工程 (Prompt Engineering) 让模型变得更听话、更聪明。

1. 流式传输 (Streaming)

1.1 为什么需要 Streaming?

大语言模型的生成是逐词 (Token-by-Token) 进行的。如果一个回答有 500 个词,使用普通模式(非流式),用户必须等待整个回答全部生成完毕(可能需要 10 秒以上)才能看到第一个字。

这种体验是灾难性的。

流式传输利用 Server-Sent Events (SSE) 技术,一旦模型生成了第一个词,就立即推送到前端。这就实现了 ChatGPT 那种“打字机”般的流畅体验。

1.2 SSE 协议原理

当你设置 stream: true 时,API 返回的 Content-Type 变为 text/event-stream。 响应体不再是一个巨大的 JSON,而是一系列以 data: 开头的数据块:

data: {"choices": [{"delta": {"content": "Hello"}}]}

data: {"choices": [{"delta": {"content": " world"}}]}

data: {"choices": [{"delta": {"content": "!"}}]}

data: [DONE]

关键点

  • Delta: 注意这里返回的是 delta(增量),而不是完整的 message。你需要自己在客户端拼接这些碎片。
  • DONE: 这是一个特殊的标记,表示传输结束。

2. 提示词工程 (Prompt Engineering)

提示词不仅是“怎么说话”,更是一种对模型思维方式的编程

2.1 基础技巧

  • Zero-shot (零样本): 直接提问。

    "将这句话翻译成法语:Hello World"

  • Few-shot (少样本): 给几个例子,让模型照猫画虎。这是最有效的提升准确率的方法。

    "将中文翻译成英文,参考以下格式: 苹果 -> Apple 香蕉 -> Banana 橘子 -> " (模型回答: Orange)

2.2 思维链 (Chain of Thought, CoT)

让模型在给出答案之前,先展示思考过程。这能显著提升逻辑推理能力(数学、编程)。

普通 Prompt:

"Roger 有 5 个网球,他又买了 2 罐,每罐 3 个。现在他有多少个?"

CoT Prompt:

"Roger 有 5 个网球,他又买了 2 罐,每罐 3 个。现在他有多少个?请一步步思考 (Let's think step by step)。"

模型回答:

"Roger 起初有 5 个球。 2 罐网球,每罐 3 个,意味着 2 * 3 = 6 个球。 5 + 6 = 11。 所以答案是 11。"

2.3 System Prompt 的艺术

System Prompt 是 Agent 的“人设”。好的 System Prompt 包含:

  1. 角色定义: "你是一个资深的 Python 架构师。"
  2. 边界限制: "只回答编程相关问题,如果用户问政治,礼貌拒绝。"
  3. 输出格式: "总是以 Markdown 格式输出代码。"
  4. 风格指导: "语气要幽默,多用 Emoji。"

3. 下一步

掌握了流式传输,我们可以构建实时性极强的应用;掌握了 Prompt Engineering,我们可以让模型处理更复杂的逻辑。

接下来,我们将进入真正的 Agent 核心领域:结构化输出与工具调用 (Function Calling)。那是模型从“聊天机器人”进化为“智能助理”的分水岭。

cd ..