Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
赵月辉
/
fastgpt-migrated
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Unverified
Commit
3ef6d3fe
authored
May 08, 2023
by
archer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
deploy docs
parent
e2fccd39
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
72 additions
and
49 deletions
+72
-49
README.md
+54
-35
deploy/docker-compose/init.sh
+2
-0
src/pages/chat/index.tsx
+16
-14
No files found.
README.md
View file @
3ef6d3fe
...
@@ -8,6 +8,8 @@ Fast GPT 允许你使用自己的 openai API KEY 来快速的调用 openai 接
...
@@ -8,6 +8,8 @@ Fast GPT 允许你使用自己的 openai API KEY 来快速的调用 openai 接
## 开发
## 开发
**第一次开发,请先看下方部署,需要部署数据库.开发的环境变量和部署的环境变量几乎相同,仅 IP 地址不一样.所以部署好后,直接把部署文件的环境变量复制过来,改下 Ip 就 OK 了。**
**配置环境变量**
**配置环境变量**
复制.env.template 文件,生成一个.env.local 环境变量文件夹,修改.env.local 内容,参考下方:
复制.env.template 文件,生成一个.env.local 环境变量文件夹,修改.env.local 内容,参考下方:
...
@@ -18,31 +20,24 @@ AXIOS_PROXY_PORT=7890
...
@@ -18,31 +20,24 @@ AXIOS_PROXY_PORT=7890
# openai 中转连接(可选)
# openai 中转连接(可选)
OPENAI_BASE_URL
=
https://api.openai.com/v1
OPENAI_BASE_URL
=
https://api.openai.com/v1
OPENAI_BASE_URL_AUTH
=
可选的安全凭证
OPENAI_BASE_URL_AUTH
=
可选的安全凭证
# 是否开启队列任务。 1-开启,0-关闭(请求 parentUrl 去执行任务,单机时直接填1)
queueTask
=
1
queueTask
=
1
parentUrl
=
https://hostname/api/openapi/startEvents
parentUrl
=
https://hostname/api/openapi/startEvents
# 发送邮箱验证码配置。参考 nodeMail 获取参数,自行百度。
MY_MAIL
=
xxx@qq.com
MY_MAIL
=
xxx@qq.com
MAILE_CODE
=
xxx
MAILE_CODE
=
xxx
# 阿里短信服务(邮箱和短信至少二选一)
aliAccessKeyId
=
xxx
aliAccessKeyId
=
xxx
aliAccessKeySecret
=
xxx
aliAccessKeySecret
=
xxx
aliSignName
=
xxx
aliSignName
=
xxx
aliTemplateCode
=
SMS_xxx
aliTemplateCode
=
SMS_xxx
# token(随便填,作为登录凭证)
TOKEN_KEY
=
xxx
TOKEN_KEY
=
xxx
# openai key
OPENAIKEY
=
sk-xxx
OPENAIKEY
=
sk-xxx
# mongo连接地址
# 和mongo镜像的username,password对应
MONGODB_URI
=
mongodb://username:password@0.0.0.0:27017/test?authSource
=
admin
MONGODB_URI
=
mongodb://username:password@服务器IP:27017/test?authSource
=
admin
# mongo数据库名称
MONGODB_NAME
=
xxx
MONGODB_NAME
=
xxx
# pg 数据库相关内容,和 docker-compose pg 部分对上
PG_HOST
=
服务器IP
PG_HOST
=
0.0.0.0
PG_PORT
=
8100
PG_PORT
=
8102
PG_USER
=
fastgpt
# POSTGRES_USER
PG_USER
=
fastgpt
PG_PASSWORD
=
1234
# POSTGRES_PASSWORD
PG_PASSWORD
=
1234
PG_DB_NAME
=
fastgpt
# POSTGRES_DB
PG_DB_NAME
=
fastgpt
```
```
**运行**
**运行**
...
@@ -55,13 +50,21 @@ pnpm dev
...
@@ -55,13 +50,21 @@ pnpm dev
### 代理环境(国外服务器可忽略)
### 代理环境(国外服务器可忽略)
选择一个即可。
1.
[
clash 方案
](
./docs/proxy/clash.md
)
- 仅需一台服务器(需要有 clash)
1.
[
clash 方案
](
./docs/proxy/clash.md
)
- 仅需一台服务器(需要有 clash)
2.
[
nginx 方案
](
./docs/proxy/nginx.md
)
- 需要一台国外服务器
2.
[
nginx 方案
](
./docs/proxy/nginx.md
)
- 需要一台国外服务器
3.
[
cloudflare 方案
](
./docs/proxy/cloudflare.md
)
- 需要有域名(每日免费 10w 次代理请求)
3.
[
cloudflare 方案
](
./docs/proxy/cloudflare.md
)
- 需要有域名(每日免费 10w 次代理请求)
### docker 部署
### docker 部署
#### 1. 安装 docker 和 docker-compose
#### 1. 准备
> 1. 服务器开通 80 端口。用代理的话,对应的代理端口也需要打开。
> 2. QQ 邮箱 Code:进入 QQ 邮箱 -> 账号 -> 申请 SMTP 账号
> 3. 有域名的准备好 SSL 证书
#### 2. 安装 docker 和 docker-compose
这个不同系统略有区别,百度安装下。验证安装成功后进行下一步。下面给出一个例子:
这个不同系统略有区别,百度安装下。验证安装成功后进行下一步。下面给出一个例子:
...
@@ -75,13 +78,14 @@ sudo chmod +x /usr/local/bin/docker-compose
...
@@ -75,13 +78,14 @@ sudo chmod +x /usr/local/bin/docker-compose
# 验证安装
# 验证安装
docker
-v
docker
-v
docker-compose
-v
docker-compose
-v
# 如果docker-compose运行不了,可以把 deploy/docker-compose 文件复制到服务器,然后在 docker-compose 文件夹里执行 sh init.sh。会把docker-compose文件复制到对应目录。
```
```
#### 2. 创建 3 个初始化文件
#### 2. 创建 3 个初始化文件
手动创建或者直接把 deploy 里内容复制过去
手动创建或者直接把 deploy 里内容复制过去
**/root/fast
-gpt/pg/init.sql
**
**/root/fast
gpt/pg/init.sql PG 数据库初始化
**
```
sql
```
sql
set
-
e
set
-
e
...
@@ -105,7 +109,7 @@ CREATE INDEX modelData_modelId_index ON modelData USING HASH (model_id);
...
@@ -105,7 +109,7 @@ CREATE INDEX modelData_modelId_index ON modelData USING HASH (model_id);
EOSQL
EOSQL
```
```
**/root/fast
-gpt/nginx/nginx.conf
**
**/root/fast
gpt/nginx/nginx.conf Nginx 配置
**
```
conf
```
conf
user
nginx
;
user
nginx
;
...
@@ -147,6 +151,7 @@ http {
...
@@ -147,6 +151,7 @@ http {
server
{
server
{
listen
443
ssl
;
listen
443
ssl
;
# 改成自己的域名和证书
server_name
docgpt
.
ahapocket
.
cn
;
server_name
docgpt
.
ahapocket
.
cn
;
ssl_certificate
/
ssl
/
docgpt
.
pem
;
ssl_certificate
/
ssl
/
docgpt
.
pem
;
ssl_certificate_key
/
ssl
/
docgpt
.
key
;
ssl_certificate_key
/
ssl
/
docgpt
.
key
;
...
@@ -167,7 +172,7 @@ http {
...
@@ -167,7 +172,7 @@ http {
}
}
```
```
**/root/fast
-gpt/docker-compose.yml
**
**/root/fast
gpt/docker-compose.yml 核心部署文件
**
```
yml
```
yml
version
:
'
3.3'
version
:
'
3.3'
...
@@ -178,26 +183,35 @@ services:
...
@@ -178,26 +183,35 @@ services:
restart
:
always
restart
:
always
container_name
:
fast-gpt
container_name
:
fast-gpt
environment
:
environment
:
# - AXIOS_PROXY_HOST=127.0.0.1
# proxy(可选)
# - AXIOS_PROXY_PORT=7890
-
AXIOS_PROXY_HOST=127.0.0.1
# - OPENAI_BASE_URL=https://api.openai.com/v1
-
AXIOS_PROXY_PORT=7890
# - OPENAI_BASE_URL_AUTH=可选的安全凭证
# openai 中转连接(可选)
-
OPENAI_BASE_URL=https://api.openai.com/v1
-
OPENAI_BASE_URL_AUTH=可选的安全凭证
# 是否开启队列任务。 1-开启,0-关闭(请求 parentUrl 去执行任务,单机时直接填1)
-
queueTask=1
-
parentUrl=https://hostname/api/openapi/startEvents
# 发送邮箱验证码配置。用的是QQ邮箱。参考 nodeMail 获取MAILE_CODE,自行百度。
-
MY_MAIL=xxxx@qq.com
-
MY_MAIL=xxxx@qq.com
-
MAILE_CODE=xxxx
-
MAILE_CODE=xxxx
# 阿里短信服务(邮箱和短信至少二选一)
-
aliAccessKeyId=xxxx
-
aliAccessKeyId=xxxx
-
aliAccessKeySecret=xxxx
-
aliAccessKeySecret=xxxx
-
aliSignName=xxxxx
-
aliSignName=xxxxx
-
aliTemplateCode=SMS_xxxx
-
aliTemplateCode=SMS_xxxx
# token加密凭证(随便填,作为登录凭证)
-
TOKEN_KEY=xxxx
-
TOKEN_KEY=xxxx
-
queueTask=1
# 和下方mongo镜像的username,password对应
-
parentUrl=https://hostname/api/openapi/startEvents
-
MONGODB_URI=mongodb://username:passsword@0.0.0.0:27017/?authSource=admin
-
MONGODB_URI=mongodb://username:passsword@0.0.0.0:27017/?authSource=admin
-
MONGODB_NAME=xxx
-
MONGODB_NAME=xxx
-
PG_HOST=0.0.0.0
-
PG_HOST=0.0.0.0
-
PG_PORT=8100
-
PG_PORT=8100
-
PG_USER=fastgpt
# 和下方PG镜像对应.
-
PG_PASSWORD=1234
-
PG_USER=fastgpt
# POSTGRES_USER
-
PG_DB_NAME=fastgpt
-
PG_PASSWORD=1234
# POSTGRES_PASSWORD
-
PG_DB_NAME=fastgpt
# POSTGRES_DB
# openai api key
-
OPENAIKEY=sk-xxxxx
-
OPENAIKEY=sk-xxxxx
nginx
:
nginx
:
image
:
nginx:alpine3.17
image
:
nginx:alpine3.17
...
@@ -205,10 +219,12 @@ services:
...
@@ -205,10 +219,12 @@ services:
restart
:
always
restart
:
always
network_mode
:
host
network_mode
:
host
volumes
:
volumes
:
-
/root/fast-gpt/nginx/nginx.conf:/etc/nginx/nginx.conf:ro
# 刚创建的文件
-
/root/fast-gpt/nginx/logs:/var/log/nginx
-
/root/fastgpt/nginx/nginx.conf:/etc/nginx/nginx.conf:ro
-
/root/fast-gpt/nginx/ssl/docgpt.key:/ssl/docgpt.key
-
/root/fastgpt/nginx/logs:/var/log/nginx
-
/root/fast-gpt/nginx/ssl/docgpt.pem:/ssl/docgpt.pem
# https证书,没有的话不填,对应的nginx.conf也要修改
-
/root/fastgpt/nginx/ssl/docgpt.key:/ssl/docgpt.key
-
/root/fastgpt/nginx/ssl/docgpt.pem:/ssl/docgpt.pem
pg
:
pg
:
image
:
ankane/pgvector
image
:
ankane/pgvector
container_name
:
pg
container_name
:
pg
...
@@ -216,12 +232,14 @@ services:
...
@@ -216,12 +232,14 @@ services:
ports
:
ports
:
-
8100:5432
-
8100:5432
environment
:
environment
:
# 这里的配置只有首次运行生效。修改后,重启镜像是不会生效的。需要把持久化数据删除再重启,才有效果
-
POSTGRES_USER=fastgpt
-
POSTGRES_USER=fastgpt
-
POSTGRES_PASSWORD=1234
-
POSTGRES_PASSWORD=1234
-
POSTGRES_DB=fastgpt
-
POSTGRES_DB=fastgpt
volumes
:
volumes
:
-
/root/fast-gpt/pg/data:/var/lib/postgresql/data
# 刚创建的文件
-
/root/fast-gpt/pg/init.sql:/docker-entrypoint-initdb.d/init.sh
-
/root/fastgpt/pg/init.sql:/docker-entrypoint-initdb.d/init.sh
-
/root/fastgpt/pg/data:/var/lib/postgresql/data
-
/etc/localtime:/etc/localtime:ro
-
/etc/localtime:/etc/localtime:ro
mongodb
:
mongodb
:
image
:
mongo:6.0.4
image
:
mongo:6.0.4
...
@@ -230,11 +248,12 @@ services:
...
@@ -230,11 +248,12 @@ services:
ports
:
ports
:
-
27017:27017
-
27017:27017
environment
:
environment
:
# 这里的配置只有首次运行生效。修改后,重启镜像是不会生效的。需要把持久化数据删除再重启,才有效果
-
MONGO_INITDB_ROOT_USERNAME=username
-
MONGO_INITDB_ROOT_USERNAME=username
-
MONGO_INITDB_ROOT_PASSWORD=password
-
MONGO_INITDB_ROOT_PASSWORD=password
volumes
:
volumes
:
-
/root/fast
-
gpt/mongo/data:/data/db
-
/root/fastgpt/mongo/data:/data/db
-
/root/fast
-
gpt/mongo/logs:/var/log/mongodb
-
/root/fastgpt/mongo/logs:/var/log/mongodb
-
/etc/localtime:/etc/localtime:ro
-
/etc/localtime:/etc/localtime:ro
```
```
...
...
deploy/docker-compose/init.sh
View file @
3ef6d3fe
cp ./docker-compose /usr/local/bin/docker-compose
sudo
chmod +x /usr/local/bin/docker-compose
sudo
chmod +x /usr/local/bin/docker-compose
\ No newline at end of file
src/pages/chat/index.tsx
View file @
3ef6d3fe
...
@@ -563,20 +563,22 @@ const Chat = ({
...
@@ -563,20 +563,22 @@ const Chat = ({
<MenuItem onClick={() => router.replace(`/chat?modelId=${modelId}`)}>
<MenuItem onClick={() => router.replace(`/chat?modelId=${modelId}`)}>
新对话
新对话
</MenuItem>
</MenuItem>
<MenuItem
{chatId && (
onClick={async () => {
<MenuItem
try {
onClick={async () => {
setIsLoading(true);
try {
await onclickDelHistory(chatData.chatId);
setIsLoading(true);
router.replace(`/chat`);
await onclickDelHistory(chatData.chatId);
} catch (err) {
router.replace(`/chat`);
console.log(err);
} catch (err) {
}
console.log(err);
setIsLoading(false);
}
}}
setIsLoading(false);
>
}}
删除记录
>
</MenuItem>
删除记录
</MenuItem>
)}
<MenuItem onClick={() => onclickExportChat('html')}>导出HTML格式</MenuItem>
<MenuItem onClick={() => onclickExportChat('html')}>导出HTML格式</MenuItem>
<MenuItem onClick={() => onclickExportChat('pdf')}>导出PDF格式</MenuItem>
<MenuItem onClick={() => onclickExportChat('pdf')}>导出PDF格式</MenuItem>
<MenuItem onClick={() => onclickExportChat('md')}>导出Markdown格式</MenuItem>
<MenuItem onClick={() => onclickExportChat('md')}>导出Markdown格式</MenuItem>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment