微信扫码
添加专属顾问
我要投稿
深入探索大型文档高效分块技术,提升AI知识库的处理效率和准确性。 核心内容: 1. 大型文档输入AI知识库的技术挑战与问题 2. 文档分块技术的核心理念与优势 3. 五种主流分块方法的技术对比与代码实现
from llama_index.core.node_parser import SimpleNodeParser parser = SimpleNodeParser.from_defaults( chunk_size=512, # 中文文档建议设置为384 tokens左右 chunk_overlap=64 # 重叠区域,保证上下文连贯性)nodes = parser.get_nodes_from_documents(documents)
from llama_index.core.node_parser import MarkdownNodeParserparser = MarkdownNodeParser()nodes = parser.get_nodes_from_documents(markdown_docs)
from llama_index.core.node_parser import HTMLNodeParser parser = HTMLNodeParser(tags=["p", "h1"]) # 指定需要提取的标签nodes = parser.get_nodes_from_documents(html_docs)
import nltkfrom llama_index.core.node_parser import SentenceWindowNodeParser node_parser = SentenceWindowNodeParser.from_defaults( window_size=3, # 每侧包含的句子数 window_metadata_key="window", original_text_metadata_key="original_sentence",)
from llama_index.core.node_parser import SemanticSplitterNodeParserfrom llama_index.embeddings.openai import OpenAIEmbedding embed_model = OpenAIEmbedding()splitter = SemanticSplitterNodeParser( buffer_size=1, breakpoint_percentile_threshold=95, embed_model=embed_model)
from llama_index.core.llms import OpenAIimport json def llm_chunking(text): llm = OpenAI(model="gpt-4-turbo") prompt = f"""将以下技术文档划分为逻辑单元,每个单元包含完整的技术概念: {text} 返回JSON格式: [{{"title":"单元标题","content":"文本内容"}}]""" response = llm.complete(prompt) try: return json.loads(response.text) except json.JSONDecodeError: raise ValueError("LLM响应格式错误")
分块方法 | 处理速度 | 语义保持 | 实现难度 | 适用场景 |
固定分块 | ⭐⭐⭐⭐ | ⭐ | ⭐ | 快速搭建原型系统 |
滑动窗口 | ⭐⭐⭐ | ⭐⭐ | ⭐⭐ | 对话记录、访谈稿 |
结构感知分块 | ⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐ | 特定格式的Markdown/HTML/JSON等文档 |
嵌入分块 | ⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ | 叙事性长文本 |
LLM分块 | ⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | 各种各样的复杂文档 |
Settings.embed_model = dashscope_embed_model()# 语义分块配置Settings.node_parser = SemanticSplitterNodeParser( buffer_size=128, # 保留128 tokens重叠区域 breakpoint_percentile_threshold=95, # 95%阈值自动寻找最佳分割点 embed_model = dashscope_embed_model())
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-07-17
2025-01-02
2024-08-13
2025-01-03
2024-07-11
2024-08-27
2024-06-24
2024-07-13
2024-07-12
2024-06-10
2025-04-20
2025-04-15
2025-04-09
2025-03-29
2025-02-13
2025-01-14
2025-01-10
2025-01-06