在微信公众号中加入ChatGPT聊天的方法

1 介绍

开源项目 "chatgpt-on-wechat" 支持通过微信公众号进行调用,这意味着用户可以在与公众号的交互中体验 ChatGPT。由于服务是部署在远端服务器上的,因此用户只需拥有一部手机,就可以在任何环境下与 ChatGPT 进行交流。例如:


为了实现这一功能,至少需要以下资源:

  • 拥有 OPENAI 账号,并能通过 token 来调用聊天工具。
  • 注册并管理一个微信公众号。
  • 拥有一个配备域名的服务器,或者可以使用托管服务器。

实现这项功能的工作流程可以分为两个主要步骤:

  • 在服务器上部署并配置 chatgpt-on-wechat 服务。
  • 在微信公众号后台设置并链接服务器。

虽然 chatgpt-on-wechat 的开源项目中已经提供了详细的使用指南,但在实际部署过程中,我还是遇到了一些小问题。以下记录了我操作的大致步骤,及注意事项。

chatgpt-on-wechat 帮助文档:https://github.com/zhayujie/chatgpt-on-wechat/blob/master/channel/wechatmp/README.md

2 方法

2.1 服务器端配置

下载配置文件:

$ wget https://open-1317903499.cos.ap-guangzhou.myqcloud.com/docker-compose.yml

修改 yml 文件,我在其中加入了目录映射,以方便后续调试;另外,千万注意映射端口。由于该项目默认以普通聊天模型启动,因此并未对外映射端口。然而,微信公众号的服务模型需要通过 Web 方式提供服务,这就需要端口进行外部映射。

   volumes:
      - /home/ubuntu/wechat/:/opt/wechat/```
   ports:
      - "80:80"

启动镜像

$ su # 切换 root 用户
$ apt-get install docker-compose
$ docker-compose up -d
$ docker images


用 docker images 可以看到 zhayujie/chatgpt-on-wechat 大小为 1.48GB,也不算太大。

进入 docker:

$ docker exec -it chatgpt-on-wechat bash

如果帐号主体为个人,则无法开通微信认证。个人用户在 config.py 中需设置 channel_type 为 wechatmp。

修改 config.json,至少设置以下内容:

"channel_type": "wechatmp",     # 如果通过了微信认证,将"wechatmp"替换为"wechatmp_service",可极大的优化使用体验
"wechatmp_token": "xxxx",       # 微信公众平台的Token
"wechatmp_port": 80,            # 微信公众平台的端口,需要端口转发到80或443
"wechatmp_app_id": "xxxx",      # 微信公众平台的appID
"wechatmp_app_secret": "xxxx",  # 微信公众平台的appsecret
"wechatmp_aes_key": "",         # 微信公众平台的EncodingAESKey,加密模式需要
"single_chat_prefix": [""],     # 推荐设置,任意对话都可以触发回复,不添加前缀
"single_chat_reply_prefix": "", # 推荐设置,回复不设置前缀
"plugin_trigger_prefix": "&",   # 推荐设置,在手机微信客户端中,$%^等符号与中文连在一起时会自动显示一段较大的间隔,用户体验不好。请不要使用管理员指令前缀"#",这会造成未知问题。

设置好之后启动 app.py

2.2 设置公众号

  • 使用浏览器登录微信公众号界面。
  • 在公众号界面,选择左侧的 " 设置与开发 " -> " 基本配置 "。
  • 进行服务器配置的修改。
  • 特别需要注意的是,服务器地址必须加上 /wx,例如:http://xxx.com/wx。
  • 点击“启用”按钮。如果操作反应较慢,没有立即生效,可以稍等一会再刷新。

如果希望提供其他公众号调试功能,可以通过以下路径进行开发调试:公众号界面 -> 开发者工具 -> 在线接口调试工具。

由于我的微信公众号是个人号,因此并未开启客服接口,这意味着公众号无法主动发送消息,只能被动回复。微信官方对被动回复设有 5 秒的时间限制,并且最多只能重试 2 次,这就意味着只有最多 15 秒的自动回复时间窗口。也就是说,如果在 15 秒内 ChatGPT 还没有返回结果,那么就无法对用户回复。

另外,由于对话功能需要使用 token,会产生一定的费用。因此,在我的公众号中,我会在稍微限制一下这项功能后才会开启它。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/336482.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

fabric.js 组件 图片上传裁剪并进行自定义区域标记

目录 0. 前言 1. 安装fabric与引入 2. fabric组件的使用 3. 属性相关设置 4. 初始化加载 4. 方法 5. 全代码 0. 前言 利用fabric组件,实现图片上传、图片”裁剪“、自定义的区域标记一系列操作 先放一张效果图吧👇 1. 安装fabric与引入 npm i …

Flink(十三)【Flink SQL(上)SqlClient、DDL、查询】

前言 最近在假期实训,但是实在水的不行,三天要学完SSM,实在一言难尽,浪费那时间干什么呢。SSM 之前学了一半,等后面忙完了,再去好好重学一遍,毕竟这玩意真是面试必会的东西。 今天开始学习 Flin…

“GPC爬虫池有用吗?

作为光算科技的独有技术,在深入研究谷歌爬虫推出的一种吸引谷歌爬虫的手段 要知道GPC爬虫池是否有用,就要知道谷歌爬虫这一概念,谷歌作为一个搜索引擎,里面有成百上千亿个网站,对于里面的网站内容,自然不可…

虚拟机安装宝塔的坑

问题: 在虚拟机中centos7和centos8中安装宝塔之后,无法访问面板。 解决: 1.先关闭防火墙(如果本机能够ping通相关端口,则不用关闭防火墙) 2.最新的宝塔会自动开启ssl协议,需要手动关闭。…

PostgreSQL 是不是大小写敏感

如果你踩过 MySQL 的大坑的话就知道:MySQL 在 Windows 下不区分大小写,但在 Linux 下默认是区分大小写。 如果你稍加不注意就会出现在本机开发的程序运行一切正常,发布到服务器行就出现表名找不到的问题。 这是我们前一个项目遇到的巨大问题…

【力扣4行代码解题】572另一棵树的子树 | C++

总结:本题可以使用递归和迭代法,但平时还是建议两种方法都掌握,感兴趣的同学可以看看原题。 文章目录 1 题目2 知识点3 代码及解释 1 题目 力扣链接 > 572.另一棵树的子树 给你两棵二叉树 root 和 subRoot 。检验 root 中是否包含和 sub…

探索图像检索:从理论到实战的应用

目录 一、引言二、图像检索技术概述图像检索的基本概念图像检索与文本检索的区别特征提取技术相似度计算索引技术 三、图像检索技术代码示例图像特征提取示例相似度计算索引技术 四、图像搜索流程架构数据采集与预处理特征提取相似度计算与排名结果呈现与优化 五、实际应用图像…

基于Java+SSM志愿者服务管理系统详细设计和实现【附源码】

基于JavaSSM志愿者服务管理系统详细设计和实现【附源码】 🍅 作者主页 央顺技术团队 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 文末获取源码联系方式 📝 🍅 查看下方微信号获取联系方式 承接各种定制系…

线上SQL超时场景分析-MySQL超时之间隙锁

前言 之前遇到过一个由MySQL间隙锁引发线上sql执行超时的场景,记录一下。 背景说明 分布式事务消息表:业务上使用消息表的方式,依赖本地事务,实现了一套分布式事务方案 消息表名:mq_messages 数据量:3000多…

[java基础揉碎]基本数据类型转换

介绍 当java程序在进行赋值或者运算时,精度小的类型自动转换为精度大的数据类型, 这个就是自动类型转换。 数据类型按精度(容量)大小排序为: 自动类型转换注意和细节 1.有多种类型的数据混合运算时,系统首先自动…

【Linux的权限命令详解】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 shell命令以及运行原理 Linux权限的概念 Linux权限管理 一、什么是权限? 二、权限的本质 三、Linux中的用户 四、linux中文件的权限 4.1、文件访问…

【成本价特惠】招募证书代理:工信部、PMP、阿里云、华为等认证,机会难得!

扫码和我联系 亲爱的读者朋友们, 今天,我想和大家分享一个难得的机会。我们目前正在积极招募各类证书的代理,包括工信部的证书、PMP(项目管理专业人士)证书、阿里云证书、华为证书、OCP 证书、CFA 证书等。这些证书在…

C++入门学习(七)整型

整型就是整数类型的数据(-1,0,1等等) 数据类型占用空间取值范围short(短整型)2字节 (-2^15 ~ 2^15-1) 32768~32767 int(整型)4字节(-2^31 ~ 2^31-1)long(长整形) Windows为4字节, Linux为4字节(32位), 8字节(64位) (-2^31 ~ 2^31…

LiteAD对接FusionCompute

2、FA发放云桌面并与FC对接 (1)创建虚拟机模板 (2)创建虚拟机命名规则 (3)创建虚拟机组 (4)创建桌面组 (5)创建域用户和组(就相当于在Microsoft …

基于SpringBoot Vue家政服务预约平台系统

大家好✌!我是Dwzun。很高兴你能来阅读我,我会陆续更新Java后端、前端、数据库、项目案例等相关知识点总结,还为大家分享优质的实战项目,本人在Java项目开发领域有多年的经验,陆续会更新更多优质的Java实战项目&#x…

【linux驱动】详细剖析第一个hello word驱动程序

文章目录 驱动程序的框架驱动程序的使用示例 驱动程序的框架 Linux 驱动的基本框架主要由模块加载函数,模块卸载函数,模块许可证声明,模块参数,模块导出符号,模块作者信息等几部分组成,其中模块参数&#…

C++——vector的使用及其模拟实现

vector的使用及其模拟实现 文章目录 vector的使用及其模拟实现1. vector的使用1.1 构造函数construct1.2 获取当前存储的数据个数size()和最大容量capacity()1.3 访问1.3.1 operator[]运算符重载1.3.2 迭代器访问1.3.3 范围for 1.4 容量相关reserve()和resize()1.5 增&#xff…

【趣味题-04】20240120百鸡百钱(遍历循环排除,类似加减法)

背景需求 题目 5:百鸡百钱 作者:阿夏 时间:2024年1月20日百鸡百钱 公鸡每只 5 元,母鸡每只 3 元,小鸡 3 只一元, 现要求用 100 元钱买 100 只鸡(三种类型的鸡都要买), 问公鸡、母鸡、小鸡各买几…

Oracle 经典练习题 50 题

文章目录 一 CreateTable二 练习题1 查询"01"课程比"02"课程成绩高的学生的信息及课程分数2 查询"01"课程比"02"课程成绩低的学生的信息及课程分数3 查询平均成绩大于等于60分的同学的学生编号和学生姓名和平均成绩4 查询平均成绩小于…

“加密行业迈向上市潮”!全球第二大稳定币发行商,秘密提交IPO申请!

在过去的15年里,虽然加密行业蓬勃发展,但上市公司的数量却相对稀少。然而,随着加密市场在经济走强的背景下出现反弹,今年区块链领域的投资资金和潜在的IPO似乎均有望迎来转机。 高盛预测,2024年下半年IPO活动将更加活跃…