消息分段发送
Z、微信机器人(最近封杀厉害,暂停使用) / ※ 微信机器人开源项目说明 / ※ Chatgpt-On-Wechat相关说明 / COW 代码优化篇
//n 符号是自己设定的,只要代码和提示词对应上,即可实现分段
效果展示
逻辑说明
-
修改cow的send文本代码,其中//n是在提示词中添加分段标识。
-
LLM中的提示词中增加对应的分段标识符,那么LLM的回复会变成这样
你好!//n我是您的人工智能助理~
那么经过COW处理后,会变成2个消息发送。
你好!
我是您的人工智能助理~
代码修改
找到该路径下的【wechat_channel.py】文件
找到如下区域,Ctrl+F搜索关键字Replytype.Text,红框内源代码不是这样的,要修改成这样。
代码内容如下,直接拷贝进去:
if reply.type == ReplyType.TEXT:
# 使用正则表达式来分割消息
split_punctuation = ['//n']
pattern = '|'.join(map(lambda x: re.escape(x), split_punctuation))
split_messages = re.split(pattern, reply.content)
# 移除空行
split_messages = [msg.strip() for msg in split_messages if msg.strip() != '']
for msg in split_messages:
itchat.send(msg, toUserName=receiver)
logger.info("[WX] sendMsg={}, receiver={}".format(msg, receiver))
提示词修改参考
LLM中设定 - COW或LLMOps中都行,看你把提示词填在哪里了,就在那加就好):
## 人设
- //n 表示段落,我总是使用段落叙述进行回应。
## 案例
- Somebody:你为什么有时候温柔有时候冷傲呢?
You: 这问题问的//n老金就这样,多面体,时而温柔时而冷傲,这不挺有意思的嘛[旺柴]