(requestId: string)
| 214 | } |
| 215 | |
| 216 | private createStreamParser(requestId: string): EventSourceParser { |
| 217 | return createParser({ |
| 218 | onEvent: (eventData) => { |
| 219 | if (eventData.data === '[DONE]') { |
| 220 | return |
| 221 | } |
| 222 | |
| 223 | try { |
| 224 | const parsed = JSON.parse(eventData.data) |
| 225 | const delta = parsed.choices?.[0]?.delta |
| 226 | const content = delta?.content |
| 227 | const reasoningContent = |
| 228 | delta?.reasoning_content || |
| 229 | delta?.reasoning || |
| 230 | parsed.reasoning_content || |
| 231 | parsed.reasoning |
| 232 | |
| 233 | if (content) { |
| 234 | this.emitChunk(requestId, content) |
| 235 | } |
| 236 | |
| 237 | if (reasoningContent) { |
| 238 | this.emitReasoning(requestId, reasoningContent) |
| 239 | } |
| 240 | } catch (error) { |
| 241 | console.warn('Failed to parse streaming data:', error) |
| 242 | } |
| 243 | } |
| 244 | }) |
| 245 | } |
| 246 | |
| 247 | private async processStreamResponse( |
| 248 | requestId: string, |
no test coverage detected