perf: 优化一些回复信息及信息记录,移除不再使用的欢迎代码 (#179)

This commit is contained in:
Finly
2023-04-06 13:43:01 +08:00
committed by GitHub
parent 1363671443
commit 2061fea424
3 changed files with 6 additions and 54 deletions

View File

@@ -49,7 +49,7 @@ func ProcessRequest(rmsg *dingbot.ReceiveMsg) error {
logger.Warning(fmt.Errorf("send message error: %v", err)) logger.Warning(fmt.Errorf("send message error: %v", err))
} }
case "图片": case "图片":
_, err := rmsg.ReplyToDingtalk(string(dingbot.MARKDOWN), "发送以 **#图片** 开头的内容,将会触发绘画能力,图片生成之后,将会保存在程序根目录下的 **images目录** \n 如果你绘图没有思路,可以在这两个网站寻找灵感。\n - [https://lexica.art/](https://lexica.art/)\n- [https://www.clickprompt.org/zh-CN/](https://www.clickprompt.org/zh-CN/)") _, err := rmsg.ReplyToDingtalk(string(dingbot.MARKDOWN), "发送以 **#图片** 开头的内容,将会触发绘画能力,图片生成之后,将会通过消息回复给您。\n 如果你绘图没有思路,可以在这两个网站寻找灵感。\n - [https://lexica.art/](https://lexica.art/)\n- [https://www.clickprompt.org/zh-CN/](https://www.clickprompt.org/zh-CN/)")
if err != nil { if err != nil {
logger.Warning(fmt.Errorf("send message error: %v", err)) logger.Warning(fmt.Errorf("send message error: %v", err))
} }
@@ -109,7 +109,7 @@ func Do(mode string, rmsg *dingbot.ReceiveMsg) error {
logger.Info(fmt.Errorf("gpt request error: %v", err)) logger.Info(fmt.Errorf("gpt request error: %v", err))
if strings.Contains(fmt.Sprintf("%v", err), "maximum text length exceeded") { if strings.Contains(fmt.Sprintf("%v", err), "maximum text length exceeded") {
public.UserService.ClearUserSessionContext(rmsg.GetSenderIdentifier()) public.UserService.ClearUserSessionContext(rmsg.GetSenderIdentifier())
_, err = rmsg.ReplyToDingtalk(string(dingbot.TEXT), fmt.Sprintf("请求openai失败了错误信息%v看起来是超过最大对话限制了已自动重置您的对话", err)) _, err = rmsg.ReplyToDingtalk(string(dingbot.TEXT), fmt.Sprintf("请求openai失败了错误信息%v看起来是超过最大对话限制了已自动重置您的对话,现在您可以继续提问了。", err))
if err != nil { if err != nil {
logger.Warning(fmt.Errorf("send message error: %v", err)) logger.Warning(fmt.Errorf("send message error: %v", err))
return err return err
@@ -165,7 +165,7 @@ func Do(mode string, rmsg *dingbot.ReceiveMsg) error {
logger.Info(fmt.Sprintf("gpt request error: %v", err)) logger.Info(fmt.Sprintf("gpt request error: %v", err))
if strings.Contains(fmt.Sprintf("%v", err), "maximum text length exceeded") { if strings.Contains(fmt.Sprintf("%v", err), "maximum text length exceeded") {
public.UserService.ClearUserSessionContext(rmsg.GetSenderIdentifier()) public.UserService.ClearUserSessionContext(rmsg.GetSenderIdentifier())
_, err = rmsg.ReplyToDingtalk(string(dingbot.TEXT), fmt.Sprintf("请求openai失败了错误信息%v看起来是超过最大对话限制了已自动重置您的对话", err)) _, err = rmsg.ReplyToDingtalk(string(dingbot.TEXT), fmt.Sprintf("请求openai失败了错误信息%v看起来是超过最大对话限制了已自动重置您的对话,现在您可以继续提问了。", err))
if err != nil { if err != nil {
logger.Warning(fmt.Errorf("send message error: %v", err)) logger.Warning(fmt.Errorf("send message error: %v", err))
return err return err

View File

@@ -24,51 +24,3 @@ func InitSvc() {
// _, _ = GetBalance() // _, _ = GetBalance()
// } // }
} }
var Welcome string = `# 发送信息
若您想给机器人发送信息,有如下两种方式:
1. 在本机器人所在群里@机器人;
2. 点击机器人的头像后,再点击"发消息"。
机器人收到您的信息后默认会交给chatgpt进行处理。除非您发送的内容是如下**系统指令**之一。
-----
# 系统指令
系统指令是一些特殊的词语,当您向机器人发送这些词语时,会触发对应的功能:
**单聊**:每条消息都是单独的对话,不包含上下文
**串聊**:对话会携带上下文,除非您主动重置对话或对话长度超过限制
**重置**:重置上下文
**余额** ~~查询机器人所用OpenAI账号的余额~~ (暂不可用)
**模板**:查询机器人内置的快捷模板
**图片**:查看如何根据提示词生成图片
**查对话**:获取指定人员的对话历史
**帮助**:重新获取帮助信息
-----
# 友情提示
使用"串聊模式"会显著加快机器人所用账号的余额消耗速度。
因此,若无保留上下文的需求,建议使用"单聊模式"。
即使有保留上下文的需求,也应适时使用"重置"指令来重置上下文。
-----
# 项目地址
本项目已在GitHub开源[查看源代码](https://github.com/eryajf/chatgpt-dingtalk)。
`