| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- """样本中心 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)}")
|