This commit is contained in:
silk 2026-06-15 11:23:35 +08:00
parent 7520f64e8f
commit ba9de3ed94
3 changed files with 15 additions and 5 deletions

View File

@ -3,15 +3,15 @@
处理流程对比
知识图谱 每块 1 次串行 LLM 抽关系 最严格8 万字
知识库 批量 embedding + 单次摘要 较宽松30 万字
知识库 批量 embedding + 单次摘要 较宽松100 万字
对话文件 批量 embedding + 单次摘要临时会话上下文 20 万字
"""
# ---------- 知识库 ----------
# chunk_size=4096、overlap=200 → 有效步长约 3896 字/块
# 30 万字 ≈ 77 块向量化,通常 1-2 分钟可完成
MAX_KB_INPUT_CHARS = 300_000
MAX_KB_VECTOR_CHUNKS = 80
# 100 万字 ≈ 250+ 块向量化PDF 等格式分块更细,上限留足余量)
MAX_KB_INPUT_CHARS = 1_000_000
MAX_KB_VECTOR_CHUNKS = 1000
# ---------- 对话文件(聊天时上传) ----------
# 对话文件是单次会话临时上下文,精度要求高于知识库;过长会稀释检索精度

View File

@ -16,6 +16,9 @@ from logger.logging import get_logger
logger = get_logger(__name__)
# 摘要生成时送入 LLM 的正文上限(超长文档只取开头部分)
MAX_SUMMARY_INPUT_CHARS = 10_000
# 摘要生成 Prompt - 优化版:强调全面覆盖
GENERATE_SUMMARY_PROMPT = """
@ -104,6 +107,13 @@ class SummaryService:
if not doc_content:
return ""
if len(doc_content) > MAX_SUMMARY_INPUT_CHARS:
logger.info(
f"摘要输入过长({len(doc_content):,} 字),"
f"仅使用前 {MAX_SUMMARY_INPUT_CHARS:,} 字生成摘要"
)
doc_content = doc_content[:MAX_SUMMARY_INPUT_CHARS]
# 生成摘要
prompt = PromptTemplate(
template=GENERATE_SUMMARY_PROMPT,

View File

@ -216,7 +216,7 @@
ref="fileInput"
>
</label>
<small class="upload-hint">支持 PDFDOCXExcelxlsx/xlsCSVTXT图片PNGJPGBMP格式单文件不超过 15MB提取正文不超过 30 万字过长请拆分</small>
<small class="upload-hint">支持 PDFDOCXExcelxlsx/xlsCSVTXT图片PNGJPGBMP格式单文件不超过 15MB提取正文不超过 100 万字过长请拆分</small>
</div>
<!-- URL 上传 -->