GithubHelp home page GithubHelp logo

chatgpt-wecom's Introduction

chatgpt-WeCom

V0.2 版本使用 acheong08 的 ChatGPT V3,实现了企业微信与 ChatGPT 聊天。

这个版本使用的 chatgpt 开放的 gpt-3.5-turbo,v0.11 和 V.14 版本教程请看 wiki 文件夹

该版本基于acheong08的reChatGPT开发,

实现的功能

  • 多用户使用隔离,建议一个用户对应一个 api key(多个用户用一个 api key 有可能会有其他问题),api 的使用这是需要付费的(每个账户赠送的有 18 刀),如果想用久一点就一个 openai 账户一个密钥,
  • 支持上下文关联
  • 支持自定义 system_prompt(可选配置)
  • 支持用户清除上下文,开始新的对话,指令 ,微信用户输入//新对话
  • 除了企业微信需要固定 ip 来配置可信 ip vps 可以不用代理,nas 等无公网 ip 的用户需要配置data.yml中的WEXIN_PROXY
  • 支持查询 openai api key 的过期时间以及剩余额度,需要在 data.yml 配置相关参数

#####需要准备的!!!!!!!!

  • 企业微信账号
  • 自建 http 代理(服务器部署用户不需要)
  • chatgpt api key

获取 OpenAI 账户

  • 建议参考谷歌获取

部署

docker 部署

  • docker 端口 -p 6364:6364

  • 需要挂载的 -v /你自己创建的文件夹/config:/app/src/config

  • dokerhub 地址选 latest 为最新版

    在本地目录下新建一个 config 文件夹在文件夹下新建 data.yml 文件,填写以下内容:

OPENAI_ACCOUNT:
  userA:
    Api_key: xxxx
  userB:
    Api_key: xxxx
  userC:
    Api_key: xxxx
WEIXIN_RECEIVE:
  Token: XXXX
  EncodingAESKey: XXXX
  CorpID: XXX
WEIXIN_PUSH:
  agentid: XXX
  secret: XXXX
  corpid: XXX
WEXIN_PROXY: http://domain:port
#WEXIN_PROXY为可选配置,配置登录微信推送所用的ip,企业bot可信ip里填的,VPS部署用户用不到可以删除
BALANCE:
  CKBALANCE: true
SYSTEM_PROMPT: 你的名字是呆瓜, 一个无所不能的大型语言模型
  • 第一项: OPENAI_ACCOUNT 其中 userA,userB,userC 改成企业微信用户账号, Api_key不同用户使用一个可能会有问题,

  • 第二项: WEIXIN_RECEIVE是对应的企业微信自建机器人 api,目的是为了接收到用户发送的消息。 CorpID 为个人企业微信的企业 id,回调需要的参数先填好需要的三个参数,最后 docker 跑起来后再在企业微信下图 url 中,然后保存即可,填入 https:你的域名:端口/api ,配置企业微信 api 接收消息,所需要的数据具体获取教程

  • 第三项: WEIXIN_PUSH则是用于向用户返回 chatgpt 处理用户发送消息后的回答时使用。 agentid,secret分别为为企业微信自建 bot 的 id,和 secret,corpid则依旧是企业 id, 获取填入数据教程 //////////

  • 第四项: WEXIN_PROXY则是用于配置企业微信代理。(vps 部署的用户不需要,WEXIN_PROXY(用不到可以删除),由于是 openai 的 api 也被墙了因此目前还是非 vps 用户要在 docker 部署时配置环境变量代理例如,有关代理搭建 http 代理或者 sock 代理请善用搜索,如果配置了环境代理则WEXIN_PROXY项可以删除

  • 配置代理和可信 ip 参考(vps 用户也要在企业微信添加可信 ip 为 vps 的 ip 即可,不需要 WEXIN_PROXY 代理): 如图我的 http 代理为http://127.0.0.1:223对应的服务器 ip 为54.xxx.xxx.xxx我在企业微信中加入可信任 ip``54.xxx.xxx.xxx`即可,有关代理搭建 http 代理或者 sock 代理请善用搜索

  • 第五项目: 可以查询 data.yml 中 api key 的用量信息,默认为关闭状态,需要在 data.yml 配置

    BALANCE:
      CKBALANCE: true

    true 为开启,false 为关闭,开启后浏览器输入yourdomin:port/balance 比如我的是http://127.0.0.1:6364/balance

  • 第六项目: 可以自定义 system_prompt,为可选配置,不需要这一项可以删掉,例如

    SYSTEM_PROMPT: 你的名字是呆瓜, 一个无所不能的大型语言模型
  • 清空上下文指令 ,微信用户输入//新对话

    最后 docker 跑起来后填入可信任 ip 与完成上面的 api 接收信息就可以正常使用了。

chatgpt-wecom's People

Contributors

tuangtalk avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

chatgpt-wecom's Issues

不支持arm64

搞了半天才提示不支持arm64架构,我很生气!

请教一下上下文的实现

哈咯,我看了下源码,V3这个版本是用什么来实现上下文的?我在我自己的脚本内还是用对话历史来实现似乎没问题,但开销比较大。然后来你这边看,好像也没看到什么相关的代码。。

请问docker怎么部署

小白看不懂docker部署的那几步,求大佬指点
docker pull yummys/chatgpt-wecom
docker run -p 6364:6364 -v /wechatgpt/config:/app/src/config
这样部署吗?

牛啊,但是可以出一个清空上下文的指令吗?

花了10分钟搭建了一下,很顺畅很好用。但是可以出一个清空上下文的指令吗?否则感觉怪怪的聊天,谢谢老大。

另外,这个api的智商确实不太够,如果能有账户密码的就好了,当然这个有点困难。。。再次感谢!

上下文会话多久结束呢?

大佬,有个疑问, 就是在输入 //新对话 后会清除上下文, 那么如果在不输入指令的情况下是一直建立上下文还是多久时间后清除呢?

连不上openai

报错如下:
requests.exceptionsraise ConnectTimeout(e, request=request).
ConnectTimeout: requests.exceptionsHTTPSConnectionPool(host='api.openai.com', port=443): Max retries exceeded with url: /dashboard/billing/credit_grants (Caused by ConnectTimeoutError(<urllib3.connection.HTTPSConnection object at 0x7fb444003370>, 'Connection to api.openai.com timed out. (connect timeout=None)')).
ConnectTimeout: HTTPSConnectionPool(host='api.openai.com', port=443): Max retries exceeded with url: /dashboard/billing/credit_grants (Caused by ConnectTimeoutError(<urllib3.connection.HTTPSConnection object at 0x7fb443e69e10>, 'Connection to api.openai.com timed out. (connect timeout=None)'))

可不可以离开docker运行

我有点小白,不想跑在家里想直接跑在VPS里,能不能求作者改成python窗口或者计划任务运行?好人一生平安,如果可能谢谢了。

是否在微信群聊中可用

您好,这个机器人可以在微信群聊中使用吗?
或者不用机器人模式,用企业微信账号登录,来收发消息

群晖docker报错

Error communicating with OpenAI: HTTPSConnectionPool(host='api.openai.com', port=443): Max retries exceeded with url: /v1/engines/text-davinci-003/completions (Caused by ProxyError('Cannot connect to proxy.', NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7fa1c6f779a0>: Failed to establish a new connection: [Errno 111] Connection refused')))

后台很多报错,如何处理哇?

1111
'NoneType' object has no attribute 'text'
Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/web/application.py", line 280, in process
return self.handle()
File "/usr/local/lib/python3.10/site-packages/web/application.py", line 271, in handle
return self._delegate(fn, self.fvars, args)
File "/usr/local/lib/python3.10/site-packages/web/application.py", line 514, in _delegate
return handle_class(cls)
File "/usr/local/lib/python3.10/site-packages/web/application.py", line 492, in handle_class
return tocall(*args)
File "/app/src/request.py", line 33, in POST
question,wxuser=Handle().POST()
TypeError: cannot unpack non-iterable AttributeError object

172.17.0.1:53734 - - [17/Feb/2023 06:57:09] "HTTP/1.1 POST /api" - 500 Internal Server Error

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.