prepare fastapi root layout for server deployment
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from app.repositories.knowledge_repository import KnowledgeRepository
|
||||
|
||||
|
||||
class KnowledgeService:
|
||||
"""知识库服务:检索评分参考指南并整理来源引用。"""
|
||||
|
||||
def __init__(self, db: Session) -> None:
|
||||
self.repo = KnowledgeRepository(db)
|
||||
|
||||
def search_guidelines(self, department_id: int, training_type: str, keywords: list[str]) -> dict:
|
||||
"""指南检索:根据科室、任务类型和关键词返回评分参考片段。"""
|
||||
chunks = self.repo.search_chunks(department_id=department_id, task_type=training_type, keywords=keywords)
|
||||
matched_chunks = [
|
||||
{
|
||||
"chunk_id": chunk.id,
|
||||
"document_id": chunk.document_id,
|
||||
"text": chunk.chunk_text,
|
||||
"keywords": chunk.keywords or [],
|
||||
"weight": float(chunk.weight),
|
||||
}
|
||||
for chunk in chunks
|
||||
]
|
||||
source_refs = [
|
||||
{
|
||||
"document_id": chunk.document_id,
|
||||
"title": chunk.document.title if chunk.document else "",
|
||||
"chunk_id": chunk.id,
|
||||
}
|
||||
for chunk in chunks
|
||||
]
|
||||
return {"matched_chunks": matched_chunks, "source_refs": source_refs, "no_match": not matched_chunks}
|
||||
Reference in New Issue
Block a user