Llama_index索引构建失败求助:执行from_documents触发ValueError
解决llama_index构建索引时的tiktoken报错问题
报错原因
该错误由tiktoken库加载gpt2的BPE编码规则时解析失败导致,核心原因是本地缓存的编码文件损坏,或是tiktoken与llama_index版本不兼容。
修复步骤
删除tiktoken缓存文件
Windows系统下,缓存目录通常为C:\Users\你的用户名\AppData\Local\tiktoken,删除该目录下所有文件后重新运行代码,tiktoken会自动重新下载正确的编码文件。安装兼容版本的tiktoken
若删除缓存无效,卸载当前版本后指定安装兼容版本:pip uninstall tiktoken -y pip install tiktoken==0.4.0手动指定分词器绕过默认加载
修改代码,手动设置适配OpenAI嵌入模型的分词器:import os os.environ["OPENAI_API_KEY"] = 'YOUR_OPENAI_API_KEY' from llama_index import GPTSimpleVectorIndex, SimpleDirectoryReader, ServiceContext from llama_index.embeddings import OpenAIEmbedding import tiktoken # 自定义分词器 def custom_tokenizer(text): enc = tiktoken.encoding_for_model("text-embedding-ada-002") return enc.encode(text) # 构建服务上下文 embed_model = OpenAIEmbedding() service_context = ServiceContext.from_defaults(embed_model=embed_model, tokenizer=custom_tokenizer) documents = SimpleDirectoryReader('data').load_data() index = GPTSimpleVectorIndex.from_documents(documents, service_context=service_context)排查文档异常
先测试单个无特殊格式的DOCX文件,排除文档损坏引发的间接问题。
内容的提问来源于stack exchange,提问作者NH.LOCAL
相关产品推荐
相关产品推荐

