25 lines
959 B
Python
25 lines
959 B
Python
from fastapi import APIRouter, Depends, Query
|
|
from sqlalchemy.orm import Session
|
|
|
|
from app.core.response import ApiResponse, ok
|
|
from app.core.user_context import UserContext, get_user_context
|
|
from app.db.session import get_db
|
|
from app.schemas.knowledge import KnowledgeSearchResponse
|
|
from app.services.knowledge_service import KnowledgeService
|
|
|
|
router = APIRouter()
|
|
|
|
|
|
@router.get("/search", response_model=ApiResponse[KnowledgeSearchResponse])
|
|
def search_knowledge(
|
|
_: UserContext = Depends(get_user_context),
|
|
db: Session = Depends(get_db),
|
|
department_id: int = Query(...),
|
|
training_type: str = Query(...),
|
|
q: str = Query(default=""),
|
|
):
|
|
"""知识检索:按科室、训练类别和关键词检索评分参考指南。"""
|
|
keywords = [item.strip() for item in q.split(",") if item.strip()]
|
|
result = KnowledgeService(db).search_guidelines(department_id, training_type, keywords)
|
|
return ok(KnowledgeSearchResponse(**result))
|