Skip to content

Commit 64b37b6

Browse files
author
spark
committed
refactor(data): 优化 OpenAI API 客户端配置并改进流数据处理
- 将请求超时时间从 30秒增加到 60 秒 - 修正流数据的前缀检查,从 "chat data: " 改为 "data: "- 增加对 reasoning_content 的处理逻辑 - 优化数据处理流程,提高错误处理能力
1 parent e81319b commit 64b37b6

File tree

1 file changed

+14
-4
lines changed

1 file changed

+14
-4
lines changed

backend/data/openai_api.go

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ func (o OpenAi) NewChatStream(stock, stockCode string) <-chan string {
130130
client.SetHeader("Authorization", "Bearer "+o.ApiKey)
131131
client.SetHeader("Content-Type", "application/json")
132132
client.SetRetryCount(3)
133-
client.SetTimeout(time.Second * 30)
133+
client.SetTimeout(time.Second * 60)
134134

135135
msg := []map[string]interface{}{
136136
{
@@ -216,7 +216,7 @@ func (o OpenAi) NewChatStream(stock, stockCode string) <-chan string {
216216
for scanner.Scan() {
217217
line := scanner.Text()
218218
logger.SugaredLogger.Infof("Received data: %s", line)
219-
if strings.HasPrefix(line, "chat data: ") {
219+
if strings.HasPrefix(line, "data: ") {
220220
data := strings.TrimPrefix(line, "data: ")
221221
if data == "[DONE]" {
222222
return
@@ -225,17 +225,27 @@ func (o OpenAi) NewChatStream(stock, stockCode string) <-chan string {
225225
var streamResponse struct {
226226
Choices []struct {
227227
Delta struct {
228-
Content string `json:"content"`
228+
Content string `json:"content"`
229+
ReasoningContent string `json:"reasoning_content"`
229230
} `json:"delta"`
230231
} `json:"choices"`
231232
}
232233

233234
if err := json.Unmarshal([]byte(data), &streamResponse); err == nil {
234235
for _, choice := range streamResponse.Choices {
236+
txt := ""
235237
if content := choice.Delta.Content; content != "" {
236-
ch <- content
238+
txt = content
239+
logger.SugaredLogger.Infof("Content data: %s", txt)
240+
}
241+
if reasoningContent := choice.Delta.ReasoningContent; reasoningContent != "" {
242+
txt = reasoningContent
243+
logger.SugaredLogger.Infof("ReasoningContent data: %s", txt)
237244
}
245+
ch <- txt
238246
}
247+
} else {
248+
logger.SugaredLogger.Infof("Stream data error : %s", err.Error())
239249
}
240250
}
241251
}

0 commit comments

Comments
 (0)