From d6c1f3d4a7f7283d19e4bed700a01fac7782d90b Mon Sep 17 00:00:00 2001 From: Zhang Minghan Date: Thu, 10 Aug 2023 23:27:50 +0800 Subject: [PATCH] update web searching feature --- api/utils.go | 16 +++++++--------- utils/base.go | 7 +++++++ 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/api/utils.go b/api/utils.go index ee2cea2..62740ca 100644 --- a/api/utils.go +++ b/api/utils.go @@ -29,10 +29,10 @@ func GetRandomKey(apikey string) string { } func StringCleaner(content string) string { - for _, replacer := range []string{",", "、", ",", "。", ":", ":", ";", ";", "!", "!", "?", "?", "(", ")", "(", ")"} { + for _, replacer := range []string{",", "、", ",", "。", ":", ":", ";", ";", "!", "!", "?", "?", "(", ")", "(", ")", "关键字"} { content = strings.ReplaceAll(content, replacer, " ") } - return content + return strings.TrimSpace(content) } func SearchWeb(message []types.ChatGPTMessage) string { @@ -46,14 +46,12 @@ func SearchWeb(message []types.ChatGPTMessage) string { return "" } + source = utils.GetLatestSegment(source, 3) keyword, _ := GetChatGPTResponse([]types.ChatGPTMessage{{ - Role: "system", - Content: "在接下来的对话中,不要回答问题,你需要总结接下来的对话中出现的内容," + - "然后用关键字和空格分词,输出精简,请不要输出冗余内容," + - "不能出现逗号顿号等特殊字符,仅回答出现的关键词。", - }, { - Role: "user", - Content: strings.Join(source, " "), + Role: "user", + Content: fmt.Sprintf("你是一个AI助手,我将你用来总结用户输入的内容并输出到bing搜索引擎上,"+ + "请总结关键字,不要输出其他内容,不能输出特殊字符:\n%s", strings.Join(source, " ")), }}, 40) + return StringCleaner(keyword) } diff --git a/utils/base.go b/utils/base.go index 337434a..52c2329 100644 --- a/utils/base.go +++ b/utils/base.go @@ -64,3 +64,10 @@ func UnmarshalJson[T any](value string) T { return res } } + +func GetLatestSegment[T any](arr []T, length int) []T { + if length > len(arr) { + return arr + } + return arr[len(arr)-length:] +}