终极方案!lightRag/graphRag离线使用tiktoken持续报错SSLError,不改源码,彻底解决!

在lightRag和GraphRag中,build rag对象时,在离线环境下,tiktoken 一直报错,需要获取

https://openaipublic.blob.core.windows.net/encodings/o200k_base.tiktoken 这个资源,

看了很多帖子,要么存在误导,要么就是改源码,非常不友好!

我的解决思路如下:

首先

```非联网状态下,运行下面代码报错:

import os

import tiktoken

encoding = tiktoken.get_encoding("o200k_base")

```

报错:SSLError: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /encodings/o200k_base.tiktoken (Caused by SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:992)'))) 

需要获取的资源为 https://openaipublic.blob.core.windows.net/encodings/o200k_base.tiktoken  

那么浏览器打开,直接手动获取这个文件('o200k_base.tiktoken')。

然后,重要!!重要!!!重要!!! 

```

import hashlib

blobpath = "https://openaipublic.blob.core.windows.net/encodings/o200k_base.tiktoken"

cache_key = hashlib.sha1(blobpath.encode()).hexdigest()

print(cache_key)

# 输出 fb374d419588a4632f3f557e76b4b70aebbca790

``` 

然后配置一个本地tiktoken的缓存文件夹 如: /home/user/tiktoken

将手动获取的文件o200k_base.tiktoken复制到 /home/user/tiktoken 目录下,在该目录下,将o200k_base.tiktoken直接重命名为fb374d419588a4632f3f557e76b4b70aebbca790 

然后设置环境变量TIKTOKEN_CACHE_DIR:

os.environ["TIKTOKEN_CACHE_DIR"] = '/home/user/tiktoken'

执行以下代码不再出错

```

import os

import tiktoken

os.environ["TIKTOKEN_CACHE_DIR"] = '/home/user/tiktoken'

encoding = tiktoken.get_encoding("o200k_base")

```

补充:

#如果是 cl100k_base.tiktoken 的情形;

blobpath = "https://openaipublic.blob.core.windows.net/encodings/cl100k_base.tiktoken"

cache_key = hashlib.sha1(blobpath.encode()).hexdigest()

print(cache_key)

# 输出 9b5ad71b2ce5302211f9c61530b329a4922fc6a4

将cl100k_base.tiktoken文件重命名为9b5ad71b2ce5302211f9c61530b329a4922fc6a4 即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

chenxin0215

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值