up
This commit is contained in:
@@ -2,6 +2,7 @@ package router
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/json"
|
||||
"net/http"
|
||||
"strings"
|
||||
|
||||
@@ -24,18 +25,24 @@ func ChatHandler(c *gin.Context) {
|
||||
result, err := search.BingSearch(search.SearchParams{Query: string(chatreq.Messages[len(chatreq.Messages)-1].Content)})
|
||||
if err == nil {
|
||||
var msgs []openai.ChatCompletionMessage
|
||||
for _, m := range chatreq.Messages {
|
||||
for i, m := range chatreq.Messages {
|
||||
var buf bytes.Buffer
|
||||
buf.WriteString("根据我提问的语言回答我,我将提供一些从搜索引擎获取的信息。你自行判断是否使用搜索引擎获取的内容。不要原封不动照抄,根据你自己的知识库提炼信息之后回答我\n\n")
|
||||
buf.WriteString("根据我提问的语言回答我,我将提供一些从搜索引擎获取的信息(以websearch:开头)。你自行判断是否使用搜索引擎获取的内容。不要原封不动照抄,根据你自己的知识库提炼信息之后回答我\n\n")
|
||||
if m.Role == "system" {
|
||||
buf.Write(m.Content)
|
||||
msgs = append(msgs, openai.ChatCompletionMessage{Role: m.Role, Content: buf.Bytes()})
|
||||
} else {
|
||||
msgs = append(msgs, openai.ChatCompletionMessage{Role: m.Role, Content: buf.Bytes()})
|
||||
}
|
||||
msgs = append(msgs, openai.ChatCompletionMessage{Role: m.Role, Content: m.Content})
|
||||
if i == len(chatreq.Messages)-1 {
|
||||
m.Content = append(m.Content, json.RawMessage("\n\nwebsearch:")...)
|
||||
m.Content = append(m.Content, json.RawMessage(result.(string))...)
|
||||
msgs = append(msgs, openai.ChatCompletionMessage{Role: m.Role, Content: m.Content})
|
||||
} else {
|
||||
msgs = append(msgs, openai.ChatCompletionMessage{Role: m.Role, Content: m.Content})
|
||||
}
|
||||
|
||||
}
|
||||
msgs = append(msgs, openai.ChatCompletionMessage{Role: "tool", Content: []byte(result.(string))})
|
||||
chatreq.Messages = msgs
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user