diff --git a/README.md b/README.md index ec9a4c9..4612173 100644 --- a/README.md +++ b/README.md @@ -92,7 +92,10 @@ tianfeng_task/ ├── api/ # API接口定义 │ ├── task_api.py # 任务相关API │ ├── workflow_api.py # 工作流相关API -│ └── component_api.py # 组件相关API +│ ├── component_api.py # 组件相关API +│ ├── task_instance_api.py # 任务实例相关API +│ ├── common_params_api.py # 通用参数API +│ └── models/ # API模型定义 ├── services/ # 业务服务层 │ ├── task_service.py # 任务服务 │ ├── workflow_service.py # 工作流服务 @@ -161,6 +164,10 @@ tianfeng_task/ │ ├── integration/ # 集成测试 │ └── fixtures/ # 测试数据 ├── app.py # 应用入口 +├── Dockerfile # Docker构建文件 +├── docker-compose.yml # Docker Compose配置 +├── .env.example # 环境变量示例 +├── .dockerignore # Docker忽略文件 └── requirements.txt # 依赖包列表 ``` @@ -321,37 +328,6 @@ tianfeng_task/ - 展示任务执行日志和变量值 - 提供任务暂停、取消、重试等操作 -### 2. API接口交互 - -系统提供RESTful API接口,支持第三方系统集成: - -- **任务管理API**: - - `GET /api/tasks`:获取任务列表 - - `POST /api/tasks`:创建新任务 - - `GET /api/tasks/{id}`:获取任务详情 - - `PUT /api/tasks/{id}`:更新任务 - - `DELETE /api/tasks/{id}`:删除任务 - - `POST /api/tasks/{id}/execute`:执行任务 - - `POST /api/tasks/{id}/cancel`:取消任务 - -- **工作流管理API**: - - `GET /api/workflows/{id}`:获取工作流定义 - - `POST /api/workflows`:保存工作流定义 - - `GET /api/workflows/{id}/validate`:验证工作流定义 - -- **编辑器API**: - - `POST /api/editor/save`:保存编辑内容 - - `POST /api/editor/undo`:撤销操作 - - `POST /api/editor/redo`:重做操作 - - `POST /api/editor/backup`:创建备份 - - `GET /api/editor/history`:获取编辑历史 - -- **智能服务API**(已设计,尚未实现): - - `POST /api/intelligent/analyze`:分析任务流程 - - `POST /api/intelligent/optimize`:优化任务流程 - - `POST /api/intelligent/search`:知识检索 - - `POST /api/intelligent/vectorize`:向量化数据 - ## 技术栈 - **后端**:FastAPI (Python) @@ -373,13 +349,236 @@ tianfeng_task/ - 数据库(MySQL/PostgreSQL) - Node.js 14+(前端开发) +### 详细运行方法 + +#### 方法一:使用Docker运行(推荐) + +Docker是最简单的部署方式,可以避免环境配置问题。 + +##### 1. 构建并运行Docker镜像 + +```bash +# 克隆代码仓库 +git clone http://192.168.1.2:8418/jzw/tianfeng_task_modules.git +cd tianfeng_task + +# 构建Docker镜像 +docker build -t tianfeng-task:latest . + +# 运行Docker容器 +docker run -d -p 8000:8000 --name tianfeng-task-container tianfeng-task:latest +``` + +##### 2. 使用Docker Compose运行(包含数据库和缓存) + +```bash +# 克隆代码仓库 +git clone http://192.168.1.2:8418/jzw/tianfeng_task_modules.git +cd tianfeng_task + +# 使用Docker Compose构建并启动所有服务 +docker-compose up -d +``` + +##### 3. 验证服务是否正常运行 + +```bash +# 查看容器状态 +docker ps + +# 或者使用Docker Compose查看 +docker-compose ps + +# 查看应用日志 +docker logs tianfeng-task-container +# 或者 +docker-compose logs app +``` + +##### 4. 停止和删除容器 + +```bash +# 停止容器 +docker stop tianfeng-task-container +docker rm tianfeng-task-container + +# 或者使用Docker Compose +docker-compose down +``` + +#### 方法二:本地运行(不同操作系统) + +##### 前提条件 +- 安装Conda(Miniconda或Anaconda) +- 安装Git +- 安装数据库(MySQL或PostgreSQL) + +##### Windows系统 + +```bash +# 1. 克隆代码仓库 +git clone http://192.168.1.2:8418/jzw/tianfeng_task_modules.git +cd tianfeng_task + +# 2. 创建并激活Conda环境 推荐使用3.11 +conda create -n pytf python=3.11 +conda activate pytf + +# 3. 安装依赖 +pip install -r requirements.txt + +# 4. 配置数据库连接 +# 编辑 config/database.py 文件,设置正确的数据库连接信息 + +# 5. 启动应用 +python app.py +``` + +### 数据库配置说明 + +在运行应用前,需要修改`config/database.py`文件中的数据库配置,将默认的数据库连接信息替换为您自己的本地或云上的MySQL数据库: + +```python +# 数据库连接配置 +DB_CONFIG = ConfigDict( + default=dict( + dialect='mysql', + driver='pymysql', + username='your_username', # 修改为您的数据库用户名 + password='your_password', # 修改为您的数据库密码 + host='your_host', # 修改为您的数据库主机地址,本地通常为localhost或127.0.0.1,云数据库使用对应的连接地址 + port=3306, # 修改为您的数据库端口,默认MySQL为3306 + database='tianfeng_task', # 数据库名称,可以保持不变或修改为您想使用的数据库名 + charset='utf8mb4' + ), + test=dict( + dialect='sqlite', + database=':memory:' + ) +) +``` + +如果您使用的是云数据库(如阿里云RDS、AWS RDS等),请确保: +1. 数据库已创建并可以访问 +2. 数据库用户有足够的权限(至少需要CREATE、ALTER、SELECT、INSERT、UPDATE、DELETE权限) +3. 数据库服务器的防火墙允许从您的应用服务器访问 + +您也可以通过环境变量来设置数据库连接信息,这样就不需要修改源代码: + +```bash +# Windows +set TIANFENG_ENV=default +set DB_HOST=your_host +set DB_PORT=3306 +set DB_USER=your_username +set DB_PASSWORD=your_password +set DB_NAME=tianfeng_task + +# macOS/Linux +export TIANFENG_ENV=default +export DB_HOST=your_host +export DB_PORT=3306 +export DB_USER=your_username +export DB_PASSWORD=your_password +export DB_NAME=tianfeng_task +``` + +系统启动时会自动检查数据库是否存在,如果不存在会自动创建数据库和所需的表结构。 + +##### macOS系统 + +```bash +# 1. 克隆代码仓库 +git clone http://192.168.1.2:8418/jzw/tianfeng_task_modules.git +cd tianfeng_task + +# 2. 创建并激活Conda环境 +conda create -n pytf python=3.11 +conda activate pytf + +# 3. 安装依赖 +pip install -r requirements.txt + +# 4. 配置数据库连接 +# 编辑 config/database.py 文件,设置正确的数据库连接信息 + +# 5. 启动应用 +python app.py +``` + +##### Linux系统 + +```bash +# 1. 克隆代码仓库 +git clone http://192.168.1.2:8418/jzw/tianfeng_task_modules.git +cd tianfeng_task + +# 2. 创建并激活Conda环境 +conda create -n pytf python=3.11 +conda activate pytf + +# 3. 安装依赖 +pip install -r requirements.txt + +# 4. 配置数据库连接 +# 编辑 config/database.py 文件,设置正确的数据库连接信息 + +# 5. 启动应用 +python app.py +``` + +#### 方法三:使用虚拟环境(不使用Conda)(不推荐) + +**注意:此方法不推荐使用**,因为项目依赖复杂,使用Conda可以更好地管理依赖关系和解决潜在的兼容性问题。此外,某些依赖可能需要特定的编译环境,Conda能更好地处理这些情况。如果您仍然希望使用此方法,请按照以下步骤操作: + +##### Windows系统 + +```bash +# 1. 克隆代码仓库 +git clone http://192.168.1.2:8418/jzw/tianfeng_task_modules.git +cd tianfeng_task + +# 2. 创建并激活虚拟环境 +python -m venv venv +.\venv\Scripts\activate + +# 3. 安装依赖 +pip install -r requirements.txt + +# 4. 配置数据库连接 +# 编辑 config/database.py 文件 + +# 5. 启动应用 +python app.py +``` + +##### macOS/Linux系统 + +```bash +# 1. 克隆代码仓库 +git clone http://192.168.1.2:8418/jzw/tianfeng_task_modules.git +cd tianfeng_task + +# 2. 创建并激活虚拟环境 +python -m venv venv +source venv/bin/activate + +# 3. 安装依赖 +pip install -r requirements.txt + +# 4. 配置数据库连接 +# 编辑 config/database.py 文件 + +# 5. 启动应用 +python app.py +``` + ### 安装步骤 1. 克隆代码库 2. 安装依赖:`pip install -r requirements.txt` 3. 配置数据库连接:修改`config/database.py` -4. 初始化数据库:`python -m scripts.run_migration` -5. 启动应用:`python app.py` +4. 启动应用:`python app.py` ## 使用示例 @@ -446,7 +645,7 @@ tianfeng_task/ 1. 克隆代码仓库 ```bash -git clone <仓库地址> +git clone http://192.168.1.2:8418/jzw/tianfeng_task_modules.git cd tianfeng_task ``` diff --git a/requirements.txt b/requirements.txt index 3b08fad..4d3da41 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,19 +1,19 @@ # requirements.txt # 数据库相关 -sqlalchemy>=1.4.0 -alembic>=1.7.0 +sqlalchemy +alembic pymysql redis cryptography # Web框架 -fastapi>=0.68.0 -uvicorn>=0.15.0 -pydantic>=1.8.0 +fastapi +uvicorn +pydantic # 工具库 -python-dotenv>=0.19.0 -croniter>=1.0.0 +python-dotenv +croniter jsonschema requests # 日志