diff --git a/neo/message/json.go b/neo/message/json.go index 199d2ffa..1f152896 100644 --- a/neo/message/json.go +++ b/neo/message/json.go @@ -27,10 +27,10 @@ func NewOpenAI(data []byte) *JSON { } msg := makeMessage() - data = []byte(strings.TrimPrefix(string(data), "data: ")) + text := string(data) + data = []byte(strings.TrimPrefix(text, "data: ")) switch { - - case strings.Contains(string(data), `"delta":{"content"`): + case strings.Contains(text, `"delta":{`) && strings.Contains(text, `"content":`): var message openai.Message err := jsoniter.Unmarshal(data, &message) if err != nil { @@ -43,12 +43,12 @@ func NewOpenAI(data []byte) *JSON { } break - case strings.Contains(string(data), `[DONE]`): + case strings.Contains(text, `[DONE]`): msg.Done = true break default: - msg.Error = string(data) + msg.Error = text } return &JSON{msg} diff --git a/neo/neo.go b/neo/neo.go index 0d546599..6c8dbc28 100644 --- a/neo/neo.go +++ b/neo/neo.go @@ -257,32 +257,32 @@ func (neo *DSL) Answer(ctx command.Context, question string, answer Answer) erro return !msg.IsDone() - case <-ctx.Done(): - if err := ctx.Err(); err != nil { - message.New().Text(err.Error()).Write(w) - } + // case <-ctx.Done(): + // if err := ctx.Err(); err != nil { + // message.New().Text(err.Error()).Write(w) + // } - if len(errorMsg) > 0 { + // if len(errorMsg) > 0 { - var errData openai.ErrorMessage - err := jsoniter.Unmarshal(errorMsg, &errData) - if err == nil { - msg := errData.Error.Message - if msg == "" { - msg = fmt.Sprintf("OpenAI error: %s", errData.Error.Code) - } - message.New().Text(msg).Write(w) - message.New().Done().Write(w) - return false - } + // var errData openai.ErrorMessage + // err := jsoniter.Unmarshal(errorMsg, &errData) + // if err == nil { + // msg := errData.Error.Message + // if msg == "" { + // msg = fmt.Sprintf("OpenAI error: %s", errData.Error.Code) + // } + // message.New().Text(msg).Write(w) + // message.New().Done().Write(w) + // return false + // } - message.New().Text(string(errorMsg)).Write(w) - message.New().Done().Write(w) - return false - } + // message.New().Text(string(errorMsg)).Write(w) + // message.New().Done().Write(w) + // return false + // } - message.New().Done().Write(w) - return false + // message.New().Done().Write(w) + // return false } })