Note
当前项目还处于开发的早期,还存在一些 BUG,有问题随时提 issue。
基于大模型 RAG 知识库与知识图谱的问答平台。Llamaindex + VueJS + Flask + Neo4j。大模型适配 OpenAI、国内主流大模型平台的模型调用、本地 vllm 部署。只需要配置对应服务平台的 API_KEY
即可使用。
在启动之前,提供 API 服务商的 API_KEY,并放置在 src/.env
文件中,参考 src/.env.template
。默认使用的是智谱AI。需要配置 ZHIPUAI_API_KEY=<ZHIPUAI_API_KEY>
。
本项目的基础对话服务可以在不含显卡的设备上运行,大模型使用在线服务商的接口。但是如果想要完整的知识库对话体验,则需要 8G 以上的显存。因为需要本地运行 embedding 模型和 rerank 模型。
提醒:下面的脚本会启动开发版本,源代码的修改会自动更新(含前端和后端)。如果生产环境部署,请使用 docker/docker-compose.yml
启动。
docker-compose -f docker/docker-compose.dev.yml up --build
下面的这些容器都会启动:
[+] Running 7/7
✔ Network docker_app-network Created
✔ Container graph-dev Started
✔ Container milvus-etcd-dev Started
✔ Container milvus-minio-dev Started
✔ Container milvus-standalone-dev Started
✔ Container api-dev Started
✔ Container web-dev Started
预览
关闭 docker 服务:
docker-compose -f docker/docker-compose.dev.yml down
查看日志:
docker logs <CONTAINER_NAME> # 例如:docker logs api-dev
如果需要使用到本地模型,比如向量模型或者重排序模型,则需要将环境变量中设置的 MODEL_ROOT_DIR
做映射,比如本地模型都是存放在 /hdd/models
里面,则需要在 docker-compose.yml
和 docker-compose.dev.yml
中添加:
services:
api:
build:
context: ..
dockerfile: docker/api.Dockerfile
container_name: api-dev
working_dir: /app
volumes:
- ../src:/app/src
- ../saves:/app/saves
- /hdd/zwj/models:/hdd/zwj/models # <== 修改这一行
生产环境部署:本项目同时支持使用 Docker 部署生产环境,只需要更换 docker-compose
文件就可以了。
docker-compose -f docker/docker-compose.yml up --build
- 2024.10.12 后端修改为 FastAPI,并添加了 Milvus-Standalone 的独立部署。
如果无法直接下载相关镜像,参考 DaoCloud/public-image-mirror,尝试将前缀替换为:
# 以 neo4j 为例,其余一样
docker pull m.daocloud.io/docker.io/library/neo4j:latest
# 然后重命名镜像
docker tag m.daocloud.io/docker.io/library/neo4j:latest neo4j:latest