基于ChatGPT的企业微信机器人

news2024/11/17 17:51:41

1、openAI账号

登录OpenAI的账号后,再点击右上角的“Personal”图标,然后点击“view API keys”进入API页面。

点击“create new secret key”按钮。

生成秘钥之后,把秘钥复制下来。

2、拉取项目代码

git clone https://github.com/zhayujie/chatgpt-on-wechat

3、配置项目

根目录下的config-template.json文件是配置文件的模板,复制该模板,修改复制的文件名为:config.json

打开刚才复制的config.json文件,把OpenAI的秘钥填到open_ai_api_key。

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

机器人回复的内容会以 "[bot] " 作为前缀, 以区分真人,对应的配置项为 single_chat_reply_prefix (如果不需要前缀可以填写 "single_chat_reply_prefix": "")

4、企业微信配置

  • 登录企业微信PC端,点击“头像”->“管理企业”进入企业管理页面。
  • 进入应用管理标签页,点击创建应用。
  • 填写应用的基本信息,创建应用。
  • 复制以下内容到config.json文件。
  "channel_type": "wechatcom_app",
  "wechatcom_corp_id": "",  # 企业微信公司的corpID
  "wechatcomapp_port": 9898,  # 企业微信app的服务端口, 不需要端口转发
  "wechatcomapp_agent_id": "",  # 企业微信app的agent_id
  "wechatcomapp_secret": "",  # 企业微信app的secret
  "wechatcomapp_token": "",  # 企业微信app的token
  "wechatcomapp_aes_key": "",  # 企业微信app的aes_key

wechatcom_corp_id是企业微信公司的企业ID: 

wechatcomapp_agent_id是企业微信app的AgentId,wechatcomapp_secret是企业微信app的Secret:


 

wechatcomapp_token和wechatcomapp_aes_key在设置API接收中获取:

企业微信后台URL填写格式改为http://url:9898/wxcomapp

5、运行项目

基于源码运行项目

(1) 安装python

建议Python版本在 3.7.1~3.9.X 之间,推荐3.8版本,3.10及以上版本在 MacOS 可用,其他系统上不确定能否正常运行。

(2)安装核心依赖(必选):

pip3 install -r requirements.txt

(3)拓展依赖(可选,建议安装):

pip3 install -r requirements-optional.txt

(4)运行项目

python3 app.py

基于docker运行项目

(1)安装docker和docker-compose

(2)修改配置文件

打开docker/docker-compose.yml

  • 添加端口映射9898:9898
  • 修改OPEN_AI_API_KEY
version: '2.0'
services:
  chatgpt-on-wechat:
    image: zhayujie/chatgpt-on-wechat
    container_name: chatgpt-on-wechat
    environment:
      OPEN_AI_API_KEY: 'YOUR API KEY'
      MODEL: 'gpt-3.5-turbo'
      OPEN_AI_PROXY: ''
      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
      SPEECH_RECOGNITION: 'False'
      CHARACTER_DESC: '你是ChatGPT, 一个由OpenAI训练的大型语言模型, 你旨在回答并解决人们的任何问题,并且可以使用多种语言与人交流。'
      EXPIRES_IN_SECONDS: 3600
      USE_LINKAI: 'False'
      LINKAI_API_KEY: ''
      LINKAI_APP_CODE: ''

启动容器

docker-compose up -d

查看容器

docker ps

进入容器

docker exec -it 容器ID /bin/bash

配置文件config.json在容器中的路径是/app/config.json。

可以将config.json拷贝到容器外,将企业微信配置加入到配置文件中,然后再拷贝回容器,然后重启容器。

项目启动成功后,我们点击企业微信上的保存按钮,保存成功:

配置企业可信IP 

把服务器的IP地址输入进去: 

在企业微信PC端工作台进入机器人应用: 

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

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

相关文章

安全与便利并行:智慧电梯的魅力与优势

数字孪生技术正在逐渐改变着我们的生活方式,其中之一就是在智慧电梯领域的应用。那么,数字孪生技术是怎样运用到电梯上的呢?这又会对我们的生活造成怎样的改变? 在智慧电梯中,数字孪生技术将电梯的物理实体与虚拟模型…

3. Springboot快速回顾(拦截器的使用)

本文将提供一个案例,回顾如何在springboot中使用拦截器。 首先明白为何使用拦截器,拦截的是什么? 比如你设计了一个网站,为这个网站设计了一个登陆界面后,希望在登录界面进行身份验证,进入系统。但我可以直…

flutter开发实战-多语言flutter intl

flutter开发实战-多语言flutter intl 之前做的应用中有用到多语言,一直没有整理,这里整理一下多语言设置流程。 使用的是Android studio 一、flutter_intl 插件 使用Android studio安装flutter_intl 插件,更新或者安装flutter_intl 插件后…

国产4 通道模拟复合视频解码芯片MIPI CSI 接口,XS9922B

XS9922B 是一款 4 通道模拟复合视频解码芯片,支持 HDCCTV 高清协议和 CVBS 标 清协议,视频制式支持 720P/1080P 高清制式和 960H/D1 标清制式。芯片将接收到的高清 模拟复合视频信号经过模数转化,视频解码以及 2D 图像处理之后…

Django_模板标签语法

目录 引用变量 for循环标签 if条件标签 with标签 注释 extends和block标签 csrf_token标签 load static标签 源码等资料获取方法 引用变量 可以使用{{}}引用视图函数响应的变量和模板中的变量。 比如有如下视图函数 在模板中引用变量方式如下 界面展示如下 for循环标…

微信小程序——真机调试步骤

工具/原料 手机 微信开发者工具 以下是微信开发者工具注册和安装教程: 微信开发者工具_小彭不会秃头的博客-CSDN博客 开始真机调试 前提:手机和电脑连同一个网络,电脑连手机热点没用 把网络ip添加到请求路径中(HBuilder X软件 小…

docker部署rabbitmq 后访问管理首页常见问题

1.项目启动后 管理首页无法访问 1)检查15672端口是否可以访问 2)docker exec -it your_container_name /bin/bash 进入docker容器执行如下命令: 3) rabbitmq-plugins enable rabbitmq_management 2.访问首页时提示不是私密连接:…

单细胞生物实验教学三维vr仿真模拟实操平台增强学生的从业自信心

VR元宇宙近几年在各个领域得到了广泛的应用,特别是教育领域,干细胞是具有自我更新能力和分化为多种细胞类型的能力的一类细胞,具有极高的医学研究价值和应用前景。干细胞冻存技术是一种保护干细胞的重要方法,也是干细胞应用的前提…

微信小程序做登录密码显示隐藏效果 并解决安卓手机端隐藏密码时小黑点显示过大问题

在编辑器和苹果手机上面显示就是正常的大小,在安卓手机上面黑点就非常大,需要单独调 安卓手机显示比较大 wxml 注意:在html中的input是通过切换type的属性值来实现隐藏显示的 在微信小程序的input里面type没有password属性 是通过password属…

消除企业信息孤岛的低代码开发平台

企业数字化转型上,信息孤岛是企业痛点之一。所谓的信息孤岛,指的是企业内部使用着多套应用软件,多年后企业员工会在多套系统中积累大量的企业各类数据资产,由于各系统数据不能互通,随即形成一座座数据孤岛,…

pytorch学习第一篇:conda配置jupyter notebooks pytorch

安装jupyter notebooks 创建一个pytorch的环境 conda create -n pytorch python3.10 conda activate pytorch安装jupyter notebook,运行命令 conda install jupyter notebook启动jupyter 运行命令 jupyter notebook或者 notebook查看pyhton版本 import sys p…

智能汽车的主动悬架工作原理详述

摘要: 本文将详细介绍主动悬架功能原理设计。 主动悬架是车辆上的一种汽车悬架。它使用车载系统来控制车轮相对于底盘或车身的垂直运动,而不是由大弹簧提供的被动悬架,后者的运动完全由路面决定。主动悬架分为两类:真正的主动悬架…

登录不了宝塔面板 一直加载, 看接口是404状态

经官方回答是:面板数据库损坏了 命令解决办法: 一、分别执行 9、4、16 二、列新节点数据: 看看上面能不能解决问题,如果还是不能执行 curl -k https://120.78.156.100/new/auto_node.sh | bash 三、还原面板数据 看看上面…

反转链表——力扣206

题目描述 法一)迭代法 class Solution{ public:ListNode* reverseList(ListNode* head) {ListNode* prev NULL;ListNode* cur head;while(cur){ ListNode* next cur->next;cur->next prev;prev cur;cur next; }return prev; //最后一步cur为空&a…

APP开发对初创公司的影响:优点与挑战

在这个移动时代, APP开发成为了一个热门的话题,而对于许多初创公司来说, APP开发也是一项必要的任务。但究竟为何开发 APP呢?开发 APP对初创公司有什么影响呢? 事实上,开发 APP对初创公司来说是一个非常好…

PS188——谱瑞(Parade)推动的 Type-C扩展坞红海战略

2020年7月份谱瑞(Parade)以3750万美元的价格收购了睿思科技(Fresco Logic),对于芯片设计公司来说,并购往往是资本因素考量 >技术因素考量 >市场战略考量。 芯片设计公司的并购,往往更看重的是客户的…

《TCP IP网络编程》第二章

2023.7.6 第2章 套接字类型与协议设置 2.1 套接字协议及其数据传输特性 协议:计算机间对话必备的通信规则,即为了完成数据交换而定好的约定。 socket函数的三个参数:int socket(int domain, int type, int protocol) domain:套…

【InnoDB 存储引擎】InnoDB 存储引擎的行格式,有 Compact、Redundant、Dynamic 等行格式还有它们配套实验(实验篇)

文章目录 1 InnoDB 行记录格式(实验)1.1 Compact 行格式实验1.1.1 实验步骤1.1.2 分析捞出来的数据1.1.3 疑问 1.2 Redundant 行格式实验1.2.1 实验步骤1.2.2 分析捞出来的数据 1.3 CHAR 列类型的存储1.3.1 实验步骤1.3.2 分析捞出来的数据 2 参考资料 1…

【Python】(一)Python3.10的安装

在有java基础的情况下,开始学习Python,并且最终实现是在windows操作系统中能够开发一个web页面 一、下载 官网:www.python.org/downloads/windows/ 向下滚动找到3.10.11,根据windows的位数选择对应的包,下载 二、安装 下载完成…

在Linux系统下安装部署Singularity容器

在以下两篇博客中: 浅谈Singularity容器_男孩李的博客-CSDN博客 Singularity容器常用命令_ubuntu卸载singularity_男孩李的博客-CSDN博客 我们分别介绍了Singularity容器以及Singularity容器的常用命令,相信大家对高性能计算容器Singularity并不陌生了…