diff --git a/.env.template b/.env.template index dad399c7c..0d1b43381 100644 --- a/.env.template +++ b/.env.template @@ -5,5 +5,4 @@ MY_MAIL= MAILE_CODE= TOKEN_KEY= OPENAIKEY= -REDIS_URL= -OPENAPI_KEY= \ No newline at end of file +REDIS_URL= \ No newline at end of file diff --git a/README.md b/README.md index 7a468ed5c..aa400ef70 100644 --- a/README.md +++ b/README.md @@ -8,42 +8,71 @@ Fast GPT 允许你使用自己的 openai API KEY 来快速的调用 openai 接 ``` AXIOS_PROXY_HOST=axios代理地址,目前 openai 接口都需要走代理,本机的话就填 127.0.0.1 AXIOS_PROXY_PORT=代理端口 -MONGODB_URI=mongo数据库地址(例如:mongodb://username:password@ip:27017/?authSource=admin&readPreference=primary&appname=MongoDB%20Compass&directConnection=true&ssl=false) +MONGODB_URI=mongo数据库地址 MY_MAIL=发送验证码邮箱 MAILE_CODE=邮箱秘钥(代理里设置的是QQ邮箱,不知道怎么找这个 code 的,可以百度搜"nodemailer发送邮件") TOKEN_KEY=随便填一个,用于生成和校验 token +OPENAIKEY=openai的key +REDIS_URL=redis的地址 ``` ```bash pnpm dev ``` -Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. ## 部署 ### docker 模式 -请准备好 docker, mongo,代理, 和nginx。 镜像走本机的代理,所以用 network=host,port 改成代理的端口,clash 一般都是 7890。 +请准备好 docker, mongo,代理, 和 nginx。 镜像走本机的代理,所以用 network=host,port 改成代理的端口,clash 一般都是 7890。 #### docker 打包 ```bash docker build -t imageName:tag . docker push imageName:tag +# 或者直接拉镜像,见下方 ``` #### 服务器拉取镜像和运行 +```yml +# docker-compose +version: "3.3" +services: + fast-gpt: + image: c121914yu/fast-gpt:latest + environment: + AXIOS_PROXY_HOST: 127.0.0.1 + AXIOS_PROXY_PORT: 7890 + MY_MAIL: + MAILE_CODE: + TOKEN_KEY: + MONGODB_URI: + OPENAIKEY: + REDIS_URL: + network_mode: host + restart: always + container_name: fast-gpt +``` ```bash -# 服务器拉取部署, imageName 替换成镜像名 -docker pull imageName:tag -docker stop fast-gpt || true -docker rm fast-gpt || true -docker run -d --network=host --name fast-gpt \ - -e AXIOS_PROXY_HOST=127.0.0.1 \ - -e AXIOS_PROXY_PORT=7890 \ - -e MY_MAIL=your email\ - -e MAILE_CODE=your email code \ - -e TOKEN_KEY=任意一个内容 \ - -e MONGODB_URI="mongodb://user:password@127.0.0.0:27017/?authSource=admin&readPreference=primary&appname=MongoDB%20Compass&ssl=false" \ - imageName:tag +#!/bin/bash +# 拉取最新镜像 +docker-compose pull +docker-compose up -d + +echo "Docker Compose 重新拉取镜像完成!" + +# 删除本地旧镜像 +images=$(docker images --format "{{.ID}} {{.Repository}}" | grep fast-gpt) + +# 将镜像 ID 和名称放入数组中 +IFS=$'\n' read -rd '' -a image_array <<<"$images" + +# 遍历数组并删除所有旧的镜像 +for ((i=1; i<${#image_array[@]}; i++)) +do + image=${image_array[$i]} + image_id=${image%% *} + docker rmi $image_id +done ``` #### 软件教程:docker 安装 @@ -104,9 +133,33 @@ echo "Restart clash" #### redis +安装 ```bash -# 索引 -# FT.CREATE idx:model:data ON JSON PREFIX 1 model:data: SCHEMA $.modelId AS modelId TAG $.dataId AS dataId TAG $.vector AS vector VECTOR FLAT 6 DIM 1536 DISTANCE_METRIC COSINE TYPE FLOAT32 -# FT.CREATE idx:model:data:hash ON HASH PREFIX 1 model:data: SCHEMA modelId TAG dataId TAG vector VECTOR FLAT 6 DIM 1536 DISTANCE_METRIC COSINE TYPE FLOAT32 +#!/bin/bash +docker pull redis/redis-stack:6.2.6-v6 +docker stop fast-gpt-redis-stack +docker rm fast-gpt-redis-stack + +docker run -d --name fast-gpt-redis-stack \ + -v /redis/data:/data \ + -v /etc/localtime:/etc/localtime:ro \ + -v /redis.conf:/redis-stack.conf \ + -e REDIS_ARGS="--requirepass 1111111"\ + -p 8102:6379 \ + -p 8103:8001 \ + --restart unless-stopped \ + redis/redis-stack:6.2.6-v6 +``` +```bash +# /redis.conf +# 开启aop持久化 +appendonly yes +#default: 持久化文件 +appendfilename "appendonly.aof" +#default: 每秒同步一次 +appendfsync everysec +``` +```bash +# 添加索引 FT.CREATE idx:model:data:hash ON HASH PREFIX 1 model:data: SCHEMA modelId TAG userId TAG status TAG q TEXT text TEXT vector VECTOR FLAT 6 DIM 1536 DISTANCE_METRIC COSINE TYPE FLOAT32 ```