chore: update gitignore; feat: 新增customer_agent业务模块与api路由
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
"""Preview service for manually selected knowledge-base chunking."""
|
||||
from __future__ import annotations
|
||||
|
||||
from pathlib import Path
|
||||
|
||||
from rag.chunk_config import resolve_chunk_config
|
||||
from rag.chunking import SUPPORTED_STRATEGIES, chunk_document
|
||||
from rag.cleaning import clean_document_text
|
||||
from rag.document_parser import parse_document
|
||||
|
||||
|
||||
def preview_document(
|
||||
path: str | Path,
|
||||
*,
|
||||
strategy: str,
|
||||
chunk_size: int | None = None,
|
||||
chunk_overlap: int | None = None,
|
||||
) -> dict:
|
||||
"""Parse and preview a document without writing anything to Milvus."""
|
||||
if strategy not in SUPPORTED_STRATEGIES:
|
||||
raise ValueError(f"Unsupported chunk strategy: {strategy}")
|
||||
config = resolve_chunk_config(chunk_size=chunk_size, chunk_overlap=chunk_overlap)
|
||||
cleaned = clean_document_text(parse_document(path))
|
||||
result = chunk_document(cleaned.text, strategy, config=config)
|
||||
return {
|
||||
"strategy": result.requested_strategy,
|
||||
"actual_strategy": result.actual_strategy,
|
||||
"degraded": result.degraded,
|
||||
"warning": result.warning,
|
||||
"cleaning_changed": cleaned.changed,
|
||||
"cleaning_warnings": cleaned.warnings,
|
||||
"chunk_size": config.size,
|
||||
"chunk_overlap": config.overlap,
|
||||
"chunks": [
|
||||
{"text": chunk.text, "section_title": chunk.section_title}
|
||||
for chunk in result.chunks
|
||||
],
|
||||
}
|
||||
Reference in New Issue
Block a user