Skip to content

Commit

Permalink
优化README说明,方便后续执行自动化用例。
Browse files Browse the repository at this point in the history
  • Loading branch information
deadwalks committed Sep 9, 2024
1 parent 4e208ff commit 225161e
Showing 1 changed file with 109 additions and 79 deletions.
188 changes: 109 additions & 79 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,22 +38,15 @@ smart-finance-bot \

## 使用说明

### 拉取代码
**第一步**:拉取代码到本地
### 1、拉取代码
```shell
git clone --recurse-submodules https://gitee.com/deadwalk/smart-finance-bot.git
```

> Git客户端[gitee使用教程](https://blog.csdn.net/weixin_50470247/article/details/133585369)
### 服务部署
目前服务部署启动支持以下两种方式:
- 基于源码的运行:该方法需要手动安装相关依赖、启动Chroma数据库等。
- 基于Docker运行:该方法使用Docker-Compose 进行构建,主要用于快速在服务器上部署环境及体验。

#### 基于源码的运行
##### 1、安装Python的依赖
进入工程根目录后,通过命令行运行如下命令:
### 2、安装依赖
`cd smart-finance-bot`,进入工程根目录后,运行如下命令安装依赖

```bash
# 安装依赖前,强烈建议使用conda虚拟环境,例如:
Expand All @@ -65,7 +58,7 @@ pip install -r requirements.txt

> 注意:经过实际测试Python 3.11版本会存在依赖冲突问题,所以请将Python版本切换为3.10。
##### 2、配置大模型的APIKey
### 3、配置大模型的APIKey
打开配置文件 app/conf的配置文件,配置自己的API Key即可。

> 备注:
Expand All @@ -75,59 +68,89 @@ pip install -r requirements.txt
如果想测试API-KEY是否生效,可以参照 `附录``关于如何配置智谱大模型` 的章节内容。

### 4、准备向量数据库
1. 访问网盘下载链接
下载地址:https://share.weiyun.com/wa3QocyY
2. 下载 `chroma_db_bge`
3.`chroma_db_qwen`移动至`smart-finance-bot`目录下,并重命名为`chroma_db`
```
smart-finance-bot\
|-chroma_db # ←放在这个位置
|-app
```

##### 3、准备向量数据库
准备向量数据库有两种方式:
- 第一种:运行自动化命令批量导入
- 第二种:直接从网盘下载已经建好的向量数据库

**第一种:** 运行自动化命令批量导入
> !!注意:执行导入脚本前,请确保没有使用命令行启动 `Chroma` 向量数据库。
### 5、启动Chroma数据库
Linux/Mac用户:
```shell
# 切换/保持当前目录为 smart-finance-bot
cd smart-finance-bot

# 给shell脚本赋予运行权限
chmod +x ./scripts/import_pdf.sh

# 启动批量导入脚本
./scripts/import_pdf.sh
# 启动Chroma数据库
./scripts/start_chroma.sh
```

Windows用户:
```bash
scripts\import_pdf.bat
scripts\start_chroma.bat
```

**第二种:** 运行自动化命令批量导入
1. 访问[同义金融大模型的向量数据库](https://platform.virtaicloud.com/gemini_web/workspace/space/jxmdlbjjdhj4/data/detail/486768881516830720)
2. 可以获取下载链接,下载对应的向量数据库
3. 下载后将数据库文件移动至当前工程目录下,例如:将`chroma_db_qwen`移动至`smart-finance-bot`目录下,并重命名为`chroma_db`即可在启动chromadb时加载使用。
### 6、开展工作
注意:此处后续的工作因为需求不尽相同,所以分别阐述介绍。
- 如果你是要执行自动化测试,请查看 `6.1 批量化执行问题提问测试方法`
- 如果你是想启动后端和前端查看Demo效果,请查看 `6.2 启动后端和前端查看Demo效果`
- 如果你是想进行代码调试,请查看 `6.3 代码调试方法`

##### 4、启动Chroma数据库
Linux/Mac用户:
```shell
#### 6.1 批量化执行问题提问测试方法
##### SQLite数据库批量建立索引方法
第一步:执行命令给SQLite数据库建立索引
```bash
# 切换/保持当前目录为 smart-finance-bot
cd smart-finance-bot

# 给shell脚本赋予运行权限
chmod +x ./scripts/start_chroma.sh
# 运行添加索引脚本
./scripts/run_addindexs.sh
```
> 注意:该项工作仅运行一次即可。
# 启动Chroma数据库
./scripts/start_chroma.sh
##### 配置自动化测试的start和end用例序号
第二步:配置自动化测试的start和end用例序号

Linux/Mac用户:
1. 编辑`scripts/run_test_cases.sh` 文件
2. 修改 `--start``--end` 参数(下面是一个执行 0~100 的例子)。
```bash
python "$PYTHON_SCRIPT" --job test_question --start 0 --end 100
```

Windows用户:
1. 编辑`scripts\run_test_cases.bat` 文件
2. 修改 `--start``--end` 参数(下面是一个执行 0~100 的例子)。

```bash
scripts\start_chroma.bat
python "%PYTHON_SCRIPT%" --job test_question --start 0 --end 100
```

> 如果想复用已经建立的向量数据库,可以在启动chroma的脚本中修改启动的path。
##### 执行自动化脚本
第三步:运行测试脚本
```bash
# 切换/保持当前目录为 smart-finance-bot
cd smart-finance-bot

##### 5、启动后端服务
# 运行测试脚本(Linux/Mac用户)
./scripts/run_test_cases.sh

# 运行测试脚本(Windows用户)
scripts\run_test_cases.bat
```
> 说明:
> 1. Window用户注意运行对应的 bat 文件。
> 2. 测试结果会保存在 `test_result` 目录中,其中 `.json` 是问题运行的结果,`.log` 是运行日志。
> 3. 如果执行过程中出现异常中断,请重新执行上述脚本,脚本会提示是否断点续跑,选择Y即可。
#### 6.2 启动后端和前端查看Demo效果
以下是启动后端和前端查看效果的方法:

##### 启动后端服务
```bash
# 切换/保持当前目录为 smart-finance-bot
cd smart-finance-bot
Expand All @@ -137,7 +160,7 @@ python app/server.py

```

##### 6、启动前端服务
##### 启动前端服务
**第一步**:安装Node.js
- 访问https://nodejs.cn/download/
- 按照页面提示下载Node.js到本地后进行安装
Expand All @@ -151,68 +174,75 @@ cd chatweb
npm install
```

**第三步**启动服务
**第三步**启动前端服务
```bash
# 启动服务
npm run dev
```
启动完毕后,按照提示访问 `http://localhost:5173/` 即可查看效果。

#### 基于Docker的运行
##### 1、准备Docker运行环境
安装Docker,具体方法不再赘述,可以查看[10分钟学会Docker的安装和使用](https://blog.csdn.net/yohnyang/article/details/138435593)

##### 2、下载Docker-Compose文件
命令行下运行
```bash
curl -L https://github.com/docker/compose/releases/tag/v2.28.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
```
#### 6.3 代码调试方法
- 如果你使用的开发工具是 VsCode,可以参考如下步骤:
- 使用vscode打开smart-finance-bot工程根目录。
- 在app目录下找到test_framework.py文件
- 启用vscode的调试模式即可。

##### 3、启动服务
```bash
docker-compose -f docker-compose-base.yaml up -d
```
> - `docker-compose-base.yaml` 对应是只启动基础的服务,包括python后端、nodejs前端、Chroma数据库服务。
> - `docker-compose-es.yaml` 对应是只启动ElasticSearch服务的配置
> - `docker-compose-all.yaml` 对应是启动所有服务的配置,包括Python后端服务、前端nodejs、ElasticSearch服务等。
- 如果你使用的开发工具是 pycharm,可以参考如下步骤:
- 使用pycharm打开app目录。(特别注意:pycharm需要将app目录设置为项目根目录)
- 找到test_framework.py文件
- 启用调试模式即可。

## 附录
### 关于批量导入PDF到向量库的方法
> !!注意:执行导入脚本前,请确保没有使用命令行启动 `Chroma` 向量数据库。
### 关于如何进行批量化问题提问的测试

第一步:给SQLite数据库建立索引
#### SQLite数据库批量建立索引方法
```bash
Linux/Mac用户:
```shell
# 切换/保持当前目录为 smart-finance-bot
cd smart-finance-bot

# 运行添加索引脚本
./scripts/run_addindexs.sh
```
> 注意:该项工作仅运行一次即可。
# 给shell脚本赋予运行权限
chmod +x ./scripts/import_pdf.sh

# 启动批量导入脚本
./scripts/import_pdf.sh
```

第二步:运行测试脚本
#### 执行批量化问题提问脚本的方法
Windows用户:
```bash
# 切换/保持当前目录为 smart-finance-bot
cd smart-finance-bot

# 运行测试脚本
./scripts/run_test_cases.sh
scripts\import_pdf.bat
```
> 说明:
> 1. 测试结果会保存在 `test_result` 目录中。
> 2. 如果想调整运行的测试用例,可以直接编辑 `run_test_cases.sh` 文件,修改 `--start``--end` 参数。

### 关于如何配置智谱大模型
### 关于如何配置智谱大模型地方法
1. 访问智谱开放平台https://bigmodel.cn/
2. 注册账号并且登录
3.`API密钥` 中创建自己的API Key
4.`conf/.zhipu` 文件中配置好第3步创建好的密钥
5.`app/settings.py` 中修改全局配置CHAT的赋值,即: `CHAT = get_zhipu_models(model="glm-4-plus")`
6. 至此,大模型修改完毕,你可以使用 `test_framework.py` 中的 `test_llm_api()` 进行测试。



### 关于使用Docker部署后端和前端服务的方法
#### 1、准备Docker运行环境
安装Docker,具体方法不再赘述,可以查看[10分钟学会Docker的安装和使用](https://blog.csdn.net/yohnyang/article/details/138435593)

#### 2、下载Docker-Compose文件
命令行下运行
```bash
curl -L https://github.com/docker/compose/releases/tag/v2.28.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
```

#### 3、启动服务
```bash
docker-compose -f docker-compose-base.yaml up -d
```
> - `docker-compose-base.yaml` 对应是只启动基础的服务,包括python后端、nodejs前端、Chroma数据库服务。
> - `docker-compose-es.yaml` 对应是只启动ElasticSearch服务的配置
> - `docker-compose-all.yaml` 对应是启动所有服务的配置,包括Python后端服务、前端nodejs、ElasticSearch服务等。

### 关于启动ElasticSearch(简称ES)服务的方法
第一步:vim 编辑 `/etc/sysctl.conf`,增加 `vm.max_map_count`
```bash
Expand All @@ -222,11 +252,11 @@ vm.max_map_count=262144
```bash
sudo sysctl -p
```

第二步:检查 docker/elasticsearch 目录下是否有读写权限。

第三步:运行如下命令启动ES服务

```bash
docker-compose -f docker-compose-es.yaml up -d
```
```

0 comments on commit 225161e

Please sign in to comment.