"""样本中心 API 路由。""" from fastapi import APIRouter, Query, HTTPException from app.schemas.sample_center import ( KnowledgeBaseListResponse, KnowledgeBaseDetailResponse, KbImportResponse, ) from app.services import sample_center_service router = APIRouter() @router.get("/knowledge-bases", response_model=KnowledgeBaseListResponse) async def get_knowledge_bases( page: int = Query(default=1, ge=1), page_size: int = Query(default=20, ge=1, le=100), ): """获取样本中心知识库列表。""" try: data = await sample_center_service.list_knowledge_bases(page, page_size) return KnowledgeBaseListResponse(**data) except ValueError as e: raise HTTPException(status_code=503, detail=str(e)) except Exception as e: raise HTTPException(status_code=502, detail=f"样本中心请求失败: {str(e)}") @router.get("/knowledge-bases/{kb_id}", response_model=KnowledgeBaseDetailResponse) async def get_knowledge_base_detail(kb_id: str): """获取知识库详情。""" try: data = await sample_center_service.get_knowledge_base_detail(kb_id) return KnowledgeBaseDetailResponse(**data) except ValueError as e: raise HTTPException(status_code=503, detail=str(e)) except Exception as e: raise HTTPException(status_code=502, detail=f"样本中心请求失败: {str(e)}") @router.post("/knowledge-bases/{kb_id}/import", response_model=KbImportResponse) async def import_from_knowledge_base(kb_id: str, kb_name: str = ""): """从知识库导入数据到训练数据集。""" try: data = await sample_center_service.import_kb_to_dataset(kb_id, kb_name) return KbImportResponse(**data) except ValueError as e: raise HTTPException(status_code=503, detail=str(e)) except Exception as e: raise HTTPException(status_code=502, detail=f"样本中心请求失败: {str(e)}")