feat: add knowledge retrieval service
This commit is contained in:
@@ -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),
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user