Go to file
2024-09-18 21:03:12 +08:00
local_neo4j update 2024-09-09 17:07:03 +08:00
src graph support 2024-09-18 21:03:12 +08:00
vllm update vllm script 2024-09-13 15:24:48 +08:00
web graph support 2024-09-18 21:03:12 +08:00
.dockerignore add docker support for whole project 2024-09-11 01:09:35 +08:00
.gitignore update 2024-09-09 17:07:03 +08:00
docker-compose.yml Update docker-compose.yml 2024-09-11 01:13:23 +08:00
Dockerfile add docker support for whole project 2024-09-11 01:09:35 +08:00
README.md Update README.md 2024-09-13 16:05:56 +08:00
requirements.txt add docker support for whole project 2024-09-11 01:09:35 +08:00
run.sh 修改后端入口为 src, 运行代码不需要使用 cd src, 添加前端查看检索结果 2024-07-28 16:16:52 +08:00

Yuxi (语析)

准备

  1. 提供 API 服务商的 API_KEY并放置在 src/.env 文件中,参考 src/.env.template。默认使用的是智谱AI。
  2. 配置 python 环境 pip install -r requirements.txt

如果不启用知识库,可以仅安装下面的依赖

FlagEmbedding==1.2.10
Flask==3.0.3
Flask_Cors==4.0.1
openai==1.35.10
python-dotenv==1.0.1
PyYAML==6.0.1
zhipuai

配置图数据库 neo4j (可选)

使用 docker 部署 neo4j 服务,配置文件见 local_neo4j/docker-compose.yml. 默认账号密码见最后一行,可以使用 http://localhost:7474/ 在浏览器可视化访问。

cd local_neo4j
docker compose up -d

可以使用 python test_neo4j.py 来测试是否正常启动。使用 docker compose down 可停止服务。 如果想要管理 neo4j也可以使用 docker ps 查看容器 id然后使用 docker exec -it <CONTAINER_ID> /bin/bash 进入容器。 如果想要删除数据库中的文件,可以进入容器并停止 neo4j 后,执行 rm -rf /data/databases

启动

1. 手动启动

python -m src.api

cd web
npm install
npm run server

2. 脚本启动

bash run.sh

3. Docker 启动

提醒:此部分暂时依赖于前端打包之后的内容(后面考虑更新),同时会自动启动 neo4j 图数据库。

docker compose up --build

如果需要使用到本地模型,比如向量模型或者重排序模型,则需要将环境变量中设置的 MODEL_ROOT_DIR 做映射,比如本地模型都是存放在 /hdd/models 里面,则需要在 docker-compose.yml 中添加:

services:
  # 后端服务
  backend:
    image: pytorch/pytorch:2.4.1-cuda11.8-cudnn9-runtime  # 或者您可以自定义 Python 基础镜像
    container_name: backend
    working_dir: /app
    volumes:
      - ./src:/app/src  # 映射源代码
      - ./requirements.txt:/app/requirements.txt
      - ./saves:/app/saves
      - /hdd/models:/hdd/models  # <=== 修改这里
...

提醒:启动 docker 之后,如果需要进行调试的时候,务必先停掉 docker (在项目路径下,使用 docker compose down),然后再运行 bash run.sh,不然会出现端口冲突。这是由于没有单独设置生产环境和开发环境,这个以后再说。