项目简介
本项目是基于FastAPI和Celery框架构建的标签管理系统,旨在助力用户开展数据标签任务。系统允许用户选择标签模型和规则,通过API接口返回抽样结果来检查标签情况。主要功能涵盖创建标签任务、查看任务列表、检查任务状态、获取抽样结果以及终止任务。
项目的主要特性和功能
- 创建任务:依据用户定义的条件,创建并执行标签任务。
- 任务列表:返回近期执行任务及其相关信息。
- 检查状态:输入任务ID,可检查任务的标签状态和上架状态。
- 抽样结果:输入任务ID,返回抽样数据。
- 终止任务:根据用户输入的任务ID,终止相应任务。
安装使用步骤
1. 设置Docker
若已安装Docker,可跳过此步骤;否则,请参考Docker Guides进行安装。
2. 设置环境
下载Redis的Docker版本:
bash
$ docker run -d -p 6379:6379 redis
进入虚拟环境:
Windows
bash
$ git clone https://ychuang:weber1812eland@gitting.eland.com.tw/rd2/audience/audience-api.git
$ cd <your project dir>
$ virtualenv venv
$ venv\Scripts\activate
$ pip install -r requirements.txt
Ubuntu
bash
$ git clone https://ychuang:weber1812eland@gitting.eland.com.tw/rd2/audience/audience-api.git
$ cd <your project dir>
$ virtualenv venv -p $(which python3.8)
$ source venv/bin/activate
$ pip install -r requirements.txt
3. 设置数据库信息
在项目根目录下创建一个.env
文件,并设置数据库环境变量信息:
bash
INPUT_HOST=<数据库主机>
INPUT_PORT=<数据库端口>
INPUT_USER=<数据库用户>
INPUT_PASSWORD=<数据库密码>
INPUT_SCHEMA=<数据库模式>
OUTPUT_HOST=<输出数据库主机>
OUTPUT_PORT=<输出数据库端口>
OUTPUT_USER=<输出数据库用户>
OUTPUT_PASSWORD=<输出数据库密码>
OUTPUT_SCHEMA=<输出数据库模式>
ENV=<选择development或production>
4. 初始化Worker
确保Redis正在运行,然后启动Worker:
Windows
bash
$ make run_worker_1
Ubuntu
bash
$ make run_worker_1
5. 运行API
配置API地址(默认地址为localhost:8000),然后启动API:
bash
$ make run_api
使用示例
Swagger UI
在浏览器中输入<api地址>:<api端口>/docs
(例如http://127.0.0.1:8000/docs),打开Swagger用户界面,进行API测试。
创建任务
输入任务信息,返回任务ID和任务配置:
shell
curl -X 'POST' \
'http://<api地址>:<api端口>/api/tasks/' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"MODEL_TYPE": "keyword_model",
"PREDICT_TYPE": "author_name",
"START_TIME": "2020-01-01",
"END_TIME": "2021-01-01",
"PATTERN": {},
"INPUT_SCHEMA": "wh_tiktok",
"INPUT_TABLE": "ts_page_content",
"OUTPUT_SCHEMA": "audience_result",
"COUNTDOWN": 5,
"QUEUE": "queue1",
"SITE_CONFIG": {"host": <source.host>,
"port": <source.port>,
"user": <source.username>,
"password": <source.password>,
"db": <source.schema>,
"charset": "utf8mb4"}
}'
任务列表
返回近期创建的任务ID及其相关信息:
shell
curl -X 'GET' \
'http://<api地址>:<api端口>/api/tasks/' \
-H 'accept: application/json'
检查状态
输入任务ID,返回任务状态和上架状态:
shell
curl -X 'GET' \
'http://<api地址>:<api端口>/api/tasks/<task_id>' \
-H 'accept: application/json'
抽样结果
输入任务ID,返回抽样结果:
shell
curl -X 'GET' \
'http://<api地址>:<api端口>/api/tasks/<task_id>/sample/' \
-H 'accept: application/json'
终止任务
输入任务ID,终止任务:
shell
curl -X 'POST' \
'http://<api地址>:<api端口>/api/tasks/' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"TASK_ID": <task_id>
}'
错误代码
项目中的错误代码分为API任务错误代码和HTTP错误代码,具体错误信息请参考项目文档。
系统推荐和基准性能
系统推荐
- 系统:Ubuntu 18.04.5 LTS(推荐)或Windows 10
- Python环境:Python 3.8
- 处理器:Intel(R) Core(TM) i5-8259U +
- 内存:16G +
基准性能
- 数据大小:39,291,336行
- 预测模型:keyword_base模型
- 完成时间:149.378分钟
- 最大内存使用:812.38 Mb
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】