@@ -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