Files
dsProject/dsLightRag/Routes/RecognizeEduQuestion.py

70 lines
2.1 KiB
Python
Raw Normal View History

2025-09-01 09:48:42 +08:00
import logging
from fastapi import APIRouter, Request, HTTPException
from Util.FormulaRecognizer import FormulaRecognizer
from Util.ShiTiRecognizer import ShiTiRecognizer
# 创建路由路由器
router = APIRouter(prefix="/api", tags=["教育场景识别"])
# 配置日志
logger = logging.getLogger(__name__)
@router.post("/recognize-formula")
async def recognize_formula(request: Request):
"""
公式识别接口
参数:
image_url: 图片URL
返回:
JSON响应包含公式识别结果
"""
try:
# 获取请求参数
data = await request.json()
image_url = data.get("image_url")
# 验证参数
if not image_url:
raise HTTPException(status_code=400, detail="缺少必要参数: image_url")
# 调用公式识别器
recognizer = FormulaRecognizer()
result = recognizer.recognize_formula(image_url)
return result
except HTTPException as e:
raise e
except Exception as e:
logger.error(f"公式识别接口异常: {str(e)}")
raise HTTPException(status_code=500, detail=f"服务器内部错误: {str(e)}")
@router.post("/recognize-question")
async def recognize_question(request: Request):
"""
试题识别接口
参数:
image_url: 图片URL
返回:
JSON响应包含试题识别结果
"""
try:
# 获取请求参数
data = await request.json()
image_url = data.get("image_url")
# 验证参数
if not image_url:
raise HTTPException(status_code=400, detail="缺少必要参数: image_url")
# 调用试题识别器
recognizer = ShiTiRecognizer()
result = recognizer.recognize_question(image_url)
return result
except HTTPException as e:
raise e
except Exception as e:
logger.error(f"试题识别接口异常: {str(e)}")
raise HTTPException(status_code=500, detail=f"服务器内部错误: {str(e)}")