开始使用免费开始使用

按 token 分割

使用 RecursiveCharacterTextSplitterCharacterTextSplitter 来分割文档很方便,在某些情况下也能取得不错的效果,但它们有一个缺点:分割的基本单位是字符,而不是模型实际处理的 token。

在本练习中,您将使用基于 token 的文本分割器来分割文档,从而可以核对每个块的 token 数,确保不超过模型的上下文窗口。一个 PDF 文档已作为 document 加载。

tiktoken 和所有必要的类都已为您导入。

本练习是课程的一部分

使用 LangChain 的 Retrieval Augmented Generation (RAG)

查看课程

练习说明

  • tiktoken 获取 gpt-4o-mini 的编码,以便检查每个块的 token 数量。
  • 使用 GPT-4o-Mini 的 encoding 创建一个按 token 数分割的文本分割器。
  • 使用 token_splitter 将存储在 document 中的 PDF 分割成多个块。

交互式实操练习

通过完成这段示例代码来试试这个练习。

# Get the encoding for gpt-4o-mini
encoding = ____

# Create a token text splitter
token_splitter = ____(encoding_name=____, chunk_size=100, chunk_overlap=10)

# Split the PDF into chunks
chunks = ____

for i, chunk in enumerate(chunks[:3]):
    print(f"Chunk {i+1}:\nNo. tokens: {len(encoding.encode(chunk.page_content))}\n{chunk}\n")
编辑并运行代码