feat: 持久化资料包导出记录与列表摘要
This commit is contained in:
@@ -9,7 +9,7 @@ from agent_core.rag.ingest import ingest_document
|
||||
from apps.chat.services import create_conversation_for_batch
|
||||
from django.core.files.uploadedfile import SimpleUploadedFile
|
||||
|
||||
from .models import SubmissionBatch, UploadedDocument
|
||||
from .models import ExportedDocument, SubmissionBatch, UploadedDocument
|
||||
|
||||
|
||||
def create_uploaded_document(
|
||||
@@ -198,6 +198,55 @@ def append_documents_to_batch(
|
||||
}
|
||||
|
||||
|
||||
def create_export_record(
|
||||
*,
|
||||
batch: SubmissionBatch,
|
||||
conversation_id: str,
|
||||
product_name: str,
|
||||
template_name: str,
|
||||
template_version: str,
|
||||
export_mode: str,
|
||||
output_type: str,
|
||||
file_name: str,
|
||||
relative_path: str,
|
||||
download_url: str,
|
||||
) -> ExportedDocument:
|
||||
"""
|
||||
保存导出文件记录,供资料包与处理历史统一回看。
|
||||
"""
|
||||
return ExportedDocument.objects.create(
|
||||
batch=batch,
|
||||
conversation_id=conversation_id,
|
||||
product_name=product_name,
|
||||
template_name=template_name,
|
||||
template_version=template_version,
|
||||
export_mode=export_mode,
|
||||
output_type=output_type,
|
||||
file_name=file_name,
|
||||
relative_path=relative_path,
|
||||
download_url=download_url,
|
||||
)
|
||||
|
||||
|
||||
def build_batch_rows(batches) -> list[dict]:
|
||||
"""
|
||||
为资料包列表补齐最近导出摘要。
|
||||
"""
|
||||
batch_ids = [batch.id for batch in batches]
|
||||
latest_exports = {}
|
||||
for record in ExportedDocument.objects.filter(batch_id__in=batch_ids).order_by("batch_id", "-created_at"):
|
||||
latest_exports.setdefault(record.batch_id, record)
|
||||
rows = []
|
||||
for batch in batches:
|
||||
rows.append(
|
||||
{
|
||||
"batch": batch,
|
||||
"latest_export": latest_exports.get(batch.id),
|
||||
}
|
||||
)
|
||||
return rows
|
||||
|
||||
|
||||
def extract_text(document: UploadedDocument) -> str:
|
||||
"""
|
||||
根据文档类型选择合适的文本抽取策略。
|
||||
|
||||
Reference in New Issue
Block a user