前言

最近chatGPT可谓是火的一发不可收拾,从圈内火到圈外。在人工智能领域,Ai已经是一个屡见不鲜的东西了,为什么这次openAi推出的chatGPT却异常的受人欢迎?其实这还得益于GPT模型。

那么什么是GPT模型?我们可以看一下chatGPT自己的回答:

GPT(Generative Pre-trained Transformer)是一种基于变换器的语言模型,用于自然语言处理(NLP)的任务,如文本生成,语义分析和机器翻译等。GPT模型基于大型语料库预先训练,它使用词嵌入,多层变换器和编码器/解码器来构建模型,以便在给定上下文中进行有意义的文本生成。

其实从使用层面来说,大可不必去深入这个AI的原理,原理层面的深入理解,这并不适合每一个人。

chatGPT出世以来,我就第一时间体验了一把,确实爽歪歪没得说。现在这个风口也正处于顶峰,但对于大部分国内用户来说,想要用上chatGPT还是有一些门槛的。所以本着大公无私,大爱至上的原则,我也是在第一时间发布了关于如何使用ChatGPT的文章,好东西要大家分享嘛!

由于这期的内容主要讲解一下如何将这大智近妖的AI接入到我们的微信&微信群,所以如果你还没有一个OpenAi账号的话,建议参考下我的往期文章:最近很火的chatGPT怎么玩?

接入准备

本次要讲的接入方法相对比较简单,目前国内外已经有很多人在很快时间将chatGPT的官方API以开源项目的形式发布在了GitHub,所以这次就是基于其中一个开源项目作的部署教程。

  • 开源项目地址:GitHub - zhayujie/chatgpt-on-wechat: Wechat robot based on ChatGPT, which using OpenAI api and itchat library. 使用ChatGPT搭建微信聊天机器人,基于GPT3.5 API和itchat实现
  • openAI官网:https://platform.openai.com/
  • Linux的基本操作
  • git基本操作
  • 一个可以使用的openAI账户
  • 电脑和手(可以不带脑子,∵这没什么技术难度)

开始教程

其实这个开源项目本身也是提供了部署文档的,所以要我说,如果你觉得自己可以,建议直接传送到项目官方文档。

打开项目地址,项目提供了多种部署方式,为了方便,这里选择第一章方式,也就是使用Docker容器部署,这也是项目推荐的部署方式。至于部署的环境,你们可以自己选择,我这里使用的是Ubuntu作为演示。(注意,为了保证能够连接openAI的服务器,建议使用海外服务器或者为服务器施加咒语: 巴啦啦能量,科学上网....魔法)至于如何科学上网,这里不作探究,这个问题得你自己解决。

步骤一览

# 克隆项目
git clone https://github.com/zhayujie/chatgpt-on-wechat
cd chatgpt-on-wechat/
# 安装依赖
pip3 install itchat-uos==1.5.0.dev0
pip3 install --upgrade openai

复制

上面这段直接从官网搬过来的,感觉没什么理解上的难度,直接用就是了。

创建相关文件夹

打开你的服务器,,使用下面得命令创建一系列文件夹,备用。

# 创建项目文件夹chat
mkdir chat
# 接入chat文件夹,创建chatgpt-on-wechat以及config.yaml文件夹
cd chat
mkdir chatgpt-on-wechat
mkdir config.yaml

复制

修改并添加配置文件

# config.json文件内容示例
{ "open_ai_api_key": "YOUR API KEY"                           # 填入上面创建的 OpenAI API KEY"single_chat_prefix": ["bot", "@bot"],                      # 私聊时文本需要包含该前缀才能触发机器人回复"single_chat_reply_prefix": "[bot] ",                       # 私聊时自动回复的前缀,用于区分真人"group_chat_prefix": ["@bot"],                              # 群聊时包含该前缀则会触发机器人回复"group_name_white_list": ["ChatGPT测试群", "ChatGPT测试群2"], # 开启自动回复的群名称列表"image_create_prefix": ["画", "看", "找"],                   # 开启图片回复的前缀"conversation_max_tokens": 1000,                            # 支持上下文记忆的最多字符数"character_desc": "你是ChatGPT, 一个由OpenAI训练的大型语言模型, 你旨在回答并解决人们的任何问题,并且可以使用多种语言与人交流。"  # 人格描述
}

复制

配置说明:

1.个人聊天

  • 个人聊天中,需要以 "bot"或"@bot" 为开头的内容触发机器人,对应配置项 single_chat_prefix (如果不需要以前缀触发可以填写 "single_chat_prefix": [""])
  • 机器人回复的内容会以 "[bot] " 作为前缀, 以区分真人,对应的配置项为 single_chat_reply_prefix (如果不需要前缀可以填写 "single_chat_reply_prefix": "")

2.群组聊天

  • 群组聊天中,群名称需配置在 group_name_white_list 中才能开启群聊自动回复。如果想对所有群聊生效,可以直接填写 "group_name_white_list": ["ALL_GROUP"]
  • 默认只要被人 @ 就会触发机器人自动回复;另外群聊天中只要检测到以 "@bot" 开头的内容,同样会自动回复(方便自己触发),这对应配置项 group_chat_prefix
  • 可选配置: group_name_keyword_white_list配置项支持模糊匹配群名称,group_chat_keyword配置项则支持模糊匹配群消息内容,用法与上述两个配置项相同。

3.如何获取open_ai_api_key

直达地址https://platform.openai.com/account/api-keys

注意我用的是vim编辑器,如果那也是一样,那么接入文件之后使用i接入编辑模式,编辑结束之后按下Esc再按下:wq保存并退出编辑。

启动服务,检查结果

# 本地测试运行
python3 app.py
# 服务器永久运行
touch nohup.out                                   # 首次运行需要新建日志文件
nohup python3 app.py & tail -f nohup.out          # 在后台运行程序并通过日志输出二维码

复制

扫码登录,开始聊骚(不是)

执行上面的启动命令之后,服务器会以日志形式输出二维码,用微信扫码登录即可。

如果扫码登录之后出现下面的日志信息,说明登录成功,可以开始给登录该账号的微信聊天了,这个微信此时此刻,就是一个chatGPT

实聊截图

私聊

群聊

常见问题

作为贴心小棉袄,也是把FAQ也贴一下,部署过程中如果出问题,请对症下药。

1.OpenAI官网注册提示 Not avaliable

一般是vpn未生效,注意地区要选择韩国、美国等,如果切换几个地区都不行就试试清除浏览器缓存,或是用无痕页面打开。

2.项目启动报错SSL连接失败

During handling of the above exception, another exception occurred:
requests.exceptions.ConnectTimeout: HTTPSConnectionPool(host='webpush.wx.qq.com', port=443): Max retries exceeded with url:
you can't get access to internet or wechat domain, so exit.

复制

可能有两个原因:

  1. 网络问题,用浏览器打开网页微信 看看能否能访问,检查下电脑是否挂了vpn,如果是的要关掉后再登录。
  2. Python版本过高 (3.10 或 3.11),建议使用 3.7.1 ~ 3.9 版本的Python

3.登录报错XML解析失败

expatbuilder.py", line 223, in parseStringparser.Parse(string, True)
xml.parsers.expat.ExpatError: mismatched tag: line 64, column 4

复制

检查是否安装了 itchat-uos,以及版本是否为 1.5.0.dev0

4.登录报错 KeyError:'wxsid'

login.py", line 183, in process_login_infocore.loginInfo['wxsid'] = core.loginInfo['BaseRequest']['Sid'] = cookies["wxsid"]
KeyError: 'wxsid'

复制

一般原因为使用了itchat且无法登录网页版微信,解决方法是先卸载itchat,然后安装itchat-uos 1.5.0.dev0版本。

5.登录报错 IndexError: list index out of range

login.py", line 197, in process_login_info
skey = re.findall('(.*?)', r.text, re.S)[0]
IndexError: list index out of range

复制

一般原因是微信没有实名认证,前往支付板块进行实名认证后再登录。

6.登录超时二维码刷新Log in timeout

Log in time out, reloading QR code.

复制

这种情况多发生于linux服务器上,原因是手机扫码后有异地登录验证,会等待5s,而此时itchat判断登录超时,又刷新了二维码,导致一直登录不上。 解决办法是修改 itchatlogin.py 源码,详细步骤参考

7.登录成功但无法触发自动回复

一般原因是没有收到触发自动回复的文本内容,检查下config.json中的配置,个人聊天需发送以single_chat_prefix配置为开头的内容 (自身发送也可触发);群组聊天需发送以 group_chat_prefix配置中 为开头的内容,或被 @ 也会直接触发。 同时群名称需要在 group_name_white_list 中配置。

ChatGPT|微信快速接入ChatGPT相关推荐

  1. 爆火的ChatGPT接入微信教程——实现ChatGPT自动聊天

    当前ChatGPT是一个爆火的项目,近来浏览 Github 的时候,发现一个好玩的项目:微信接入ChatGPT,利用ChatGPT的对话能力,实现微信的自动聊天回复. 这个项目实现了许多有趣的功能,包 ...

  2. 基于python实现微信接入ChatGpt进行自动回复

    基于python实现微信接入ChatGpt进行自动回复 教程说明 下载和使用python库 如何下载python库 如何使用python库 导入python库 chatgpt部分 申请openai的k ...

  3. 微信公众号如何接入ChatGPT机器人

    不难,代码总共也就25行,大致逻辑如下. 总共分为是下面两步 文章目录 在云服务器上部署自定义消息处理服务 微信公众号配置自己的消息处理服务器 在云服务器上部署自定义消息处理服务 这里需要我们自定义来 ...

  4. 无需翻墙,快速接入免费网页版 ChatGPT 到 Java 应用程序中

    ​ 这几天用使用 Java 开发一个机器人,想接入 ChatGPT,但是自己又没钱用 key,又懒得搭梯子,自然地就想到去社区看看有没有逆向工程版本,这一看,社区的力量果然强大,成功找到一个逆向版框架 ...

  5. ChatGPT 微信机器人原理解析(二):Wechaty

    本文首发于我的"职场圈"知识星球: 本文是 GPT 系列文章的第 7 篇付费文章.之前的 6 篇付费文章为: 手把手带你搭建 ChatGPT 微信机器人! 把 ChatGPT 微信 ...

  6. CVPR2023论文速递(2023.3.23)!已接入ChatGPT总结!共26篇!

    整理:AI算法与图像处理 CVPR2023论文和代码整理:https://github.com/DWCTOD/CVPR2023-Papers-with-Code-Demo 欢迎关注公众号 AI算法与图 ...

  7. 2023最新!QQ接入ChatGpt!!!保姆级教程

    直接先上gitee!!! 基于go-cqhttp的qqbot: java实现基于cqhttp,ws连接 由于当前chatgpt热度不断,网上众多的基于chatgpt提供的api做到chat网站层出不穷 ...

  8. 飞书接入ChatGPT - 将ChatGPT集成到飞书机器人,直接拉满效率

    文章目录 前言 环境列表 视频教程 1.飞书设置 2.克隆feishu-chatgpt项目 3.配置config.yaml文件 4.运行feishu-chatgpt项目 5.安装cpolar内网穿透 ...

  9. 快速接入 微信微博QQ钉钉 原生登录分享

    使用 微博.QQ.微信.钉钉 原生 SDK 接入,提供这些平台的登录.分享功能支持.针对业务逻辑对各个平台的接口进行封装,对外提供一致的表现,在减轻接入压力的同时,又能获得原生 SDK 最大的灵活性. ...

最新文章

  1. Redis 笔记(13)— scan 和 keys 寻找特定前缀key 字段(命令格式、使用示例、定位大key)
  2. get/post时中文乱码问题的解决办法
  3. 计算机教室怎样自动批量修改ip,批量设置IP地址和计算机名
  4. 部署和调优 1.5 vsftp部署和优化-1
  5. [C#]WinFrom中的DataGrid单击选择行
  6. Code Review 与 结对编程
  7. 蓝牙条码扫描枪如何选购
  8. 7款堪称神器的黑科技App,每一款都是黑科技十足!
  9. Java工作流有哪些?如何快速掌握Java技术
  10. dbfs和dbm的换算_dBm和dBV是怎么换算的,最好是有公式,还有是dBm,dBV,dBA,dB是什么单位?...
  11. 颜值评分,图像识别,植物、动物、车型、菜品、logo识别
  12. 怎样恢复误删计算机管理员,请问误删了系统管理员的一个帐户,怎样恢复?
  13. 惰性学习法与kNN分类
  14. 实例分割新作——Instances as Queries
  15. 【Shell案例】【for循环、seq生成】3、输出7的倍数
  16. 计算机毕业设计JAVA项目实训管理系统设计与实现mybatis+源码+调试部署+系统+数据库+lw
  17. php实现的几种基本算法
  18. [译] 揭开 ARIA 的神秘面纱
  19. 谷歌AI发展史:“量子霸权”将人类推进计算的火箭时代!
  20. Qt图片绘图类 QPixmap

热门文章

  1. 网络教育计算机和英语难度怎样,网络教育统考大学英语b难吗?
  2. 云和恩墨校园猎手招募令
  3. Docker 下 jitsi-meet 视频服务器 安装部署
  4. 微信小程序分析送积分功能如何实现_微信积分小程序特色功能——积分营销
  5. 企业远程视频会议系统EasyRTC进入直播间后遇到无法播放及黑屏问题解决
  6. PHP导入Excel文件后缀xlsx与xls的处理问题
  7. 使用hutool的导出Excel后缀xlsx
  8. allegro 警告怎么要怎么做呢进入光绘界面提示artwork will be rounder down because
  9. 共享一个计算属相年份的咚咚-----javascript 代码
  10. 电脑右键文件夹,一直转圈圈卡死,假死机状态解决方案!