在微信公众号中加入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,会产生一定的费用。因此,在我的公众号中,我会在稍微限制一下这项功能后才会开启它。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux下vsc的自动切换输入法解决方案

前言 个人使用的是Linux开发加上vsc编辑器,这两个东西一加中国开发者大致上就消失不见了,眼馋idea那个Smartinput很久了,赶上放假了,有空搞搞,如果后期有心情会做的通用点 安装 商店搜索SmartInputLinux安装 使用…

链表回文结构

链表回文结构 编写一个函数,检查输入的链表是否是回文的。 示例 1: 输入: 1->2 输出: false 示例 2: 输入: 1->2->2->1 输出: true 链表的回文结构,应该先找到中间节…

【Copula】最可能场景详解

基于Copula联合分布的最可能场景详解 最可能场景(The most-likely scenario)实例探讨参考 最可能场景(The most-likely scenario) 相应英文介绍原理介绍如下:(出自论文J2020-Drought hazard transferabilit…

Helm Dashboard — Kubernetes 中管理 Helm 版本的 GUI

Helm Dashboard 通过提供图形用户界面,使在 Kubernetes 中管理 Helm 版本变得更加容易,这是许多开发人员所期望的。它可用于在 Kubernetes 中创建、部署和更新应用程序的版本,并跟踪其状态。 本文将探讨 Helm Dashboard 提供的特性和优势&am…

通过代理如何调通openai的api

调通openai的api 一、前提二、通过curl调通openai的api三、通过python调通openai的api 一、前提 会魔法上网本地运行代理软件,知道端口号(如1081)。 127.0.0.1:1081二、通过curl调通openai的api 如果在国外,没有qiang&#xff…

ChatGLM3报错:No chat template is defined for this tokenizer

使用官方提供的脚本创建ChatGLM3的DEMO&#xff1a; cd basic_demo python web_demo_gradio.py 出现效果异常问题&#xff1a; conversation [{role: user, content: 你好}, {role: assistant, content: 你好&#xff0c;有什么我可以帮助你的吗&#xff1f;\n\n<|im_end|…

23号资源——电力系统程序集合已提供下载资源

23号资源&#xff1a;程序集合包含9个程序&#xff08;经典电力系统经济调度程序&#xff1b;2解决带储&#xff1b;3智能微电网PSO优化算法&#xff1b;微电网调度等等&#xff0c;见资源描述&#xff09;资源-CSDN文库https://download.csdn.net/download/LIANG674027206/887…

docker安装 mysql 8.0.32

首先下载 mysql 其次如果虚拟机以前安过mysql 需要把mysql关闭 命令 永久关闭mysql 但是当前不生效 需要重启虚拟机 systemctl enable mysqld 如果不想重启虚拟机 可以执行 systemctl stop mysqld //指定版本 docker pull mysql:8.0.32 // 拉取最新的…

【linux】ps的基本使用

ps是linux中用于显示进程的工具&#xff0c;确切来说是显示活动进程的工具 ps的基本格式是 ps [选项] sh-3.2# ps --help ps: illegal option -- - usage: ps [-AaCcEefhjlMmrSTvwXx] [-O fmt | -o fmt] [-G gid[,gid...]][-g grp[,grp...]] [-u [uid,uid...]][-p pid[,pid..…

[小程序]API、数据与事件

一、API ①事件监听API 以on开头&#xff0c;用来监听事件的触发&#xff08;如wx.inWindowResize&#xff09; ②同步API 以Sync结尾&#xff0c;且可以通过函数返回值获取&#xff0c;执行错误会抛出异常&#xff08;如wx.setStorageSync&#xff09; ③异步API 类似网页中的…

torchtext安装及常见问题

Pytorch 、 torchtext和Python之间有严格的对应关系&#xff1a; 在命令窗中安装torchtext pip install torchtext 注意这种安装方式&#xff0c;在pytorch版本与python版本不兼容时动会自动更新并安装pytorchcpu版本&#xff0c;安装的新版本pytorch可能会不兼容。慎用。 …

VUE--组件通信(父子)

1、什么是组件通信 组件通信就是指组件与组件之间的数据传递。因为组件的数据是独立的&#xff0c;无法直接访问其他组件的数据&#xff0c;想获取其他组件的数据&#xff0c;就需要用到组件通信。 2、组件关系分类&#xff08;如图&#xff09; ● 父子关系&#xff08;props…

虚拟机安装宝塔的坑

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

Python连接数据库的梳理

我们通常用的数据库类型主要有关系型数据库&#xff0c;非关系型数据库等&#xff0c;其中关系型数据库主要有Microsoft SQL Server ,MySQL,Oracle&#xff0c;SQLite等&#xff0c;常用的非关系型数据库包括Redis、DynamoDB&#xff0c;MongoDB等 ​​​​​​​ 一 关系型…

MongoDB之索引

常用命令 查看表的索引 db.<table>.getIndexes() 查看表索引的大小 db.<table>.totalIndexSize() 重建索引 db.<table>.reIndex() 删除索引 db.COLLECTION_NAME.dropIndex("INDEX-NAME") db.COLLECTION_NAME.dropIndexes() _id 索引无法删…

MCU最小系统原理图中四个问题详解——芯片中有很多电源管脚的原因(VDD/VSS/VBAT)、LC滤波、两级滤波、NC可切换元件

前言&#xff1a;本文对MCU最小系统原理图中的四个问题进行详解&#xff1a;芯片中有很多电源管脚的原因&#xff08;VDD/VSS/VBAT&#xff09;、LC滤波、两级滤波、NC可切换元件。本文以GD32F103C8T6最小系统原理图举例 目录&#xff1a; 芯片中有很多电源管脚的原因&#x…

echarts dataZoom实现左右滑动与放大缩小 并精确控制显示几条数据

//Xdata是横轴的长度&#xff08;若x轴80条数据&#xff0c;默认显示最新的20条&#xff09; var start Xdata.length - 20; var end Xdata.length - 1; dataZoom: [ type: slider, show: true, startValue: dataZoomStart, endValue: dataZoomEnd, dataBackground: { ar…

STL——list

1、list介绍 1. list 是可以在常数范围内在任意位置进行插入和删除的序列式容器&#xff0c;并且该容器可以前后双向迭代。 2. list 的底层是带头双向循环链表结构&#xff0c;双向链表中每个元素存储在互不相关的独立节点中&#xff0c;在节点中通过指针指向其前一个元素和后…

CVE-2023-46226 Apache iotdb远程代码执行漏洞

项目介绍 Apache IoTDB 是针对时间序列数据收集、存储与分析一体化的数据管理引擎。它具有体量轻、性能高、易使用的特点&#xff0c;完美对接 Hadoop 与 Spark 生态&#xff0c;适用于工业物联网应用中海量时间序列数据高速写入和复杂分析查询的需求。 项目地址 https://io…

Leetcoder Day9|栈与队列part01

语言&#xff1a;Java/C 目录 理论基础 C 栈 队列 Java 栈 队列 ​编辑 232.用栈实现队列 225. 用队列实现栈 Queue Deque 今日心得 理论基础 又是考研时数据结构里接触到的老朋友&#xff0c;栈是先进后出&#xff0c;队列是先进先出。 C 现在刷题除了思路还…