deliveryman-api/app/api/endpoints/ai.py
2025-03-07 15:37:07 +08:00

35 lines
1.3 KiB
Python

from fastapi import APIRouter, Depends, UploadFile, File
from app.core.response import success_response, error_response, ResponseModel
from app.core.ai_client import ai_client
from app.api.deps import get_current_user
from app.models.user import UserDB
import logging
from app.core.qcloud import qcloud_manager
router = APIRouter()
@router.post("/extract_pickup_code", response_model=ResponseModel)
async def extract_pickup_code(
file: UploadFile = File(...)
):
"""从图片中提取取件码"""
try:
# 检查文件类型
if not file.content_type.startswith('image/'):
return error_response(code=400, message="只能上传图片文件")
# 读取图片内容
image_data = await file.read()
# 调用 AI 客户端提取取件码
result = await ai_client.extract_pickup_code(image_data)
if "error" in result:
return error_response(code=500, message=result.get("message", "提取取件码失败"))
# 返回原始数据和格式化文本
return success_response(data=result)
except Exception as e:
logging.exception(f"提取取件码失败: {str(e)}")
return error_response(code=500, message=f"提取取件码失败: {str(e)}")