3D 打板部署
All checks were successful
git commit AiDA python develop 分支构建部署 / scheduled_deploy (push) Has been skipped
All checks were successful
git commit AiDA python develop 分支构建部署 / scheduled_deploy (push) Has been skipped
This commit is contained in:
104
app/api/api_sketch_to_garment.py
Normal file
104
app/api/api_sketch_to_garment.py
Normal file
@@ -0,0 +1,104 @@
|
||||
import json
|
||||
import logging
|
||||
|
||||
from fastapi import APIRouter, HTTPException
|
||||
|
||||
from app.schemas.response_template import ResponseModel
|
||||
from app.schemas.sketch_to_garment_schemas import SketchToGarmentModel
|
||||
from app.service.sketch2garment.server import submit_sketch_to_garment_task
|
||||
|
||||
logger = logging.getLogger()
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
@router.post("/sketch_to_garment")
|
||||
def sketch_to_garment_api(request_item: SketchToGarmentModel):
|
||||
"""
|
||||
### 接口说明:
|
||||
将图片转换为3D模型(异步处理)。接口接收请求后立即返回任务ID,后台通过 Celery 处理,处理完成后结果会通过 RabbitMQ 发送。
|
||||
|
||||
### 参数说明:
|
||||
- **input_image_path**: 输入图片路径
|
||||
- **bucket_name**: bucket name
|
||||
- **user_id**: 用户id
|
||||
- **callback_url**: 回调url
|
||||
- **task_id**: 任务id
|
||||
- **model**: 转换模式 文本和图片 ,默认只有图片
|
||||
|
||||
### 请求体示例:
|
||||
**单张图片模式:**
|
||||
```json
|
||||
{
|
||||
"input_image_path": "test/53d38bd5-f77b-4034-ada2-45f1e2ebe00c.png",
|
||||
"bucket_name": "test",
|
||||
"user_id": "string-456",
|
||||
"callback_url": "http://18.167.251.121:10015/api/image/webhook/img-to-3d",
|
||||
"task_id": "string12",
|
||||
"model": "picture"
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
### 输出示例:
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 200,
|
||||
"msg": "OK!",
|
||||
"data": {
|
||||
"state": "success",
|
||||
"task_id": "string12",
|
||||
"message": "任务已成功提交,正在后台处理..."
|
||||
}
|
||||
}
|
||||
```
|
||||
### 错误输出
|
||||
参考文档: https://platform.tripo3d.ai/docs/error-handling
|
||||
```json
|
||||
{
|
||||
"code": 500,
|
||||
"message": "You don’t have enough credit to create this task",
|
||||
"data": {
|
||||
"status": "fail",
|
||||
"task_id": "123",
|
||||
"message": "You don’t have enough credit to create this task",
|
||||
"error": str(e)
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
回调请求参数例子:
|
||||
```json
|
||||
{
|
||||
"task_id": "string12",
|
||||
"status": "success",
|
||||
"result": {
|
||||
"pattern": "test/string-456/pattern_making/now_string-456_pattern.png",
|
||||
"texture": "test/string-456/pattern_making/now_string-456_texture.png",
|
||||
"glb": "test/string-456/pattern_making/now_string-456_sim.glb",
|
||||
"texture_fabric": "test/string-456/pattern_making/now_string-456_texture_fabric.png"
|
||||
}
|
||||
}
|
||||
```
|
||||
"""
|
||||
try:
|
||||
logger.info(f"sketch_to_garment request item is : @@@@@@:{json.dumps(request_item.model_dump(), indent=4)}")
|
||||
result = submit_sketch_to_garment_task(
|
||||
task_id=request_item.task_id,
|
||||
callback_url=request_item.callback_url,
|
||||
bucket_name=request_item.bucket_name,
|
||||
input_image_path=request_item.input_image_path,
|
||||
user_id=request_item.user_id,
|
||||
model=request_item.model
|
||||
)
|
||||
result = {
|
||||
"state": "success",
|
||||
"task_id": request_item.task_id,
|
||||
"message": "任务已成功提交,正在后台处理...",
|
||||
}
|
||||
state_code = 200
|
||||
return ResponseModel(data=result, code=state_code)
|
||||
|
||||
except Exception as e:
|
||||
logger.warning(f"super_resolution Run Exception @@@@@@:{e}")
|
||||
raise HTTPException(status_code=404, detail=str(e))
|
||||
Reference in New Issue
Block a user