流式技术实现
要启用类似ChatGPT的打字机效果输出,需:
- 请求参数配置:在JSON请求体中添加
"stream": true
字段 - 客户端处理:使用EventSource或Fetch API的流式读取接口,示例代码:
fetch('/v1/chat/completions', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({stream: true, messages: [...]})
}).then(async res => {
const reader = res.body.getReader()
while(true) {
const {done, value} = await reader.read()
if(done) break
// 处理分块数据
}
}) - 服务端优化:启动时避免使用
--log file
参数(会增加I/O延迟)
技术原理:项目内部使用SSE(Server-Sent Events)协议,每个数据块包含data: [JSON]nn
格式的增量内容。
本答案来源于文章《Gemini-CLI-2-API:将Gemini CLI转为OpenAI兼容的本地API服务》