• ChatGPT为企业应用赋能


    chatgpt-on-wechat和bot-on-anything两个项目都支持企业微信部署,其中前者功能比较丰富,推荐! 如需帮助,可以搜索wx:Youngerer 找到我!

    功能展示:


    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/a85ff6bbfe8a48048acb400e0892f008.png#pic_center
    在这里插入图片描述
    在这里插入图片描述

    一、前置要求和介绍

    项目地址:

    作者:zhayujie。bot-on-anything:https://github.com/zhayujie/bot-on-anything

    前置要求:

    一台国外服务器(国内配置代理也可),注册一个企业微信!(如果是认证的企业微信,需要准备一个认证主体和企业认证主体一致的域名)

    该项目是通过创建企业应用使用chatgpt,接入企业微信客服正在开发当中,如果有帮助到你,欢迎分享!请到bot-on-anythingchatgpt-on-wechat点个小星星!

    二、下载企业微信

    自己搜索下载企业微信app,pc端,然后创建公司,不需要认证即可使用。

    三、创建应用

    点击这里登录企业微信后台。然后点击我的企业,最下方有企业id:wwxxxxxx,记录下来。

    然后点击应用管理,创建应用,设置应用的一些基本信息,下一步。

    记录下Agentld、secret,点击下面接收消息里面的设置api接收。设置下面的参数,现在还保存不了,进行下一步:服务器运行应用

    url:http://ip:8888/wechat    #如果是已认证的企业微信,这里需要吧ip换成和企业主体相关的域名
    EncodingAESKey                #随机获取并记录下来。
    Token                         #随机获取并记录下来。
    • 1
    • 2

    四、服务器运行应用

    克隆代码及运行

    按照GitHub作者的步骤,克隆代码到服务器运行,步骤参考这里,运行需要用到的指令如下(仅供参考,需根据自己情况修改):可能有帮助的服务器使用教程点这里

    git clone https://github.com/zhayujie/bot-on-anything   #从GitHub克隆代码
    cd bot-on-anything/                                   #切换到项目目录
    pip3 install -r requirements.txt                        #安装必须依赖,这里请注意是否有报错   
    cp config-template.json config.json                     #复制配置文件,下面参数配置在这文件里面修改后再运行应用
    touch nohup.out                                         #首次运行需要新建日志文件                     
    nohup python3 app.py & tail -f nohup.out                #在后台运行并输出日志,注意切换到项目所在目录运行,成功后可以ctrl+c关闭会话
    
    #以下是其他可以使用的指令
    pgrep -f app.py | xargs -I{} sh -c 'echo -n "Name: app.py, "; echo -n "ID: {}, "; readlink -f /proc/{}/cwd; '         #执行该指令输出所有名字为app.py的进程ID和该进程所在的目录,服务器运行多个该项目的时候方便查找对应的进程id
    kill pid                                            #杀死进程pid,然后重新运行应用                                      
    git pull                                               #后续项目代码有更新,执行该命令拉取最新代码,重新运行应用
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    修改配置

    配置config.json文件:设置openaiapi_keychannel type选择wechat_com,设置wechat_com的参数,参数配置如下,请复制模板配置文件后修改,不要粘贴复制!

      "model": {
        "type" : "chatgpt",
        "openai": {
          "api_key": "YOUR API KEY",                       #这里设置你的openai的api_key
          "model": "gpt-3.5-turbo",                        # 模型名称,这里选择了gpt
          "proxy": "",                                     # 代理地址,如果是国外的可以访问openai的服务器不需要配置,
          ....                                             #其他参数参考项目的readme
    }
    
    "channel": {
        "type": "wechat_com",                              #务必注意不要选错
        "wechat_com": {                                    #注意这里是在 wechat_com 里配置参数
          "wechat_token": "MIllLa9",                       #刚刚随机生成的         
          "port": "8888"                                   #默认端口,服务器需要放行该端口
          "app_id": "YOUR APP ID",                         #上一步记录的Agentld
          "app_secret": "t7ddkqL1111111111111nOFM-0m-OtU", #上一步获得的,会发送到企业微信对话框
          "wechat_corp_id": "ww61111111403",               #第一步里面的企业id,ww开头
          "wechat_encoding_aes_key": "rrRnhf1zad11pwuw22", #刚刚随机生成的
        }
    }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    上边的参数配置好之后,服务器运行该应用,然后在刚刚的企业微信管理后台设置api界面点击保存,成功之后会如下图所示!

    然后在创建应用界面的开发者接口里,配置企业可信IP,为你的服务器IP!

    到目前为止,如果没什么报错的话,那就是见证奇迹的时刻了,在企业微信搜你刚刚创建应用所有的名字,打开对话框,和他聊天吧!

    五、微信插件:接入个人为微信使用

    对于不怎么使用企业微信的人来说,只能在企业微信app使用难免太鸡肋了,那么我们可以通过企业微信的微信插件接入到个人微信。

    在企业微信管理后台,点击我的企业,左侧的微信插件,有一个邀请关注二维码,用个人微信扫码点击关注,然后验证手机号后就加入到该公司,即可找到刚刚创建的应用,点击即可使用,也可将该应用添加到桌面或者将该公司置顶来方便使用!

    六、2023.4.26更新(chatgpt-on-wechat支持企业微信):

    chatgpt-on-wechat项目已支持接入企业微信,该项目支持插件,可以实现基于chatgpt的更多功能,包括角色扮演、语音交流、天气日期查询、AI作图、图片修复、联网搜索等功能。实现效果可以参考这里的视频演示

    部署步骤和上边基于bot-on-anything的部署一致,只需稍作更改!可参考项目的帮助文档

    这里记下该项目config.json中有关企业微信配置的参数,方便自己查阅:

        "channel_type": "wechatcom_app",
        "wechatcom_corp_id": "",  # 企业微信公司的corpID
        "wechatcomapp_token": "",  # 企业微信app的token
        "wechatcomapp_port": 9898,  # 企业微信app的服务端口, 不需要端口转发
        "wechatcomapp_secret": "",  # 企业微信app的secret
        "wechatcomapp_agent_id": "",  # 企业微信app的agent_id
        "wechatcomapp_aes_key": "",  # 企业微信app的aes_key
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

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

    七、插件功能解析

    以下内容在项目各个插件的readme文件都可以找到,为方便不熟悉项目的人有个大概认知,稍作整理,所有配置文件模板都可在/plugin/PLUGIN_NAME下面找到,请复制xxxx.json.templatexxxx.json后添加相应的配置项,不要粘贴复制这里的示例代码!

    插件安装

    项目已经预置一些插件可在/plugin目录下查看,如需安装其他插件参考以下两种方法

    • 第一种方法是在将下载的插件文件都解压到"plugins"文件夹的一个单独的文件夹,最终插件的代码都位于"plugins/PLUGIN_NAME/*"中。启动程序后,如果插件的目录结构正确,插件会自动被扫描加载。除此以外,注意你还需要安装文件夹中requirements.txt中的依赖。
    • 第二种方法是Godcmd插件,它是预置的管理员插件,能够让程序在运行时就能安装插件,它能够自动安装依赖。安装插件的命令是"#installp 仓库源记录的插件名/仓库地址"。这是管理员命令,认证方法在这里在安装之后,需要执行"#scanp"命令来扫描加载新安装的插件(或者重新启动程序)并#enablep plugin_name启用插件!
    • 目前chatgpt项目已支持的插件有以下几个:

      godcmd(管理员插件)

      复制config.json文件,并修改其中password的值为口令。在私聊中输入#auth 口令进行管理员认证,#help可以打印出管理员相关指令,进行配置重载、插件安装以及启禁用等:

      #resume : 恢复服务
      #stop : 暂停服务
      #reconf : 重载配置(不包含插件配置)
      #resetall : 重置所有会话
      #scanp : 扫描插件目录是否有新插件
      #plist : 打印当前插件列表
      #setpri 插件名 优先级: 设置指定插件的优先级,越大越优先
      #reloadp 插件名: 重载指定插件配置
      #enablep 插件名: 启用指定插件
      #disablep 插件名: 禁用指定插件
      #installp 仓库地址或插件名: 安装指定插件
      #uninstallp 插件名: 卸载指定插件
      #updatep 插件名: 更新指定插件
      #debug : 开启机器调试日志
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13

      banwords(敏感词检测)

      自行导入词库到插件文件夹中的banwords.txt,复制config.json.template复为config.json,并自行配置,示例如下:

      {
        "action": "replace",       #replace:提问有敏感词,将以***代替并返回信息给用户,提示违规;ignor:为无视这条消息
        "reply_filter": true,      #是否对ChatGPT的回复也进行敏感词过滤,true为过滤
        "reply_action": "replace"  #如果开启了回复过滤,对回复的默认处理行为
      }
      
      • 1
      • 2
      • 3
      • 4
      • 5

      bdunit:利用百度UNIT实现智能对话

      能够处理chtgpt不能解决的几个问题:日期,天气,数学计算!

      申请机器人:https://ai.baidu.com/unit/home#/home

      申请api:https://console.bce.baidu.com/ai

      {
          "service_id": "S87005",   #注意是你创建的机器人的id 
          "api_key": "xgASVQGwKLG2K",
          "secret_key": "Gh8bICOkBCoq"
      }
      • 1
      • 2
      • 3
      • 4

      replicate(绘画插件)

      本插件用于将画图请求转发给replicate api。

      api申请:https://replicate.com/

      安装:https://github.com/zhayujie/chatgpt-on-wechat/issues/770

      使用:https://github.com/lanvent/plugin_replicate

      调用格式示例:

      <画图触发词><关键词1> <关键词2> ... <关键词n>: 
      画 open:a beautiful girl,long hair,skirt #画是画图触发词,open是关键词,冒号后是prompt,使用英文
      • 1

      关键词去config.json文件里面看,有open、sd、横板、竖版、二次元、修复等

      summary(总结插件)

      支持以自然语言实现对聊天记录的总结,认证管理员后执行#installp summary安装

      $ 总结最近20条消息
      $ 总结3小时内的消息
      • 1

      tool(强大工具集):

      一个能让chatgpt联网,搜索,数字运算的插件,将赋予强大且丰富的扩展能力。使用该插件需在机器人回复你的前提下,在对话内容前加$tool;仅输入$tool将返回tool插件帮助信息,用于测试插件是否加载成功

      使用说明:https://github.com/goldfishh/chatgpt-on-wechat/blob/master/plugins/tool/README.md

      api申请:https://github.com/goldfishh/chatgpt-tool-hub/blob/master/docs/apply_optional_tool.md

      config.json配置示例(后续如有改动,请参考最新代码的配置模板):

      {
        "tools": ["python", "url-get", "terminal", "meteo-weather", "wikipedia", "bing-search", "wolfram-alpha", "morning-news"],    #这里加入工具的名称
        "kwargs": {
            "top_k_results": 2,
            "no_default": false,
            "model_name": "gpt-3.5-turbo",
            "news_api_key": "538c9027bd650fd28281",
            "bing_subscription_key": "4871f4395dacb71321b26ec",
            "wolfram_alpha_appid": "QPU8LH",
            "morning_news_api_key": "5w1kjNh9VugBQlUc"
        }                              #这里加入工具对应的api_key
      }
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11

      keywords(关键词插件)

      主要用来匹配关键词进行回复,主要用于公众号配置当中,在config.json中配置关键词和关键词匹配到后回复的内容:

      {
          "keyword": {
              "cursor": "https://www.cursor.so/",
              "桌面日历": "http://download3.desktopcal.com/desktopcal_rcmd_166894.exe"
          }
      }
      • 1
      • 2
      • 3
      • 4
      • 5

      dungeon(大冒险)

      玩地牢游戏的聊天插件,无需配置,直接使用即可

      role(角色扮演)

      角色扮演插件,会话窗口使用帮助指令即可查看相关功能,无需配置,可自定义角色!

      hello

      新人入群自动欢迎和拍一拍响应!

      八、railway部署企业微信(公众号:Youngerer)

      前置准备:

      基于chatgpt-on-WeChat项目:https://github.com/zhayujie/chatgpt-on-wechat

      通过railway我们不需要购买服务器或者配置代理,准备以下东西即可以部署chatgpt到我们的企业微信:

      • 注册一个企业微信(无需认证)
    • 准备一个GitHub账号,注册railway,会有每月免费5刀/500小时的额度一个openai账号,生成api key
    • 准备相关参数:可参考前边的部分来获取相关参数

          "openai-api-key":""       #openai账号生成api-key
          "wechatcom_corp_id": "",  # 企业微信公司的corpID
          "wechatcomapp_token": "",  # 企业微信app的token
          "wechatcomapp_secret": "",  # 企业微信app的secret
          "wechatcomapp_agent_id": "",  # 企业微信app的agent_id
          "wechatcomapp_aes_key": "",  # 企业微信app的aes_key
      • 1
      • 2
      • 3
      • 4
      • 5

      获取后停留在api设置界面,待下面填入url后再点击保存!

      部署:

      点击这里进入railway(前提已登录railway):

      点击页面的deplay now;

      然后在下图中相应的位置填入准备工作中记录的对应的参数值,默认的参数值不用修改;

      等待部署成功,然后在settings里面复制域名链接:

      根据上一步复制的链接,在企业微信后台应用api设置界面填入下边格式的url(根据自己情况修改xxx.railway.app这部分内容):

      https://chatgpt-on-wechat-production-549d.up.railway.app/wxcomapp

        然后点击保存,如果没有问题会显示保存成功,如显示回调不通过,请自行检查相关参数是否正确。

        最后我们给该企业应用发送一条消息,这时候还不能正常回复,我们点击Deployments,再点击view logs,最后点击Deploy Logs。

        我们会发现有错误信息,在错误信息里面找到ip信息,然后在企业微信后台把这个ip加入到可信ip设置里面:

        最后我们就可以使用该企业应用啦!

        教程更新查看请点击这里:https://www.wangpc.cc/aigc/wechat_com-chatgpt/,未经允许,禁止转载!

    • 相关阅读:
      京东三面:我要查询千万级数据量的表,怎么操作?
      Redis数据类型-Hash-存储结构之ziplist
      AtCoder Beginner Contest 215 E(DP + 二进制枚举)
      2022_06杂记
      二维码智慧门牌管理系统:创新科技改善生活
      HTML期末作业 蛋糕bootstrap响应式网站html+css+javascript+jquery+bootstarp
      中华传统文化题材网页设计主题:基于HTML+CSS设计放飞青春梦想网页【学生网页设计作业源码】
      大数据Java基础——集合(泛型,增强for遍历,静态导入,集合嵌套)
      好用的js快速排序的方法
      Spring MVC 十一:中文乱码
    • 原文地址:https://blog.csdn.net/vision666/article/details/130745625