前言
该项目结合Milvus和BERT来构建问答系统。这旨在提供一种结合人工智能模型的Milvus实现语义相似性匹配的解决方案。
github地址:bootcamp问答系统
具体部署
一、安装Milvus
安装docker和docker-compose
sudo apt-get update && sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common && curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - && sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" && sudo apt-get update && sudo apt-get install -y docker-ce
pip install docker-compose
下载docker-compose.yml
下载milvus-standalone-docker-compose.yml并重名为docker-compose.yml 下载链接
开启Milvus
sudo docker-compose up -d
sudo docker-compose ps #查看容器的状态
运行正常可看到如下状态:
sudo docker-compose down // 停止Milvus
sudo rm -rf volumes // 停止Milvus后删除数据
二、开启MySql
在docker环境下,运行如下命令:
docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
docker ps // 查看docker运行列表
可通过列表查找到mysql的唯一标识号,通过标识号进入mysql镜像查看状态:
docker exec -it [唯一表示号] /bin/bash
mysql -uroot -p
三、运行qa-chatbot-server
运行参数如下图:
添加环境变量:
export Milvus_HOST='127.0.0.1'
export Milvus_PORT='19530'
export Mysql_HOST='127.0.0.1'
docker下运行
$ docker run -d \
-p 8000:8000 \
-e "MILVUS_HOST=${Milvus_HOST}" \
-e "MILVUS_PORT=${Milvus_PORT}" \
-e "MYSQL_HOST=${Mysql_HOST}" \
milvusbootcamp/qa-chatbot-server:v1
四、运行服务端
从该链接下载中文模型,放置在quick_deploy/server/src/models/路径下
按照参数表修改quick_deploy/server/src/config.py文件
特别地,修改MODEL_PATH地址为我们中文模型的路径:
在导入csv文件时,若为中文问答集,默认的逗号分隔符会导致问题和答案部分逗号对数据集分割的误判,故设置导入的csv文件以分号为分隔符,相应的修改quick_deploy/server/src/opertio ns/load.py中读取csv文件部分为:
另外由于mysql建表编码格式的问题,可能导致后续导入数据出错,修改quick_deploy/server/ src/ mysql_helper.py中创建mysql表部分为:
运行服务端启动程序:
cd server/src
python main.py
打开浏览器,进入127.0.0.1:8000/docs便可利用FastAPI对服务器端提供的接口进行测试
五、运行客户端
命令行输入如下:
# Please modify API_URL to the IP address and port of the server.
$ export API_URL='http://127.0.0.1:8000'
$ docker run -d -p 80:80 \
-e API_URL=${API_URL} \
milvusbootcamp/qa-chatbot-client:v1
在浏览器输入http://127.0.0.1:8000,可得到网页前端。