Skip to content

Commit 92695be

Browse files
committed
docs: fix llm wording issues
Fixes #2880 Fixes #2881
1 parent ee88871 commit 92695be

2 files changed

Lines changed: 3 additions & 3 deletions

File tree

docs/ai/llm-basis/llm-api-engineering.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ HTTP chunked 更底层。很多服务端框架在没有 `Content-Length` 的情
122122

123123
### SSE 协议的事件边界
124124

125-
SSE 在传输层仍是 HTTP,但**应用层是一份 UTF-8 纯文本协议**。每个事件由若干行字段组成,事件之间必须用**空行**结束,也就是连续两个换行符 `\n\n`
125+
SSE 通常通过 HTTP 响应承载,媒体类型是 `text/event-stream`,消息格式是一份 UTF-8 文本事件流。每个事件由若干行字段组成,事件之间用**空行**分隔;实际换行可以是 `\n``\r\n`,所以事件分隔常见写法是 `\n\n``\r\n\r\n`
126126

127127
常用字段如下:
128128

@@ -133,7 +133,7 @@ SSE 在传输层仍是 HTTP,但**应用层是一份 UTF-8 纯文本协议**。
133133
| `id` | 事件序号;配合浏览器重连语义可做断点提示 |
134134
| `retry` | 建议的重连间隔(毫秒) |
135135

136-
**`\n\n` 是事件分隔符**只要在“本应属于同一段模型增量”的字符串里出现了“裸的换行”,就有可能被客户端解析成“上一个事件已结束、下一个事件开始”。这是很多团队在 Demo 里没问题、一上对话界面加 Markdown 或列表就炸裂的根因。
136+
**空行才是事件分隔符**单个换行只是结束当前字段行,不会直接结束事件;真正容易出问题的是业务内容里混入了未转义的空行,或者服务端手写拼接 `data:` 时没有按行拆分,导致客户端把同一段模型增量误解析成多个事件。这也是很多团队在 Demo 里没问题、一上对话界面加 Markdown 或列表就炸裂的根因。
137137

138138
小 G 在[《SpringAI 智能面试平台+RAG 知识库》](https://javaguide.cn/zhuanlan/interview-guide.html)的知识库问答里用的就是 SSE:模型一边生成,浏览器一边打字机展示;链路不长,但协议细节一个不落下。
139139

docs/ai/llm-basis/llm-operation-mechanism.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ head:
3434
理解了自回归生成,后面所有概念都好办了:
3535

3636
- **Token**:模型每一步“补”的文本碎片。
37-
- **上下文窗口**模型在“补”之前能看到多少文本
37+
- **上下文窗口**一次调用里模型可处理的总 Token 上限,系统提示词、历史消息、当前输入和输出预算都会占用
3838
- **Temperature / Top-p**:模型选哪个候选碎片的策略。
3939
- **Max Tokens**:允许模型最多“补”多少步。
4040

0 commit comments

Comments
 (0)