开发环境搭建

1 项目结构

  1. .
  2. ├── LICENSE # License 申明
  3. ├── README.md
  4. ├── apps # 后端项目根目录
  5. ├── common # 项目公共资源目录
  6. ├── smartdoc # 项目主目录
  7. ├── users # 用户相关
  8. ├── manage.py # django项目入口
  9. └── sdk # 项目通用的前后端依赖/网关的前端
  10. ├── pyproject.toml # 后端依赖 配置文件
  11. └── ui # 前端项目根目录
  12. ├── config_example.yml # 项目配置示例
  13. ├── main.py # 项目入口文件 python main.py start 启动项目

2 环境准备

3 开发环境搭建

安装poetry包管理器

  1. pip install poetry

4 开发准备

4.1 本地配置

若要项目启动,需要准备配置文件及目录

  • 准备配置文件
  1. # 将config_example.yml配置文件 目录拷贝至 /opt/maxkb/conf目录下 如果是Windows D:\\opt\\maxkb\\conf
  2. cp config_example.yml /opt/maxkb/conf

- 配置 /opt/maxkb/conf/config_example.yml

  1. # 数据库配置
  2. DB_NAME: maxkb
  3. DB_HOST: localhost
  4. DB_PORT: 5432
  5. DB_USER: root
  6. DB_PASSWORD: xxx
  7. DB_ENGINE: django.db.backends.postgresql_psycopg2
  8. # 模型相关配置
  9. # 模型路径 如果EMBEDDING_MODEL_NAME是绝对路径则无效,反之则会从https://huggingface.co/下载模型到当前目录
  10. EMBEDDING_MODEL_PATH: /opt/maxkb/model/
  11. # 模型名称 如果模型名称是绝对路径 则会加载目录下的模型,如果是模型名称,则会在https://huggingface.co/下载模型 模型的下载位置为EMBEDDING_MODEL_PATH
  12. EMBEDDING_MODEL_NAME: /opt/maxkb/model/shibing624_text2vec-base-chinese

5 开发调试

先在ui执行安装前端需要的依赖

  1. npm install

启动项目

  1. npm run dev

5.2 启动后端项目

注意: 在项目根目录执行

创建venv

  1. #win
  2. python -m venv venv
  3. #linux/mac
  4. python3 -m venv venv

激活venv

  1. #win
  2. .\venv\Scripts\activate
  3. #linux/mac
  4. source venv/bin/activate

安装后端需要的依赖

  1. poetry install

启动项目

  1. python main.py start

6 常见问题

  • 关于数据库版本

    1. postgresql:15.x
  • 关于 Python 版本

    1. python:3.11.x
  • database “xxx” does not exist

数据库不存在需要创建一个与配置文件相同的数据库, 这里我们创建一个maxkb的数据库

  1. CREATE DATABASE "maxkb";
  2. \c "maxkb";
  3. CREATE EXTENSION "vector";