新增数据类型转换

This commit is contained in:
wangjiming
2026-08-05 16:23:00 +08:00
parent b5c6557341
commit c64fa1cd61
10 changed files with 620 additions and 322 deletions

View File

@@ -103,15 +103,37 @@ GET /modelTF/model-manage
GET /modelTF/dataset-manage
GET /modelTF/fine-tune
GET /modelTF/compute/nodes
GET /modelTF/data-convert
```
本地运行时默认 PostgreSQL 连接:
### 数据库配置
```text
DATABASE_URL=postgresql+psycopg://yg_ft:change_me@localhost:15432/yg_ft
后端通过 `backend/.env` 文件配置数据库连接(自动加载,`override=True`
```env
DATABASE_URL=postgresql+psycopg://用户:密码@数据库地址:端口/库名
COMPUTE_SERVICE_TOKEN=change_me
```
本地启动前需要确保 PostgreSQL 已监听 `localhost:15432`,并已创建 `yg_ft` 数据库和 `yg_ft` 用户。后端启动后会自动创建当前运行表并写入内置管理员账号,运行数据统一写入 PostgreSQL
支持远程数据库。连接池参数已针对远程库优化(`connect_timeout=30``max_size=20``max_waiting=50`
### 环境变量
| 变量 | 默认值 | 说明 |
|---|---|---|
| `DATABASE_URL` | `postgresql+psycopg://yg_ft:change_me@localhost:15432/yg_ft` | 数据库连接串 |
| `COMPUTE_SERVICE_TOKEN` | `""` | 算力服务认证 token需与 compute 一致 |
| `COMPUTE_STATUS_SYNC_MODE` | `polling` | `off` 禁用轮询(远程库慢时推荐) |
| `COMPUTE_POLL_INTERVAL_SECONDS` | `3` | 轮询间隔秒数 |
| `COMPUTE_REQUEST_TIMEOUT_SECONDS` | `5` | 调 compute 的超时秒数 |
### 推荐启动命令(远程数据库)
```cmd
cd /d E:\yg_ft\backend
set COMPUTE_STATUS_SYNC_MODE=off
.\.venv\Scripts\python.exe -m uvicorn app.main:app --reload --port 17861
```
开发阶段内置登录账号:
@@ -138,12 +160,29 @@ npm run dev
### 方式一Docker 启动(推荐)
```bash
**1. 构建镜像**(首次或依赖变更后):
```cmd
cd /d E:\yg_ft
docker build -f docker/compute/Dockerfile.compute -t yg-ft-compute-api:latest .
```
**2. 启动容器**
```cmd
cd docker/compute
cp .env.example .env
docker compose up -d
```
**3. 验证**
```cmd
curl http://localhost:19100/health
```
> 注意:构建上下文必须是项目根目录 `E:\yg_ft``docker build` 最后的 `.`),因为 Dockerfile 需要 `COPY compute/requirements.txt`。
### 方式二:本地开发启动
**Windows (cmd)**
@@ -151,25 +190,35 @@ docker compose up -d
```cmd
cd /d E:\yg_ft\compute
set PYTHONPATH=E:\yg_ft
.\.venv\Scripts\python.exe -m uvicorn api.main:app --reload --port 19100
.\.venv\Scripts\python.exe -m uvicorn api.main:app --reload --host 0.0.0.0 --port 19100
```
> `PYTHONPATH=E:\yg_ft` 是必需的,因为代码使用 `from compute.agent...` 绝对导入。
> `--host 0.0.0.0` 让其他机器可以通过 IP 访问(算力节点测试需要)。
**Linux / macOS**
```bash
cd compute
PYTHONPATH=.. uvicorn api.main:app --reload --port 19100
PYTHONPATH=.. uvicorn api.main:app --reload --host 0.0.0.0 --port 19100
```
### 算力节点配置
在平台的「算力节点」页面新增节点,填入:
- **Compute API**`http://你的IP:19100`
- **File Gateway**`http://你的IP:19101`
本机测试用 `http://localhost:19100`
### 环境变量说明
| 变量 | 默认值 | 说明 |
|---|---|---|
| `COMPUTE_MODE` | `real` | `real` / `simulator`,仅隔离联调用 simulator |
| `COMPUTE_EXECUTION_MODE` | `real` | 训练执行模式 |
| `COMPUTE_SERVICE_TOKEN` | `change_me` | 服务间认证 token |
| `COMPUTE_SERVICE_TOKEN` | `change_me` | 服务间认证 token,需与 backend 一致 |
| `COMPUTE_AUTH_ENABLED` | `true` | 是否开启 token 认证 |
| `MODELTF_ROUTE_PREFIX` | `/modelTF` | API 路由前缀 |
应用平台通过数据库 `compute_nodes` 表中的 `api_base_url``file_gateway_url` 主动轮询算力节点状态。