You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在离线环境使用llama_index并避免调用tiktoken API?

解决llama_index离线环境下的tiktoken网络请求问题

方法1:预下载编码文件并指定本地缓存路径

tiktoken默认会从远程拉取GPT-2等模型的编码文件(如vocab.bpe),并缓存到本地目录。你可以在联网环境提前下载好这些文件,再迁移到离线环境:

  • 先在联网机器上运行以下代码,触发编码文件下载:
    import tiktoken
    # 下载gpt2编码所需文件
    tiktoken.get_encoding('gpt2')
    
  • 找到tiktoken的缓存目录:Windows为%USERPROFILE%\.cache\tiktoken,Linux/macOS为~/.cache/tiktoken,将该目录下的所有文件复制到离线环境的对应路径。
  • 如果不想使用默认路径,可在离线环境的代码中设置环境变量指定本地缓存目录:
    import os
    # 替换为你存放编码文件的本地路径
    os.environ["TIKTOKEN_CACHE_DIR"] = "/your/local/tiktoken_cache_path"
    # 再导入llama_index
    from llama_index import VectorStoreIndex, SimpleDirectoryReader
    

方法2:切换为无需联网的分词器

llama_index支持替换默认的tiktoken分词器,改用本地已安装的分词工具(如spaCy),前提是你已在离线环境提前安装好对应工具和模型:

  • 先在联网环境下载spaCy的模型包(如en_core_web_sm),再迁移到离线环境完成安装。
  • 使用spaCy分词器初始化llama_index的服务上下文:
    from llama_index import ServiceContext
    from llama_index.text_splitter import SpacyTextSplitter
    
    # 初始化本地spaCy分词器
    text_splitter = SpacyTextSplitter()
    service_context = ServiceContext.from_defaults(text_splitter=text_splitter)
    
    # 后续构建索引等操作时传入service_context
    documents = SimpleDirectoryReader("data").load_data()
    index = VectorStoreIndex.from_documents(documents, service_context=service_context)
    

方法3:离线安装tiktoken并预加载编码

在联网机器上完成tiktoken的安装和编码文件预下载,再将整个环境迁移到离线环境:

  1. 联网机器上创建虚拟环境,安装tiktoken:pip install tiktoken
  2. 运行代码触发编码下载:python -c "import tiktoken; tiktoken.get_encoding('gpt2')"
  3. 将虚拟环境目录(包含tiktoken包和缓存的编码文件)复制到离线环境,激活该虚拟环境后即可正常使用llama_index。

内容的提问来源于stack exchange,提问作者Eisen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 09:18:19