首页/AI/RAG 与向量库速查/按 Token 数切分
本包目录(229 条)

按 Token 数切分

按 token 而不是字符切分,才能与 embedding 模型的输入上限和计费口径对齐;用与实际模型一致的 tokenizer 计数可避免长块被静默截断。

RAG 与向量库速查AI更新于 2026-10-12

tiktoken 计数切分

tiktoken 计数切分
import tiktoken
from langchain_text_splitters import RecursiveCharacterTextSplitter

enc = tiktoken.get_encoding("cl100k_base")
print("token 数:", len(enc.encode("示例文本…")))

splitter = RecursiveCharacterTextSplitter.from_tiktoken_encoder(
    encoding_name="cl100k_base", chunk_size=512, chunk_overlap=64)
chunks = splitter.split_text(text)
cl100k_base 对应 OpenAI 系模型;换用其它模型或本地 embedding 时,按实际分词器重新校准切片长度。

易错点

  • 用字符数近似 token 在中文场景误差明显,切片可能超模型输入上限
  • 不同模型 tokenizer 不同,换模型后切片长度要重新校准

数据来源与参考

  • tiktoken 项目 README(github.com/openai/tiktoken)
  • LangChain 官方文档(from_tiktoken_encoder)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌