littlebot
Published on 2025-04-15 / 3 Visits
0

【源码】基于FastAPI和Celery的标签管理系统

项目简介

本项目是基于FastAPI和Celery框架构建的标签管理系统,旨在助力用户开展数据标签任务。系统允许用户选择标签模型和规则,通过API接口返回抽样结果来检查标签情况。主要功能涵盖创建标签任务、查看任务列表、检查任务状态、获取抽样结果以及终止任务。

项目的主要特性和功能

  1. 创建任务:依据用户定义的条件,创建并执行标签任务。
  2. 任务列表:返回近期执行任务及其相关信息。
  3. 检查状态:输入任务ID,可检查任务的标签状态和上架状态。
  4. 抽样结果:输入任务ID,返回抽样数据。
  5. 终止任务:根据用户输入的任务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】