微信扫码
添加专属顾问
我要投稿
智能主体分块技术革新文档处理,让AI检索更精准高效,释放非结构化文本的潜力。 核心内容: 1. 智能主体分块的定义及其相比传统分块技术的优势 2. 大型语言模型与向量存储在智能分块中的关键作用 3. 基于Python的完整实现方案,整合Hugging Face等工具
人工智能应用面临的挑战之一是处理海量文本数据。传统分块技术常常会遗漏上下文关联,这降低了基于检索的 AI 模型的效用。而智能主体分块(Agentic Chunking) 作为一种更智能的文档分割方法,能够提升检索、总结和处理效率,可有效解决这一问题。
本文主要有以下内容:
通过阅读本文,你将了解智能主体分块如何通过将非结构化文本转化为可检索的知识,从而释放 AI 应用的潜力。
传统分块技术会使用任意分隔符(如换行符)、固定令牌数量限制或句子数量来自动分割文本。这往往会导致上下文丢失,关键概念要么被遗漏,要么分散在多个片段中。
智能主体分块则采用了更智能的方法:
这种方法确保每个分块都包含一个完整、独立的概念,从而提升了 AI 驱动的检索和总结效果。
智能主体分块不采用僵化的令牌数量限制,而是动态分割文本:
利用大型语言模型(如 DeepSeek)对每个分块进行优化:
下面将逐步介绍 Python 实现方案。该系统可实现以下功能:
from pdfminer.high_level import extract_text
def extract_text_from_pdf(pdf_path: str) -> str:
"""从pdf中抽取文本"""
try:
return extract_text(pdf_path)
except Exception as e:
print(f"提取错误 {pdf_path}: {e}")
return ""
import re
def clean_text(text: str) -> str:
"""移除不需要的字符"""
text = re.sub(r'[^A-Za-z0-9\s.,;:()\-]', '', text)
return re.sub(r'\s+', ' ', text).strip()
class AgenticChunker:
def __init__(self, llm):
self.llm = llm
def chunk_document(self, text: str, target_chars=2000, overlap_chars=200):
"""将文本分割成重叠的块,并为每个块提供摘要。"""
segments = text.split("\n\n")
full_text = " ".join(segments)
chunks, start = [], 0
while start < len(full_text):
end = start + target_chars
chunk = full_text[start:end]
chunks.append(chunk)
start = max(0, start + target_chars - overlap_chars)
return [{"text": chunk, "summary": self._get_summary(chunk)} for chunk in chunks]
def _get_summary(self, text: str):
"""利用llm生成摘要"""
return self.llm.generate_summary(text)
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(model_name='deepseek', temperature=0.2)
def generate_summary(text):
"""摘要"""
prompt = f"请用一句话概括这段文本:\n\n{text}"
return llm.predict(prompt)
from transformers import AutoTokenizer, AutoModel
import torch
tokenizer = AutoTokenizer.from_pretrained("dwzhu/e5-base-4k")
model = AutoModel.from_pretrained("dwzhu/e5-base-4k")
def get_embedding(text: str):
inputs = tokenizer(text, return_tensors='pt', truncation=True, max_length=512)
with torch.no_grad():
outputs = model(**inputs)
return outputs.last_hidden_state.mean(dim=1).squeeze().numpy().tolist()
from pinecone import Pinecone
pinecone_api_key = "您的PINECONE API密钥"
pc = Pinecone(api_key=pinecone_api_key)
index = pc.Index("agentic-chunks")
def upsert_to_pinecone(chunk_id, text, summary, embedding):
vector = {
"id": chunk_id,
"values": embedding,
"metadata": {"text": text, "summary": summary}
}
index.upsert(vectors=[vector])
目前,这项技术已被应用于多种高级 AI 应用中,例如:
智能主体分块将非结构化文本转化为可利用的知识。与简单的基于令牌的分割方法相比,这种方法具有以下优势:
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业
2025-09-02
初步调研|基于AI的自动化脚本自愈方案
2025-09-02
腾讯 ima 上新:1.11.0 AI播客音色优化和知识库导入网页链接
2025-09-02
阿里云 CIO 蒋林泉:AI 大模型时代,我们如何用 RIDE 实现 RaaS 的首次落地?
2025-09-02
有了这个大模型,真正的智能运维AIOps时代即将来临
2025-09-02
突破企业AI落地的瓶颈:LangGraph × OceanBase 的融合数据层深度实践与解析(附源码)
2025-09-02
腾讯元宝搜索实践:大模型时代,AI 如何让搜索焕发新生
2025-09-02
今天,AI内容新规正式实施,这次不注意是真的会违法。
2025-09-01
OpenAI gpt-realtime 与 Realtime API 重磅升级,语音智能体迎来生产级时代
2025-08-21
2025-06-21
2025-08-21
2025-08-19
2025-06-07
2025-06-12
2025-06-19
2025-06-13
2025-07-29
2025-06-15
2025-09-02
2025-08-28
2025-08-28
2025-08-28
2025-08-28
2025-08-27
2025-08-26
2025-08-25