feat: add governed knowledge lifecycle
This commit is contained in:
1
backend/apps/knowledge/management/commands/__init__.py
Normal file
1
backend/apps/knowledge/management/commands/__init__.py
Normal file
@@ -0,0 +1 @@
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
from django.core.management.base import BaseCommand
|
||||
|
||||
from apps.knowledge.models import KnowledgeDocument, KnowledgeItem
|
||||
from apps.knowledge.services import (
|
||||
index_published_solution,
|
||||
index_resolved_ticket,
|
||||
rebuild_document_chunks,
|
||||
rebuild_item_chunks,
|
||||
)
|
||||
from apps.solutions.models import Solution
|
||||
from apps.tickets.models import Ticket
|
||||
|
||||
|
||||
class Command(BaseCommand):
|
||||
help = "使用当前 Embedding 部署重建知识、文档和已发布解决方案向量"
|
||||
|
||||
def handle(self, *args, **options):
|
||||
item_count = 0
|
||||
document_count = 0
|
||||
solution_count = 0
|
||||
ticket_count = 0
|
||||
for item in KnowledgeItem.objects.select_related("knowledge_base").iterator():
|
||||
rebuild_item_chunks(item)
|
||||
item_count += 1
|
||||
for document in KnowledgeDocument.objects.select_related("knowledge_base").iterator():
|
||||
rebuild_document_chunks(document)
|
||||
document_count += 1
|
||||
for solution in Solution.objects.filter(status="published").iterator():
|
||||
index_published_solution(solution)
|
||||
solution_count += 1
|
||||
for ticket in (
|
||||
Ticket.objects.filter(
|
||||
status__in=["resolved", "closed"],
|
||||
archived_at__isnull=True,
|
||||
)
|
||||
.select_related("category", "resolution")
|
||||
.iterator()
|
||||
):
|
||||
index_resolved_ticket(ticket)
|
||||
ticket_count += 1
|
||||
self.stdout.write(
|
||||
self.style.SUCCESS(
|
||||
"知识向量重建完成:"
|
||||
f"条目 {item_count},文档 {document_count},已发布方案 {solution_count},"
|
||||
f"历史工单 {ticket_count}"
|
||||
)
|
||||
)
|
||||
Reference in New Issue
Block a user