2024-07-28 16:16:52 +08:00
|
|
|
|
<img src="web/public/home.png" style="border-radius: 16px; margin: 0 auto; max-height: 400px; display: block;"/>
|
2024-07-09 05:04:20 +08:00
|
|
|
|
|
2024-09-26 10:57:20 +08:00
|
|
|
|
<h1 style="text-align: center">Yuxi (语析) </h1>
|
|
|
|
|
|
|
|
|
|
|
|
> [!WARNING]
|
2024-09-26 11:48:47 +08:00
|
|
|
|
> **[WIP]** 当前项目还处于开发的早期。
|
|
|
|
|
|
|
|
|
|
|
|
## 预览
|
|
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
|

|
|
|
|
|
|

|
|
|
|
|
|

|
2024-09-26 10:57:20 +08:00
|
|
|
|
|
2024-09-08 22:31:18 +08:00
|
|
|
|
|
2024-09-04 17:41:26 +08:00
|
|
|
|
## 准备
|
2024-07-07 01:58:23 +08:00
|
|
|
|
|
2024-09-28 00:39:31 +08:00
|
|
|
|
1. 提供 API 服务商的 API_KEY,并放置在 `src/.env` 文件中,参考 `src/.env.template`。默认使用的是智谱AI。需要配置 `ZHIPUAI_API_KEY=<ZHIPU_KEY>`。
|
2024-09-26 20:11:51 +08:00
|
|
|
|
2. 配置 python 环境 `pip install -r requirements.txt`,python 版本应当小于 `3.12`。
|
2024-09-23 21:21:57 +08:00
|
|
|
|
3. 前端 UI 部分,需要安装 Node.js 环境,参考:[Download Node.js](https://nodejs.org/en/download/package-manager)。
|
2024-08-30 11:54:21 +08:00
|
|
|
|
|
2024-09-04 17:41:26 +08:00
|
|
|
|
**如果不启用知识库,可以仅安装下面的依赖**
|
2024-08-30 11:54:21 +08:00
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
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
|
|
|
|
|
|
```
|
2024-07-07 01:58:23 +08:00
|
|
|
|
|
2024-09-26 20:11:51 +08:00
|
|
|
|
> [!WARNING]
|
2024-09-25 13:47:04 +08:00
|
|
|
|
> milvus-lite(向量数据库)不支持在 Windows 上运行,建议使用 WSL,详见:https://github.com/milvus-io/milvus-lite/issues/175
|
|
|
|
|
|
|
2024-09-11 01:09:35 +08:00
|
|
|
|
### 配置图数据库 neo4j (可选)
|
2024-07-07 01:58:23 +08:00
|
|
|
|
|
2024-09-11 01:09:35 +08:00
|
|
|
|
使用 docker 部署 neo4j 服务,配置文件见 [local_neo4j/docker-compose.yml](local_neo4j/docker-compose.yml).
|
2024-09-06 12:54:17 +08:00
|
|
|
|
默认账号密码见最后一行,可以使用 `http://localhost:7474/` 在浏览器可视化访问。
|
2024-07-07 01:58:23 +08:00
|
|
|
|
|
|
|
|
|
|
```bash
|
2024-09-04 17:41:26 +08:00
|
|
|
|
cd local_neo4j
|
|
|
|
|
|
docker compose up -d
|
2024-07-07 01:58:23 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
2024-09-04 17:41:26 +08:00
|
|
|
|
可以使用 `python test_neo4j.py` 来测试是否正常启动。使用 `docker compose down` 可停止服务。
|
2024-09-06 12:54:17 +08:00
|
|
|
|
如果想要管理 neo4j,也可以使用 `docker ps` 查看容器 id,然后使用 `docker exec -it <CONTAINER_ID> /bin/bash` 进入容器。
|
|
|
|
|
|
如果想要删除数据库中的文件,可以进入容器并停止 neo4j 后,执行 `rm -rf /data/databases`。
|
2024-09-04 17:41:26 +08:00
|
|
|
|
|
|
|
|
|
|
## 启动
|
2024-07-07 01:58:23 +08:00
|
|
|
|
|
2024-09-11 01:09:35 +08:00
|
|
|
|
### 1. 手动启动
|
|
|
|
|
|
|
2024-07-07 01:58:23 +08:00
|
|
|
|
```bash
|
2024-09-23 21:21:57 +08:00
|
|
|
|
# 后端部分
|
2024-09-11 01:09:35 +08:00
|
|
|
|
python -m src.api
|
2024-07-28 16:16:52 +08:00
|
|
|
|
|
2024-09-23 21:21:57 +08:00
|
|
|
|
# 前端部分
|
2024-07-07 01:58:23 +08:00
|
|
|
|
cd web
|
2024-09-23 21:21:57 +08:00
|
|
|
|
npm install # 首次运行需要
|
2024-07-07 01:58:23 +08:00
|
|
|
|
npm run server
|
2024-07-28 16:16:52 +08:00
|
|
|
|
```
|
2024-07-07 01:58:23 +08:00
|
|
|
|
|
2024-09-11 01:09:35 +08:00
|
|
|
|
### 2. 脚本启动
|
2024-07-28 16:16:52 +08:00
|
|
|
|
|
2024-09-23 21:21:57 +08:00
|
|
|
|
注意:此脚本不会启动图数据库 neo4j。
|
|
|
|
|
|
|
2024-07-28 16:16:52 +08:00
|
|
|
|
```bash
|
|
|
|
|
|
bash run.sh
|
2024-07-07 01:58:23 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
2024-09-11 01:09:35 +08:00
|
|
|
|
### 3. Docker 启动
|
|
|
|
|
|
|
|
|
|
|
|
**提醒**:此部分暂时依赖于前端打包之后的内容(后面考虑更新),同时会自动启动 neo4j 图数据库。
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
docker compose up --build
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
如果需要使用到本地模型,比如向量模型或者重排序模型,则需要将环境变量中设置的 `MODEL_ROOT_DIR` 做映射,比如本地模型都是存放在 `/hdd/models` 里面,则需要在 `docker-compose.yml` 中添加:
|
|
|
|
|
|
|
|
|
|
|
|
```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 # <=== 修改这里
|
|
|
|
|
|
...
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2024-09-13 16:05:56 +08:00
|
|
|
|
**提醒**:启动 docker 之后,如果需要进行调试的时候,务必先停掉 docker (在项目路径下,使用 `docker compose down`),然后再运行 `bash run.sh`,不然会出现端口冲突。这是由于没有单独设置生产环境和开发环境,这个以后再说。
|
2024-09-25 13:47:04 +08:00
|
|
|
|
|
|
|
|
|
|
## 其余脚本
|
|
|
|
|
|
|
|
|
|
|
|
镜像构建之后,单独启动后端服务
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
docker run -w /app -v ./src:/app/src -v ./saves:/app/saves -p 5000:5000 yuxi-know-backend
|
2024-09-26 10:57:20 +08:00
|
|
|
|
```
|
2024-09-27 12:40:58 +08:00
|
|
|
|
|
|
|
|
|
|
## Docker 镜像相关
|
|
|
|
|
|
|
|
|
|
|
|
如果无法直接下载相关镜像,尝试将前缀替换为:
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# 以 neo4j 为例,其余一样
|
|
|
|
|
|
docker pull m.daocloud.io/docker.io/library/neo4j:latest
|
|
|
|
|
|
|
|
|
|
|
|
# 然后重命名镜像
|
|
|
|
|
|
docker tag m.daocloud.io/docker.io/library/neo4j:latest neo4j:latest
|
|
|
|
|
|
```
|