NLP接口基础项目
项目目的:统一的NLP算法api框架,nlp算法在该项目的基础上完成业务代码编写。
文件目录
|-- algo # 算法业务代码
| |-- __init__.py
|-- app # 接口相关
| |--db # 数据库连接相关
| |--templates # 前端模板相关
| |-- __init__.py # app初始化
| |-- nlp.py # nlp接口处理
|-- config # 配置文件
| |-- __init__.py
| |-- config.py # 默认配置文件,全局变量
|-- docker #docker相关,部署使用
| |-- Dockerfile
| |-- gunicorn.conf
| |-- run.sh
|-- log # 日志文件
| |-- logfile # 多logger时的目录
|-- models # 模型文件,模型不上库
| |-- __init__.py
|-- tests # 测试相关
| |-- test # 自动化测试相关
| | |-- test_allure_demo 生成allure可视化面板
| |-- __init__.py
| |-- test.py # 普通测试脚本
|-- utils # 公共模块
| |-- __init__.py
| |-- logClass.py # 日志模块
|-- setup_app.py # 启动文件
|-- docker-compose.yaml # docker服务调度
|-- requirements.txt # 配置依赖
|-- 编码规范.md
基础结构
- setup_app 作为启动文件
- app/init.py 完成app的创建和初始化
- app/db 数据库模块
- app/templates 模板模块
- config/config 配置全局变量
- blueprint:在接口模块内创建蓝图并注册到app上
创建blueprint bp = Blueprint('name', __name__) 在app/init.py中注册蓝图 pp.register_blueprint(bp)
- utils/logClass 日志模块
根据Config.LOG_PATH_LIST字段判是否需要生成多个日志对象 当LOG_PATH_LIST=None时,生成全局一个logger对象,日志打印在log目录下 当LOG_PATH_LIST=['A', 'B']时,生成logger对象字典,打印在以列表元素命名的log子目录下 如,log/A,log/B,可以根据返回logger对象字典的键值获取对应的logger对象,完成指定对象的日志打印
- docker 部署模块
根据基础的镜像与统一的部署结构,完成部署
- tests 测试模块,测试脚本放在该目录下
- tests/test 自动化测试模块,为了区分普通测试(自动化测试脚本不打到容器中)
- utiles 公共模块,公共方法放在该目录下
- models 模型,模型文件放在该目录下,不上库
- algo 算法业务代码
演示样例
- 1、download该项目代码到本地,创建自己项目的gitlab远程仓库
- 2、确定自己项目日志打印方式(全局或多个),指定config/config的Config.LOG_PATH_LIST值
- 3、在app下创建文件,该文件中创建blueprint并配置路由策略
- 4、在app.init.py文件里注册blueprint
- 5、项目依赖数据库参考app/db目录代码
- 6、在algo里面编写自己的算法代码和模型处理代码
- 7、训练的模型文件比较大,放在models下通过挂载的方式打包,不上库
- 8、tests目录下可编写普通测试文件
- 9、tests/test目录下编写自动化测试文件,可根据需要调整目录结构
- 10、.gitlab-ci.yml文件作为自动化部署文件,可在每次push代码时自动打包部署