微信公众号接入ChatGpt、文心一言等【完整流程】_微信公众号接入gpt-程序员宅基地

技术标签: 微信公众平台  chatgpt  

关注公众号[桃李开发]体验效果

在这里插入图片描述

1. 首要条件:

  • 公网服务器一台
  • 公众号(订阅号、服务号都可)一个
  • 注册LinkAI(有国外服务器的可不考虑使用)
  • 开源项目chatgpt-on-wechat

2.服务器选择

建议国外服务器,使用openai 无需代理,域名也不需要备案。我当时购买时没注意,选的国内服务器,导致域名备案备案花了很长时间。后续对接gpt也只能选择其他方案。

没有国外服务器的建议使用开源项目chatgpt-on-wechat内置的插件LinkAI 官网地址

3. 开源项目

微信公众接入gpt项目开发就不重复做工了,git上有很多大佬写的很完善的项目,这里我使用的是chatgpt-on-wechat(项目地址:https://github.com/zhayujie/chatgpt-on-wechat),

项目简介:

使用大模型搭建微信聊天机器人,基于 GPT3.5/GPT4.0/Claude/文心一言/讯飞星火/通义千问/LinkAI,支持个人微信、公众号、企业微信、飞书部署,能处理文本、语音和图片,访问操作系统和互联网,支持基于知识库定制专属机器人。

目前支持:多端部署、基础对话、语音能力、图像能力、丰富插件、工具知识库等。

项目配置项说明请移步官网地址,尽可能简单的阐述配置部署流程。

chatgpt-on-wechat官网配置阅读完后继续向下看

4. 项目配置

项目根目录配置文件config.json

# config.json文件内容示例
{
    
  "open_ai_api_key": "YOUR API KEY",                          # 填入上面创建的 OpenAI API KEY
  "model": "gpt-3.5-turbo",                                   # 模型名称, 支持 gpt-3.5-turbo, gpt-3.5-turbo-16k, gpt-4, wenxin, xunfei
  "proxy": "",                                                # 代理客户端的ip和端口,国内环境开启代理的需要填写该项,如 "127.0.0.1:7890"
  "single_chat_prefix": ["bot", "@bot"],                      # 私聊时文本需要包含该前缀才能触发机器人回复
  "single_chat_reply_prefix": "[bot] ",                       # 私聊时自动回复的前缀,用于区分真人
  "group_chat_prefix": ["@bot"],                              # 群聊时包含该前缀则会触发机器人回复
  "group_name_white_list": ["ChatGPT测试群", "ChatGPT测试群2"], # 开启自动回复的群名称列表
  "group_chat_in_one_session": ["ChatGPT测试群"],              # 支持会话上下文共享的群名称  
  "image_create_prefix": ["画", "看", "找"],                   # 开启图片回复的前缀
  "conversation_max_tokens": 1000,                            # 支持上下文记忆的最多字符数
  "speech_recognition": false,                                # 是否开启语音识别
  "group_speech_recognition": false,                          # 是否开启群组语音识别
  "use_azure_chatgpt": false,                                 # 是否使用Azure ChatGPT service代替openai ChatGPT service. 当设置为true时需要设置 open_ai_api_base,如 https://xxx.openai.azure.com/
  "azure_deployment_id": "",                                  # 采用Azure ChatGPT时,模型部署名称
  "azure_api_version": "",                                    # 采用Azure ChatGPT时,API版本
  "character_desc": "你是ChatGPT, 一个由OpenAI训练的大型语言模型, 你旨在回答并解决人们的任何问题,并且可以使用多种语言与人交流。",  # 人格描述
  # 订阅消息,公众号和企业微信channel中请填写,当被订阅时会自动回复,可使用特殊占位符。目前支持的占位符有{
    trigger_prefix},在程序中它会自动替换成bot的触发词。
  "subscribe_msg": "感谢您的关注!\n这里是ChatGPT,可以自由对话。\n支持语音对话。\n支持图片输出,画字开头的消息将按要求创作图片。\n支持角色扮演和文字冒险等丰富插件。\n输入{trigger_prefix}#help 查看详细指令。",

# linkAi配置  
"use_linkai": false,                                        # 是否使用LinkAI接口,默认关闭,开启后可国内访问,使用知识库和MJ
  "linkai_api_key": "xxx",                                       # LinkAI Api Key
  "linkai_app_code": "xxx"                                       # LinkAI 应用code

# 微信一言配置
  "baidu_wenxin_model": "eb-instant",
  "baidu_wenxin_api_key": "xxx",
  "baidu_wenxin_secret_key": "xxx"

# 微信公众号配置:
  "wechatmp_app_id": "xxx",									  # 微信公众号appid
  "wechatmp_app_secret": "xxx",						# 微信开发者密码
  "wechatmp_aes_key": "xxx",							# 微信加密串
  "wechatmp_token": "xxx",									# 随便填 与 微信开发放平台一致即可
  "wechatmp_port": 80,									项目端口号微信只支持80 (http)443(https) 端口
}

所有key、code值如何获取下面第五步有具体步骤

如何配置?
  1. 有国外服务器
    有国外服务器的可直接将openAi key添加到配置项open_ai_api_key即可
  2. 国内服务器
    使用LinkAi 将配置项use_linkai改为true填入linkai_api_keylinkai_app_code

基于LinkAi使用文心一言
将配置项use_linkai改为false,model改为wenxin,配置项加入baidu_wenxin_modelbaidu_wenxin_api_keybaidu_wenxin_secret_key

5.如何获取配置项值?
  1. 获取openAI key(需要魔法)
    打开官网,注册账号方面有问题的可私聊我,可解决注册短信验证问题
    (1)点击左侧菜单API keys新建key,复制到项目配置文件即可使用ChatGpt
    在这里插入图片描述

  2. 获取linkAi配置项
    (1)打开LinkAi官网创建新应用
    在这里插入图片描述

(2)填入应用信息后点击创建按钮在这里插入图片描述
(3)进入应用后可选择应用的功能及默认的模型
在这里插入图片描述
(4)点击左侧菜单应用接入->创建api key 即可获得LinkAi key
在这里插入图片描述

  1. 获取文心一言配置项
    (1)打开文心一言(千帆大模型)官网注册登录后点击左侧菜单应用接入
    在这里插入图片描述
    (2)填写应用基础信息后即可看到api_keysecret_key填入配置项即可

  2. 获取微信公众号配置项
    (1)打开微信公众平台点击左侧菜单中设置与开发中基本配置在这里插入图片描述
    (2)复制appid和appSecret到项目配置文件即可
    (3)启动服务器配置在服务器地址中填入项目部署到的服务器,固定写法为服务器地址+/wx,如果是ip地址端口仅支持80,域名则默认访问443端口,token填入配置项中的wechatmp_token,消息加解密密钥(EncodingAESKey)对应配置项wechatmp_aes_key随机生成即可,仅在安全模式下生效。

至此 项目使用的大模型及配置项获取已全部介绍完毕,对应选择配置即可

项目部署后 打开公众号就可以体验啦!有什么问题尽情打扰我,如有帮助点个赞吧

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_44476779/article/details/134881972

智能推荐

Linux查看登录用户日志_怎么记录linux设备 发声的登录和登出-程序员宅基地

文章浏览阅读8.6k次。一、Linux记录用户登录信息文件1  /var/run/utmp----记录当前正在登录系统的用户信息;2  /var/log/wtmp----记录当前正在登录和历史登录系统的用户信息;3  /var/log/btmp:记录失败的登录尝试信息。二、命令用法1.命令last,lastb---show a listing of la_怎么记录linux设备 发声的登录和登出

第四章笔记:遍历--算法学中的万能钥匙-程序员宅基地

文章浏览阅读167次。摘要:1. 简介 2. 公园迷宫漫步 3. 无线迷宫与最短(不加权)路径问题 4. 强连通分量1. 简介在计算机科学裡,树的遍历(也称为树的搜索)是圖的遍歷的一种,指的是按照某种规则,不重复地访问某种樹的所有节点的过程。具体的访问操作可能是检查节点的值、更新节点的值等。不同的遍历方式,其访问节点的顺序是不一样的。两种著名的基本遍历策略:深度优先搜索(DFS) 和 广度优先搜索(B...

【案例分享】使用ActiveReports报表工具,在.NET MVC模式下动态创建报表_activereports.net 实现查询报表功能-程序员宅基地

文章浏览阅读591次。提起报表,大家会觉得即熟悉又陌生,好像常常在工作中使用,又似乎无法准确描述报表。今天我们来一起了解一下什么是报表,报表的结构、构成元素,以及为什么需要报表。什么是报表简单的说:报表就是通过表格、图表等形式来动态显示数据,并为使用者提供浏览、打印、导出和分析的功能,可以用公式表示为:报表 = 多样的布局 + 动态的数据 + 丰富的输出报表通常包含以下组成部分:报表首页:在报表的开..._activereports.net 实现查询报表功能

Ubuntu18.04 + GNOME xrdp + Docker + GUI_docker xrdp ubuntu-程序员宅基地

文章浏览阅读6.6k次。最近实验室需要用Cadence,这个软件的安装非常麻烦,每一次配置都要几个小时,因此打算把Cadence装进Docker。但是Cadence运行时需要GUI,要对Docker进行一些配置。我们实验室的服务器运行的是Ubuntu18.04,默认桌面GNOME,Cadence装进Centos的Docker。安装Ubuntu18.04服务器上安装Ubuntu18.04的教程非常多,在此不赘述了安装..._docker xrdp ubuntu

iOS AVFoundation实现相机功能_ios avcapturestillimageoutput 兼容性 ios17 崩溃-程序员宅基地

文章浏览阅读1.8k次,点赞2次,收藏2次。首先导入头文件#import 导入头文件后创建几个相机必须实现的对象 /** * AVCaptureSession对象来执行输入设备和输出设备之间的数据传递 */ @property (nonatomic, strong) AVCaptureSession* session; /** * 输入设备 */_ios avcapturestillimageoutput 兼容性 ios17 崩溃

Oracle动态性能视图--v$sysstat_oracle v$sysstat视图-程序员宅基地

文章浏览阅读982次。按照OracleDocument中的描述,v$sysstat存储自数据库实例运行那刻起就开始累计全实例(instance-wide)的资源使用情况。 类似于v$sesstat,该视图存储下列的统计信息:1>.事件发生次数的统计(如:user commits)2>._oracle v$sysstat视图

随便推点

Vue router报错:NavigationDuplicated {_name: "NavigationDuplicated", name: "NavigationDuplicated"}的解决方法_navigationduplicated {_name: 'navigationduplicated-程序员宅基地

文章浏览阅读7.6k次,点赞2次,收藏9次。我最近做SPA项目开发动态树的时候一直遇到以下错误:当我点击文章管理需要跳转路径时一直报NavigationDuplicated {_name: “NavigationDuplicated”, name: “NavigationDuplicated”}这个错误但是当我点击文章管理后,路径跳转却是成功的<template> <div> 文章管理页面 <..._navigationduplicated {_name: 'navigationduplicated', name: 'navigationduplic

Webrtc回声消除模式(Aecm)屏蔽舒适噪音(CNG)_webrtc aecm 杂音-程序员宅基地

文章浏览阅读3.9k次。版本VoiceEngine 4.1.0舒适噪音生成(comfort noise generator,CNG)是一个在通话过程中出现短暂静音时用来为电话通信产生背景噪声的程序。#if defined(WEBRTC_ANDROID) || defined(WEBRTC_IOS)static const EcModes kDefaultEcMode = kEcAecm;#elsestati..._webrtc aecm 杂音

医学成像原理与图像处理一:概论_医学成像与图像处理技术知识点总结-程序员宅基地

文章浏览阅读6.3k次,点赞9次,收藏19次。医学成像原理与图像处理一:概论引言:本系列博客为医学成像原理与图像处理重要笔记,由于是手写,在此通过扫描录入以图片的形式和电子版增补内容将其进行组织和共享。前半部分内容为图像处理基础内容,包括图像的灰度级处理、空间域滤波、频率域滤波、图像增强和分割等;后半部分内容为医学影象技术,包括常规胶片X光机、CR、DR、CT、DSA等X射线摄影技术、超声成像技术、磁共振成像(MRI)技术等。本篇主要内容是概论。_医学成像与图像处理技术知识点总结

notepad++ v8.5.3 安装插件,安装失败怎么处理?下载进度为0怎么处理?_nodepa++-程序员宅基地

文章浏览阅读591次,点赞13次,收藏10次。notepad++ v8.5.3 安装插件,下载进度为0_nodepa++

hive某个字段中包括\n(和换行符冲突)_hive sql \n-程序员宅基地

文章浏览阅读2.1w次。用spark执行SQL保存到Hive中: hiveContext.sql(&quot;insert overwrite table test select * from aaa&quot;)执行完成,没报错,但是核对结果的时候,发现有几笔数据超出指定范围(实际只包含100/200)最终排查到是ret_pay_remark 字段包含换行符,解决方案:执行SQL中把特殊字符替换掉regexp_replace(..._hive sql \n

印象笔记05:如何打造更美的印象笔记超级笔记_好的印象笔记怎么做的-程序员宅基地

文章浏览阅读520次,点赞10次,收藏8次。印象笔记05:如何打造更美的印象笔记超级笔记本文介绍印象笔记的具体使用,如何打造更美更实用的笔记。首先想要笔记更加好看和实用,我认为要使用超级笔记。所谓超级笔记就是具有很多便捷功能的笔记。_好的印象笔记怎么做的

推荐文章

热门文章

相关标签