看到chatgpt这么火,我也做了个微信聊天机器人

78次阅读

听说最近 ChatGPT 很火,我也做了个自动跟女朋友聊天的机器人

这两天 ChatGPT 火得很,各种报道 ChatGPT 可以聊天、可以写代码、甚至还写出了毁灭人类计划书!

真是看的我心痒痒啊,但是因为某些原因国内没法试用,加上这两天想讨女朋友开心,所以打算写个 自动回复女朋友消息 的聊天机器人,也算是一举两得。

思路也很简单,首先实现调用微信 api 进行消息接收和回复,其次实现一个简单的聊天机器人,能逗女朋友开心。

微信消息接收和回复

这里使用 lich0821 大佬 WeChatFerry 项目的代码,WeChatFerry通过 hook 的方式拦截了微信消息,并实现了 python/c++/java 的 api 调用。

安装方法是:

  1. 去下载 github 项目中最新的 release 文件,
  2. 解压后按照 readme.md 文档进行安装

注意的点有

  • 微信版本和 python 版本需要匹配
  • 执行 python -m grpc_tools 时填写的路径需要改成绝对路径

聊天机器人

聊天机器人我们也不需要太复杂的逻辑,只要能逗女朋友开心就行了,所以我们自己实现。

逻辑如下

  1. 聊天第一句一般都是问 " 你在干嘛?",我们反客为主,直接将 "?" 替换成 "!",反问对方。
  2. 当对方说 " 我 xxxx 你 " 时,你需要表达跟对方相同的感受,所以需要回复 " 我也 xxxx 你 "。
  3. 当对方进行询问 " 你 xxxx?" 的时候,你需要做出肯定的回复,所以我们回复 " 对啊!"。
  4. 当 " 你 " 和 " 我 " 同时在句子中时, 我们需要传递相同的感受,所以把 " 你 " 改成 " 我 ",把 " 我 " 改成 " 你 "。
  5. 遇到疑问句或感叹句时,我们直接改变句意,把 "!" 和 "?" 互换。
  6. 最后做一个兜底回答,从 " 噢噢 "" 这样啊 "" 好吧 " 中选一个此进行回答。

具体代码如下

 def handle_recv_msg(msg: wcf.WxMsg): def replace(d): for i in range(len(msg_list)): for old, new in d.items(): if msg_list[i] == old: send_msg[i] = new continue if msg.sender != target_wxid: return msg_list = list(msg.content) send_msg = msg_list[:] if " 你在 " == "".join(msg_list[:2]): mapping = {"!": "?", "?": "!", "!": "?", "?": "!"} replace(mapping) elif " 我 " == msg_list[0] and " 你 " in msg_list: mapping = {" 我 ": " 我也 ",} replace(mapping) elif " 你 " == msg_list[0] and ("?" == msg_list[-1] or "?" == msg_list[-1]): send_msg = " 对啊!" elif " 你 " in msg_list and " 我 " in msg_list: mapping = {" 我 ": " 你 ", " 你 ": " 我 "} replace(mapping) elif any([(i in msg_list) for i in ["?", "?", "!", "!"]]): mapping = {"!": "?", "?": "!", "!": "?", "?": "!"} replace(mapping) else: send_msg = [random.choice([" 噢噢 ", " 这样啊 ", " 好吧 "])] time.sleep(0.5) print(" 收到消息:", msg.content, " 发送消息:", "".join(send_msg)) wcf.send_text("".join(send_msg), target_wxid) 

这样我们的微信哄女友开心机器人就写好啦,试一试效果

怎么样,很不错吧,不过这是我实验的一段对话,真正的对话,刚才也试过了,给大家展示一下

额。。。

看来女朋友是门外汉,还需要对女朋友做优化才能让这段程序正确运行啊,有女朋友的小伙伴也赶紧去试试吧。

需要源代码的请在评论区回复噢。

不说了,走廊里太冷了,我去消防通道睡觉去了。

end

本文由 mdnice 多平台发布

原文链接:https://zhuanlan.zhihu.com/p/590108677

正文完
 
不知道
版权声明:本站原创文章,由 不知道 2023-08-16发表,共计1708字。
转载说明:声明:本站内容均来自互联网,归原创作者所有,如有侵权必删除。 本站文章皆由CC-4.0协议发布,如无来源则为原创,转载请注明出处。