3550a22557
入库从纯文本升级为多文件类型:解析(mcp-py 算法层)与切块/embedding 解耦。 上传文件 → Gateway 按类型路由 → mcp-py parse_document 解析为文本 → kb_ingest。 - mcp-py: parsers.py(docx=python-docx / xlsx=openpyxl / pdf=pypdf / csv / txt→文本); parse_document 工具做真(base64 文件→文本,线程池跑 CPU 密集解析);pyproject 加依赖 - gateway: POST /api/v1/kb/ingest_file(multipart);parseFile 文本类直读、office/pdf→mcp-py - nats-server.conf: max_payload 8MB(容纳 base64 文件经工具调用;大文件应走对象存储) - frontend: KbView 加文件上传(accept docx/xlsx/pdf/csv...);api.ingestFile - 验证: 全模块 build✓ + e2e PASS; live——4 类文件上传→mcp-py 解析→入库→检索命中: docx(营收报告)/xlsx(销量表行)/pdf(Q2计划)/csv(城市人口) 全部正确 - 边界: 扫描件/版面 OCR(MinerU/PaddleOCR)推迟;大文件 base64 走 NATS 受 max_payload 限,生产应走对象存储(MinIO) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
17 lines
622 B
Plaintext
17 lines
622 B
Plaintext
# NATS 零拷贝骨干网 — JetStream 开启
|
|
port: 4222
|
|
http_port: 8222 # 监控端点
|
|
max_payload: 8MB # 容纳文件(base64)经工具调用传输;大文件应改走对象存储
|
|
|
|
jetstream {
|
|
store_dir: "/data/jetstream"
|
|
max_memory_store: 1GB
|
|
max_file_store: 10GB
|
|
}
|
|
|
|
# Subject 命名空间约定(仅文档,实际 stream 由各服务声明式创建)
|
|
# sundynix.tasks.* 分布式任务队列 (Queue)
|
|
# sundynix.streams.<task_id> 零拷贝 Token 字节管道 (Stream)
|
|
# sundynix.tools.go.* Go MCP 工具调用
|
|
# sundynix.tools.py.* Python MCP 工具调用
|