[add] neo local model support

This commit is contained in:
Max 2023-12-01 00:05:57 +08:00
parent 46b20bb778
commit 59dfe49302
2 changed files with 27 additions and 27 deletions

View file

@ -27,10 +27,10 @@ func NewOpenAI(data []byte) *JSON {
} }
msg := makeMessage() msg := makeMessage()
data = []byte(strings.TrimPrefix(string(data), "data: ")) text := string(data)
data = []byte(strings.TrimPrefix(text, "data: "))
switch { switch {
case strings.Contains(text, `"delta":{`) && strings.Contains(text, `"content":`):
case strings.Contains(string(data), `"delta":{"content"`):
var message openai.Message var message openai.Message
err := jsoniter.Unmarshal(data, &message) err := jsoniter.Unmarshal(data, &message)
if err != nil { if err != nil {
@ -43,12 +43,12 @@ func NewOpenAI(data []byte) *JSON {
} }
break break
case strings.Contains(string(data), `[DONE]`): case strings.Contains(text, `[DONE]`):
msg.Done = true msg.Done = true
break break
default: default:
msg.Error = string(data) msg.Error = text
} }
return &JSON{msg} return &JSON{msg}

View file

@ -257,32 +257,32 @@ func (neo *DSL) Answer(ctx command.Context, question string, answer Answer) erro
return !msg.IsDone() return !msg.IsDone()
case <-ctx.Done(): // case <-ctx.Done():
if err := ctx.Err(); err != nil { // if err := ctx.Err(); err != nil {
message.New().Text(err.Error()).Write(w) // message.New().Text(err.Error()).Write(w)
} // }
if len(errorMsg) > 0 { // if len(errorMsg) > 0 {
var errData openai.ErrorMessage // var errData openai.ErrorMessage
err := jsoniter.Unmarshal(errorMsg, &errData) // err := jsoniter.Unmarshal(errorMsg, &errData)
if err == nil { // if err == nil {
msg := errData.Error.Message // msg := errData.Error.Message
if msg == "" { // if msg == "" {
msg = fmt.Sprintf("OpenAI error: %s", errData.Error.Code) // msg = fmt.Sprintf("OpenAI error: %s", errData.Error.Code)
} // }
message.New().Text(msg).Write(w) // message.New().Text(msg).Write(w)
message.New().Done().Write(w) // message.New().Done().Write(w)
return false // return false
} // }
message.New().Text(string(errorMsg)).Write(w) // message.New().Text(string(errorMsg)).Write(w)
message.New().Done().Write(w) // message.New().Done().Write(w)
return false // return false
} // }
message.New().Done().Write(w) // message.New().Done().Write(w)
return false // return false
} }
}) })