Skip to content

Commit

Permalink
Merge pull request #35 from choogoo/v2.x
Browse files Browse the repository at this point in the history
v2.0.2
  • Loading branch information
atorber authored Aug 18, 2023
2 parents 455a5ed + 5f5dc60 commit 1967824
Show file tree
Hide file tree
Showing 146 changed files with 4,433 additions and 9,535 deletions.
54 changes: 54 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# 维格表配置
VIKA_SPACE_NAME="" # 维格表空间名称,注意是名称而不是ID
VIKA_TOKEN="" #维格表token

# Wechaty配置
WECHATY_PUPPET="wechaty-puppet-wechat" # 可选值:wechaty-puppet-wechat4u、wechaty-puppet-wechat、wechaty-puppet-xp、wechaty-puppet-engine、wechaty-puppet-padlocal、wechaty-puppet-service
WECHATY_TOKEN="" # 使用wechaty-puppet-padlocal、wechaty-puppet-service时需配置此token

# 基础配置
ADMINROOM_ADMINROOMID="" # 管理群ID,与管理员群名称任选其一,群ID优先级高于群名称
ADMINROOM_ADMINROOMTOPIC="瓦力是群主" # 管理群名称,需尽量保持名称复杂,避免重名群干扰
BASE_WELCOM_EMESSAGE_FOR_JOIN_ROOM="" # 默认进群欢迎语
BASE_WELCOME_MESSAGE_FOR_ADD_FRIEND="" # 默认添加好友自动回复

# 智能问答配置
AUTOQA_TYPE="wxOpenai" # TBD-可选值:WxOpenai、ChatGPT
WXOPENAI_TOKEN="" # 微信对话开放平台中获取
WXOPENAI_ENCODINGAESKEY="" # 微信对话开放平台中获取
CHATGPT_KEY="" # openai key
CHATGPT_ENDPOINT="https://www.openai.com" # openai api请求地址,国内使用官方api可以替换为https://www.openai-proxy.com

# MQTT配置
MQTT_USERNAME="" # MQTT连接配置信息,推荐使用百度云的物联网核心套件
MQTT_PASSWORD="" # MQTT连接配置信息,推荐使用百度云的物联网核心套件
MQTT_ENDPOINT="" # MQTT连接配置信息,推荐使用百度云的物联网核心套件
MQTT_PORT=1883 # MQTT连接配置信息,推荐使用百度云的物联网核心套件

# 消息推送目的地配置
WEBHOOK_URL=""
WEBHOOK_TOKEN=""
WEBHOOK_USERNAME=""
WEBHOOK_PASSWORD=""

# 语雀配置
YUQUE_TOKEN=""
YUQUE_NAMESPACE=""

# 功能开关
AUTOQA_AUTOREPLY=true
AUTOQA_ATREPLY=false
AUTOQA_CUSTOMREPLY=false
AUTOQA_ROOMWHITELIST=true
AUTOQA_CONTACTWHITELIST=false

VIKA_USEVIKA=false
VIKA_UPLOADMESSAGETOVIKA=false
VIKA_AUTOMATICCLOUD=false

WEBHOOK_WEBHOOKMESSAGEPUSH=false

MQTT_MQTTMESSAGEPUSH=false
MQTT_MQTTCONTROL=true

IM_IMCHAT=false
5 changes: 4 additions & 1 deletion .eslintrc.cjs
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@

const rules = {
'multiline-ternary': 'off',
}

module.exports = {
extends: '@chatie',
parserOptions: {
project: './tsconfig.json', // 更改为正确的路径
},
rules,
}
2 changes: 1 addition & 1 deletion .github/workflows/docker-image.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ jobs: # workflow中的job
id: meta
uses: docker/metadata-action@v3 # 抽取项目信息,主要是镜像的tag
with:
images: atorber/wechat-openai-qa-bot
images: atorber/chatflow

- name: Build and push Docker image
uses: docker/build-push-action@v2 # docker build & push
Expand Down
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -118,9 +118,12 @@ package-lock.json
.gitpod.yml
openai-qa-bot.memory-card.json
quick.bat
src/config.js
src/config.ts
tester.js
db/*.db
db/*.csv
db/*.xlsx
*.memory-card.json
data/db/*.db
data/table/*.xlsx
data/table/*.csv
17 changes: 13 additions & 4 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,8 +1,17 @@
FROM node:16
# 使用Alpine Linux作为基础镜像
FROM node:16-alpine

# 设置工作目录
WORKDIR /usr/src/app
COPY package.json ./

# 复制 package.json 和 package-lock.json(如果存在)
COPY package*.json ./

# 安装依赖
RUN npm install

# 复制所有文件到工作目录
COPY . .
CMD [ "npm","run", "init" ]
CMD [ "npm","run", "start" ]

# 设置默认启动命令
CMD ["sh", "-c", "npm run init && npm run start"]
88 changes: 24 additions & 64 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,87 +34,53 @@
1.下载源码并安装依赖

```Shell
git clone <https://github.com/choogoo/wechat-openai-qa-bot.git>
cd ./wechat-openai-qa-bot
git clone <https://github.com/choogoo/chatflow.git>
cd ./chatflow
npm install
```

2.分别登陆[微信对话开放平台](https://openai.weixin.qq.com/)[vika维格表](https://spcp52tvpjhxm.com.vika.cn/?inviteCode=55152973)官网注册账号并获取token

3.在电脑上登陆微信,微信版本必须为[WeChatSetup-v3.6.0.18.exe](https://github.com/tom-snow/wechat-windows-versions/releases/download/v3.6.0.18/WeChatSetup-3.6.0.18.exe)
3.重命名.env.example文件为.env并修改配置文件

4.修改./config.js配置文件
> 快速开始仅需要修改VIKA_TOKEN、VIKA_SPACE_NAME、ADMINROOM_ADMINROOMTOPIC配置项,其他配置项暂时无需修改,使用微信对话开放平台时配置WXOPENAI_TOKEN、WXOPENAI_ENCODINGAESKEY
快速开始仅需要修改VIKA_TOKEN、VIKA_SPACENAME配置项,其他配置项暂时无需修改
```.env
# 维格表配置
VIKA_SPACE_NAME="" # 维格表空间名称,注意是名称而不是ID
VIKA_TOKEN="" #维格表token
```javascript
/* eslint-disable sort-keys */
// 配置文件,所有配置必须齐全,补充空白配置项,其他配置项可按需要修改
const configs = {
VIKA_TOKEN: '替换成自己的维格表token', // VIKA维格表token
VIKA_SPACENAME: '替换成你的维格表空间名称', // VIKA维格表空间名称,修改为自己的空间名称
}
# 基础配置
ADMINROOM_ADMINROOMTOPIC="瓦力是群主" # 管理群名称,需尽量保持名称复杂,避免重名群干扰
export default configs
# 智能问答配置
WXOPENAI_TOKEN="" # 微信对话开放平台中获取
WXOPENAI_ENCODINGAESKEY="" # 微信对话开放平台中获取
```

> 只有加入到roomWhiteList里的群才会开启只能问答机器人
5.初始化系统表,先运行,系统会自动在维格表中创建好初始化表格
4.启动程序

```Shell
npm run sys-init
```

在维格表查看系统表是否创建成功

6.程序默认使用wechaty-puppet-wechat,三大系统均可使用

7.启动程序

```Shell
npm start
npm run start
```

出现二维码之后,扫码二维码登陆微信

8.开启智能问答功能
5.开启智能问答功能

8.1 设置微信对话平台token,填写"环境变量"表中的 【对话平台token】、【对话平台EncodingAESKey】并在"功能开关"表中开启智能问答
5.1 设置微信对话平台token,填写"环境变量"表中的 【对话平台token】、【对话平台EncodingAESKey】并在"功能开关"表中开启智能问答

添加一个简单问题到微信对话开放平台,测试对应群内智能问答内容

8.2 如果不希望每个群都开启智能问答,需设置群白名单,首先需要将上图中的群白名单开关设置为开启
5.2 如果不希望每个群都开启智能问答,需设置群白名单,首先需要将上图中的群白名单开关设置为开启

然后将群加入到问答白名单,在“群白名单”表中,加入需要开启的群ID(roomid),群ID在消息中查看(在群里发一条消息,然后控制台查看或在维格表中查找)

详细操作参考 [手把手教程](https://www.yuque.com/atorber/oegota/zm4ulnwnqp9whmd6)

8.4 重启程序,在指定群测试问答

## 使用环境变量启动

> 也可以不使用配置文件,通过配置环境变量启动
Mac、Linux操作系统下运行(仅支持使用wechaty-puppet-wechat和wechaty-puppet-padlocal)

```Shell
export VIKA_TOKEN="替换成自己的维格表token"
export VIKA_SPACENAME="替换成你的维格表空间名称"
npm run sys-init
npm start
```

Windows操作系统下运行(支持使用wechaty-puppet-xp、wechaty-puppet-wechat、wechaty-puppet-padlocal)

推荐使用 wechaty-puppet-xp

```Shell
set VIKA_TOKEN="替换成自己的维格表token"
set VIKA_SPACENAME="替换成你的维格表空间名称"
npm run sys-init
npm run start
```
5.3 重启程序,在指定群测试问答

## 在Docker中部署运行

Expand All @@ -135,23 +101,13 @@ npm run start
### 拉取和运行

- 稳定版本

```Shell
docker run -d
--restart=always
--env VIKA_TOKEN="维格表token"
--env VIKA_SPACENAME="维格表空间名称"
atorber/wechat-openai-qa-bot:v1.8.2
```

- 最新版本

```Shell
docker run -d
--restart=always
--env VIKA_TOKEN="维格表token"
--env VIKA_SPACENAME="维格表空间名称"
--env VIKA_SPACE_NAME="维格表空间名称"
atorber/wechat-openai-qa-bot:latest
```

Expand Down Expand Up @@ -214,3 +170,7 @@ atorber/wechat-openai-qa-bot:latest
- [vue-im](https://github.com/polk6/vue-im)

@polk6开源的客服web项目,实现客服后台回复咨询消息

## Star History

[![Star History Chart](https://api.star-history.com/svg?repos=choogoo/chatflow&type=Date)](https://star-history.com/#choogoo/chatflow&Date)
Empty file removed auto-macos.command
Empty file.
19 changes: 0 additions & 19 deletions auto-windowns.bat

This file was deleted.

Empty file removed cache/a.md
Empty file.
1 change: 1 addition & 0 deletions data/config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
10 changes: 5 additions & 5 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -80,14 +80,14 @@ npm install

4. 修改./config.js配置文件

快速开始仅需要修改VIKA_TOKEN、VIKA_SPACENAME配置项,其他配置项暂时无需修改
快速开始仅需要修改VIKA_TOKEN、VIKA_SPACE_NAME配置项,其他配置项暂时无需修改

```
/* eslint-disable sort-keys */
// 配置文件,所有配置必须齐全,补充空白配置项,其他配置项可按需要修改
const configs = {
VIKA_TOKEN: '替换成自己的维格表token', // VIKA维格表token
VIKA_SPACENAME: '替换成你的维格表空间名称', // VIKA维格表空间名称,修改为自己的空间名称
VIKA_SPACE_NAME: '替换成你的维格表空间名称', // VIKA维格表空间名称,修改为自己的空间名称
}
export default configs
Expand Down Expand Up @@ -155,7 +155,7 @@ Mac、Linux操作系统下运行(仅支持使用wechaty-puppet-wechat和wechaty-

```
export VIKA_TOKEN="替换成自己的维格表token"
export VIKA_SPACENAME="替换成你的维格表空间名称"
export VIKA_SPACE_NAME="替换成你的维格表空间名称"
npm run sys-init
npm start
```
Expand All @@ -166,7 +166,7 @@ Windows操作系统下运行(支持使用wechaty-puppet-xp、wechaty-puppet-wech

```
set VIKA_TOKEN="替换成自己的维格表token"
set VIKA_SPACENAME="替换成你的维格表空间名称"
set VIKA_SPACE_NAME="替换成你的维格表空间名称"
npm run sys-init
npm run start
```
Expand Down Expand Up @@ -280,7 +280,7 @@ npm install
// 配置文件,所有配置必须齐全,补充空白配置项,其他配置项可按需要修改
const configs = {
VIKA_TOKEN: '替换成自己的维格表token', // VIKA维格表token
VIKA_SPACENAME: '替换成你的维格表空间名称', // VIKA维格表空间名称,修改为自己的空间名称
VIKA_SPACE_NAME: '替换成你的维格表空间名称', // VIKA维格表空间名称,修改为自己的空间名称
}
export default configs
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
17 changes: 17 additions & 0 deletions example/ding-dong-bot.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
#!/usr/bin/env -S node --no-warnings --loader ts-node/esm
import 'dotenv/config.js'
import {
log,
WechatyBuilder,
} from 'wechaty'

import { ChatFlow, config, getBotOps } from '../src/chatflow.js'

// 构建机器人
const ops = getBotOps(config.botConfig.wechaty.puppet, config.botConfig.wechaty.token)
const bot = WechatyBuilder.build(ops)

bot.use(ChatFlow(config))
bot.start()
.then(() => log.info('\n================================\n\n机器人启动,如出现二维码,请使用微信扫码登录\n\n================================'))
.catch((e: any) => log.error('机器人运行异常:', JSON.stringify(e)))
Loading

0 comments on commit 1967824

Please sign in to comment.