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)}")