From 1284ad9dece6d7ea11f7cd456fa6fa6381bc3743 Mon Sep 17 00:00:00 2001 From: Sakurasan <26715255+Sakurasan@users.noreply.github.com> Date: Wed, 12 Jun 2024 00:50:01 +0800 Subject: [PATCH] up --- router/chat.go | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/router/chat.go b/router/chat.go index ec20464..c11cb27 100644 --- a/router/chat.go +++ b/router/chat.go @@ -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 } }