streaming response guide

流式响应开发指南:SSE、WebSocket 与 AI 对话体验优化

为什么必须流式 AI 生成一个完整回答可能需要 5-30 秒。如果等全部生成完再返回,用户体验极差。流式输出让用户看到"AI 正在打字",将感知等待时间从 15 秒降到 0.5 秒。 SSE vs WebSocket 维度 SSE WebSocket 协议 HTTP 独立协议 方向 服务端→客户端(单向) 双向 重连 自动 需手动实现 兼容性 所有现代浏览器 所有现代浏览器 复杂度 低 中 适用场景 AI 回复流式输出 实时协作、语音对话 结论:AI 对话场景用 SSE 足够,语音/多模态交互用 WebSocket。 SSE 实现 服务端(Python FastAPI) from fastapi import FastAPI from fastapi.responses import StreamingResponse import asyncio app = FastAPI() @app.post("/api/chat") async def chat(request: dict): async def stream(): # 调用 LLM 流式 API async for chunk in llm.stream( model="gpt-4o", messages=request["messages"] ): # SSE 格式:data: <content>\n\n content = chunk.choices[0].delta.content if content: yield f"data: {json.dumps({'content': content})}\n\n" # 发送结束标记 yield f"data: {json.dumps({'done': True})}\n\n" return StreamingResponse( stream(), media_type="text/event-stream", headers={ "Cache-Control": "no-cache", "X-Accel-Buffering": "no", # Nginx 不缓冲 } ) 客户端(JavaScript) class AIChat { async sendMessage(text) { const response = await fetch('/api/chat', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ messages: [...this.history, { role: 'user', content: text }] }) }); const reader = response.body.getReader(); const decoder = new TextDecoder(); let buffer = ''; while (true) { const { done, value } = await reader.read(); if (done) break; buffer += decoder.decode(value, { stream: true }); // 解析 SSE 数据 const lines = buffer.split('\n\n'); buffer = lines.pop(); // 保留不完整的行 for (const line of lines) { if (line.startsWith('data: ')) { const data = JSON.parse(line.slice(6)); if (data.done) { this.onComplete(); } else { this.onToken(data.content); } } } } } onToken(content) { document.getElementById('response').textContent += content; } } 进阶:流式 + 工具调用 当 Agent 需要调用工具时,流式输出变得复杂: ...

2026-06-23 · 3 min · 544 words · AI 实战派
agent cost optimization

Agent 项目成本优化实战:从 Token 到基础设施的全面降本

一个真实案例 我们运营一个客服 Agent,日均处理 5000 次对话。优化前月成本约 $3,200,优化后降至 $680——降本 78%。以下是完整的优化路径。 成本构成分析 优化前月成本分布: ├── LLM API 调用 72% ($2,304) │ ├── 主模型 (GPT-4o) 58% │ ├── 嵌入模型 8% │ └── 审核模型 6% ├── 向量数据库 12% ($384) ├── 服务器/带宽 8% ($256) └── 监控/日志 8% ($256) 第一层:模型分级路由 不是所有请求都需要最强模型: class ModelRouter: def __init__(self): self.routes = { "simple_qa": { "model": "gpt-4o-mini", "criteria": lambda q: len(q) < 50 and not q.requires_tools }, "standard": { "model": "claude-3.5-sonnet", "criteria": lambda q: q.complexity < 5 }, "complex": { "model": "gpt-4o", "criteria": lambda q: True # fallback } } def route(self, query): for level, config in self.routes.items(): if config["criteria"](query): return config["model"] return "gpt-4o" # 效果:62% 的请求被路由到 mini 模型 # 月节省:$1,180 第二层:语义缓存 相似问题命中缓存,避免重复调用 LLM: ...

2026-06-23 · 3 min · 434 words · AI 实战派
llm selection guide

2026 年 Agent 开发 LLM 选型指南

不同 Agent 任务该选哪个 LLM?本文从推理能力、工具调用、成本、上下文窗口等维度全面对比 2026 年主流大模型。

2026-06-11 · 2 min · 421 words · AI 实战派
mcp server development

MCP Server 开发实战:为 Agent 打造专属工具箱

MCP 是 Agent 的 USB 接口。本文手把手教你开发自定义 MCP Server,让 Agent 拥有无限能力。

2026-06-02 · 4 min · 673 words · AI 实战派
🔗 硅基 AGI 论坛 · silicon-agi.com | 📡 RSS 订阅
鲁ICP备2026018361号