mirror of
https://github.com/ArvinLovegood/go-stock.git
synced 2025-07-19 00:00:09 +08:00
refactor(data): 优化 OpenAI API 客户端配置并改进流数据处理
- 将请求超时时间从 30秒增加到 60 秒 - 修正流数据的前缀检查,从 "chat data: " 改为 "data: "- 增加对 reasoning_content 的处理逻辑 - 优化数据处理流程,提高错误处理能力
This commit is contained in:
parent
e81319bb4f
commit
64b37b687c
@ -130,7 +130,7 @@ func (o OpenAi) NewChatStream(stock, stockCode string) <-chan string {
|
||||
client.SetHeader("Authorization", "Bearer "+o.ApiKey)
|
||||
client.SetHeader("Content-Type", "application/json")
|
||||
client.SetRetryCount(3)
|
||||
client.SetTimeout(time.Second * 30)
|
||||
client.SetTimeout(time.Second * 60)
|
||||
|
||||
msg := []map[string]interface{}{
|
||||
{
|
||||
@ -216,7 +216,7 @@ func (o OpenAi) NewChatStream(stock, stockCode string) <-chan string {
|
||||
for scanner.Scan() {
|
||||
line := scanner.Text()
|
||||
logger.SugaredLogger.Infof("Received data: %s", line)
|
||||
if strings.HasPrefix(line, "chat data: ") {
|
||||
if strings.HasPrefix(line, "data: ") {
|
||||
data := strings.TrimPrefix(line, "data: ")
|
||||
if data == "[DONE]" {
|
||||
return
|
||||
@ -225,17 +225,27 @@ func (o OpenAi) NewChatStream(stock, stockCode string) <-chan string {
|
||||
var streamResponse struct {
|
||||
Choices []struct {
|
||||
Delta struct {
|
||||
Content string `json:"content"`
|
||||
Content string `json:"content"`
|
||||
ReasoningContent string `json:"reasoning_content"`
|
||||
} `json:"delta"`
|
||||
} `json:"choices"`
|
||||
}
|
||||
|
||||
if err := json.Unmarshal([]byte(data), &streamResponse); err == nil {
|
||||
for _, choice := range streamResponse.Choices {
|
||||
txt := ""
|
||||
if content := choice.Delta.Content; content != "" {
|
||||
ch <- content
|
||||
txt = content
|
||||
logger.SugaredLogger.Infof("Content data: %s", txt)
|
||||
}
|
||||
if reasoningContent := choice.Delta.ReasoningContent; reasoningContent != "" {
|
||||
txt = reasoningContent
|
||||
logger.SugaredLogger.Infof("ReasoningContent data: %s", txt)
|
||||
}
|
||||
ch <- txt
|
||||
}
|
||||
} else {
|
||||
logger.SugaredLogger.Infof("Stream data error : %s", err.Error())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user