one-api
one-api copied to clipboard
docker 离线环境下部署无法启动成功
报错信息如下 [FATAL] 2023/11/07 - 16:00:40 | [failed to get gpt-3.5-turbo token encoder: Get "https://openaipublic.blob.core.windows.net/encodings/cl100k_base.tiktoken": dial tcp 20.150.77.132:443: i/o timeout] [SYS] 2023/11/07 - 16:00:41 | One API v0.5.8-alpha started [SYS] 2023/11/07 - 16:00:41 | SQL_DSN not set, using SQLite as database [SYS] 2023/11/07 - 16:00:41 | database migration started [SYS] 2023/11/07 - 16:00:41 | database migrated [SYS] 2023/11/07 - 16:00:41 | REDIS_CONN_STRING not set, Redis is not enabled [SYS] 2023/11/07 - 16:00:41 | initializing token encoder
无限重复, 启动失败 无法访问
启动命令如下 docker run --name one-api -d --restart always -p 3001:3000 -e TZ=Asia/Shanghai -e TIKTOKEN_CACHE_DIR=data/one-api/cache -v one-api:/data one-api:v0.5.8-alpha dd34371c513701e624bb76f9f17e2fe0995bf8cafd7f047f42a42e10b1d24da7
同样的问题, 离线部署,启动失败。 镜像id 2d660
Token 数量计算库需要联网下载词库文件。如果需要离线启动,参考说明自行处理。
TIKTOKEN_CACHE_DIR:默认程序启动时会联网下载一些通用的词元的编码,如:gpt-3.5-turbo,在一些网络环境不稳定,或者离线情况,可能会导致启动有问题,可以配置此目录缓存数据,可迁移到离线环境。
另外好奇问一句,离线启动,那这个项目的意义在哪?不能联网怎么调 API 啊?
感谢,看到了。 我下载了gpt-3.5-turbo 的tiktoken 放在挂载的目录下,设置好环境变量。启动还是失败。
离线问题,大模型也是离线部署的。
你先正常部署一下,看应该是什么格式放过去
感谢,我先,在线运行容器,然后export导出整个container. 问题解决。
感谢,我先,在线运行容器,然后export导出整个container. 问题解决。
我也碰到了这个问题,具体要怎么操作
用镜像加参数的方式不能解决,导出整个container. 可以解决
参考:https://zhuanlan.zhihu.com/p/637233783?utm_id=0
第一次调用encoding_for_model()时,编码数据将通过HTTP从 http://openaipublic.blob.core.windows.net Azure Blob存储桶(storage bucket)获取(代码:https://github.com/openai/tiktoken/blob/0.4.0/tiktoken_ext/openai_public.py)。这些数据会被缓存在临时目录中,但如果机器重新启动,该目录将被清除。你可通过设置 TIKTOKEN_CACHE_DIR环境变量来强制使用更持久的缓存目录。
参考tiktoken源码:
...
def read_file_cached(blobpath: str) -> bytes:
user_specified_cache = True
if "TIKTOKEN_CACHE_DIR" in os.environ:
cache_dir = os.environ["TIKTOKEN_CACHE_DIR"]
elif "DATA_GYM_CACHE_DIR" in os.environ:
cache_dir = os.environ["DATA_GYM_CACHE_DIR"]
else:
cache_dir = os.path.join(tempfile.gettempdir(), "data-gym-cache")
user_specified_cache = False
if cache_dir == "":
# disable caching
return read_file(blobpath)
cache_key = hashlib.sha1(blobpath.encode()).hexdigest()
cache_path = os.path.join(cache_dir, cache_key)
if os.path.exists(cache_path):
with open(cache_path, "rb") as f:
return f.read()
contents = read_file(blobpath)
try:
os.makedirs(cache_dir, exist_ok=True)
tmp_filename = cache_path + "." + str(uuid.uuid4()) + ".tmp"
with open(tmp_filename, "wb") as f:
f.write(contents)
os.rename(tmp_filename, cache_path)
except OSError:
# don't raise if we can't write to the default cache, e.g. issue #75
if user_specified_cache:
raise
return contents
...
解决方案:
拷贝所需的文件: 9b5ad71b2ce5302211f9c61530b329a4922fc6a4
放在内网服务器one-api项目的docker-compose.yml文件同目录下,
编辑vim docker-compose.yml, 在one-api服务的volumns下添加挂载:
volumes:
- ./data/oneapi:/data
- ./logs:/app/logs
- ./9b5ad71b2ce5302211f9c61530b329a4922fc6a4:/tmp/data-gym-cache/9b5ad71b2ce5302211f9c61530b329a4922fc6a4
感谢,看到了。 我下载了gpt-3.5-turbo 的tiktoken 放在挂载的目录下,设置好环境变量。启动还是失败。
离线问题,大模型也是离线部署的。
私有化模型统一管理有这个需求
感谢,我先,在线运行容器,然后export导出整个container. 问题解决。
我也碰到了这个问题,具体要怎么操作
在本地跑成功,之后docker export xxx -o xxx.tar.gz导出,将镜像移到离线服务器 docker import /path/xxx.tar.gz加载,最后docker run --name one-api -it --restart always -p 3001:3000 -e TZ=Asia/Shanghai -v /home/ubuntu/fastgpt/api-log:/data --privileged 镜像名称 sh -c ./one-api --port 3000 --log-dir ./logs
Token 数量计算库需要联网下载词库文件。如果需要离线启动,参考说明自行处理。
TIKTOKEN_CACHE_DIR:默认程序启动时会联网下载一些通用的词元的编码,如:gpt-3.5-turbo,在一些网络环境不稳定,或者离线情况,可能会导致启动有问题,可以配置此目录缓存数据,可迁移到离线环境。
另外好奇问一句,离线启动,那这个项目的意义在哪?不能联网怎么调 API 啊?
本地部署模型,对公领域对数据敏感性很高的
我解决了:
docker命令是sudo docker run --name one-api -d --restart always -p 3001:3000 -e TZ=Asia/Shanghai -e TIKTOKEN_CACHE_DIR=home/yx/projects/data/one-api/cache -v /home/yx/projects/data/one-api:/data justsong/one-api
home/yx/projects/data/one-api/cache下是从这里下载的文件https://openaipublic.blob.core.windows.net/encodings/cl100k_base.tiktoken
9b5ad71b2ce5302211f9c61530b329a4922fc6a4
请问9b5ad71b2ce5302211f9c61530b329a4922fc6a4 是怎么确定的? 为何不是cl100k_base.tiktoken原名
文件也不大, 建议打包在镜像里, 减少依赖; 有的地方是不能随意访问外网的, 得专门开通才可以.
新版本两个包 9b5ad71b2ce5302211f9c61530b329a4922fc6a4 fb374d419588a4632f3f557e76b4b70aebbca790 在/tmp/data-gym-cache目录下
@weixiewen 感谢!