feat: add knowledge retrieval service

This commit is contained in:
hailin
2026-07-03 17:52:59 +08:00
parent 374c36ac65
commit 99dbb3277a
5 changed files with 169 additions and 3 deletions

View File

@@ -9,8 +9,10 @@ from apps.knowledge.schemas import (
KnowledgeDocumentOut,
KnowledgeItemIn,
KnowledgeItemOut,
KnowledgeSearchIn,
KnowledgeSearchResultOut,
)
from apps.knowledge.services import ingest_document_text, rebuild_item_chunks
from apps.knowledge.services import ingest_document_text, rebuild_item_chunks, retrieve_knowledge
router = Router(tags=["knowledge"])
@@ -81,3 +83,13 @@ def create_knowledge_document(request, payload: KnowledgeDocumentIn):
content=payload.content,
operator=request.user if request.user.is_authenticated else None,
)
@router.post("/search", response=list[KnowledgeSearchResultOut])
def search_knowledge(request, payload: KnowledgeSearchIn):
require_permission(request, "knowledge.view")
return retrieve_knowledge(
query=payload.query,
knowledge_base_id=payload.knowledge_base_id,
limit=min(max(payload.limit, 1), 20),
)