one-api采用docker-compose离线部署找不到cl100k_base.tiktoken解决办法
one-api采用docker-compose离线部署方法:
1.先在能上网的主机按照github上说明装好one-api
2.将3个镜像打包
docker save -o one-api.tar justsong/one-api
docker save -o pgvector.tar pgvector/pgvector
docker save -o mysql.tar mysql
3.将镜像复制到离线主机,运行
docker load -i one-api.tar
docker load -i pgvector.tar
docker load -i mysql.tar
4.将 docker-compose.yml复制到离线主机,修改内容如下:
version: '3.4'
services:
one-api:
image: "${REGISTRY:-docker.io}/justsong/one-api:latest"
container_name: one-api
restart: always
command: --log-dir /app/logs
ports:
- "3000:3000"
volumes:
- ./data/oneapi:/data
- ./logs:/app/logs
environment:
- SQL_DSN=oneapi:123456@tcp(db:3306)/one-api # 修改此行,或注释掉以使用 SQLite 作为数据库
- REDIS_CONN_STRING=redis://redis
- SESSION_SECRET=random_string # 修改为随机字符串
- TZ=Asia/Shanghai
# - NODE_TYPE=slave # 多机部署时从节点取消注释该行
# - SYNC_FREQUENCY=60 # 需要定期从数据库加载数据时取消注释该行
# - FRONTEND_BASE_URL=https://openai.justsong.cn # 多机部署时从节点取消注释该行
depends_on:
- redis
- db
#healthcheck:
#test: [ "CMD-SHELL", "wget -q -O - http://localhost:3000/api/status | grep -o '\"success\":\\s*true' | awk -F: '{print $2}'" ]
#interval: 30s
#timeout: 10s
#retries: 3
redis:
image: "${REGISTRY:-docker.io}/redis:latest"
container_name: redis
restart: always
db:
image: "${REGISTRY:-docker.io}/mysql:8.2.0"
restart: always
container_name: mysql
volumes:
- ./data/mysql:/var/lib/mysql # 挂载目录,持久化存储
ports:
- '3307:3306'
environment:
TZ: Asia/Shanghai # 设置时区
MYSQL_ROOT_PASSWORD: 'OneAPI@justsong' # 设置 root 用户的密码
MYSQL_USER: oneapi # 创建专用用户
MYSQL_PASSWORD: '123456' # 设置专用用户密码
MYSQL_DATABASE: one-api # 自动创建数据库
5.运行
docker-compose up -d
等待10秒,如果容器一直启动不了反复重启,查看当前目录的logs目录下的日志,其中如果包含报错信息:
failed to get gpt-3.5-turbo token encoder: get "https://openaipublic.blob.core.windows.net/encodings/cl100k_base.tiktoken":dial tcp: lookup open..............
说明找不到cl100k_base.tiktoken文件(因为没联网)
6.解决办法
(1)先到网上下载https://openaipublic.blob.core.windows.net/encodings/cl100k_base.tiktoken,复制到离线主机某个目录:path/to/file
(2)将cl100k_base.tiktoken改名为9b5ad71b2ce5302211f9c61530b329a4922fc6a4
(3)在docker-compose.yml文件中one-api下的volumes中增加如下:
- path/to/file:/app/tiktokens
在environment下增加:
- TIKTOKEN_CACHE_DIR=/app/tiktokens
7.重新运行
docker-compose down
docker-compose up -d
应该可以了
更多推荐
所有评论(0)