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
02abe42a
authored
Apr 20, 2023
by
archer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: docs
parent
088a90de
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
178 additions
and
115 deletions
+178
-115
.env.template
+22
-11
README.md
+150
-102
docs/imgs/KBProcess.jpg
+0
-0
src/pages/api/chat/vectorGpt.ts
+3
-1
src/pages/api/openapi/chat/vectorGpt.ts
+3
-1
No files found.
.env.template
View file @
02abe42a
# proxy
AXIOS_PROXY_HOST=127.0.0.1
AXIOS_PROXY_HOST=127.0.0.1
AXIOS_PROXY_PORT_FAST=7890
AXIOS_PROXY_PORT_FAST=7890
AXIOS_PROXY_PORT_NORMAL=7890
AXIOS_PROXY_PORT_NORMAL=7890
MONGODB_URI=mongodb://username:password@0.0.0.0:27017/?authSource=admin&readPreference=primary&appname=MongoDB%20Compass&ssl=false
queueTask=1
MY_MAIL=11111111@qq.com
# email
MAILE_CODE=sdasadasfasfad
MY_MAIL=xxx@qq.com
aliAccessKeyId=阿里云keyid
MAILE_CODE=xxx
aliAccessKeySecret=阿里云keysecret
# ali ems
aliSignName=短信签名
aliAccessKeyId=xxx
aliTemplateCode=SMS_号
aliAccessKeySecret=xxx
TOKEN_KEY=sssssssss
aliSignName=xxx
OPENAIKEY=sk-afadfadfadfsd
aliTemplateCode=SMS_xxx
REDIS_URL=redis://default:password@0.0.0.0:8100
# token
\ No newline at end of file
TOKEN_KEY=xxx
# openai
OPENAIKEY=sk-xxx
# db
MONGODB_URI=mongodb://username:password@0.0.0.0:27017/test?authSource=admin
PG_HOST=0.0.0.0
PG_PORT=8100
PG_USER=xxx
PG_PASSWORD=xxx
PG_DB_NAME=xxx
\ No newline at end of file
README.md
View file @
02abe42a
# Fast GPT
# Fast GPT
Fast GPT 允许你使用自己的 openai API KEY 来快速的调用 openai 接口,包括 GPT3 及其微调方法,以及最新的 gpt3.5 接口。
Fast GPT 允许你使用自己的 openai API KEY 来快速的调用 openai 接口,目前集成了 gpt35 和 embedding. 可构建自己的知识库。
## 知识库原理

## 开发
## 开发
复制 .env.template 成 .env.local ,填写核心参数
复制 .env.template 成 .env.local ,填写核心参数
```
```
bash
AXIOS_PROXY_HOST=axios代理地址,目前 openai 接口都需要走代理,本机的话就填 127.0.0.1
# proxy(不需要代理可忽略)
AXIOS_PROXY_PORT_FAST=代理端口1,clash默认为7890
AXIOS_PROXY_HOST
=
127.0.0.1
AXIOS_PROXY_PORT_NORMAL=代理端口2
AXIOS_PROXY_PORT_FAST
=
7890
MONGODB_URI=mongo数据库地址
AXIOS_PROXY_PORT_NORMAL
=
7890
MY_MAIL=发送验证码邮箱
queueTask
=
1
MAILE_CODE=邮箱秘钥(代理里设置的是QQ邮箱,不知道怎么找这个 code 的,可以百度搜"nodemailer发送邮件")
# email,参考 nodeMail 获取参数
TOKEN_KEY=随便填一个,用于生成和校验 token
MY_MAIL
=
xxx@qq.com
OPENAIKEY=openai的key
MAILE_CODE
=
xxx
REDIS_URL=redis的地址
# 阿里短信服务
aliAccessKeyId
=
xxx
aliAccessKeySecret
=
xxx
aliSignName
=
xxx
aliTemplateCode
=
SMS_xxx
# token(随便填,登录凭证)
TOKEN_KEY
=
xxx
# openai key
OPENAIKEY
=
sk-xxx
# mongo连接地址
MONGODB_URI
=
mongodb://username:password@0.0.0.0:27017/test?authSource
=
admin
MONGODB_NAME
=
xxx
# mongo数据库名称
# pg 数据库相关内容,和 docker-compose 对上
PG_HOST
=
0.0.0.0
PG_PORT
=
8102
PG_USER
=
xxx
PG_PASSWORD
=
xxx
PG_DB_NAME
=
xxx
```
```
```
bash
```
bash
pnpm dev
pnpm dev
...
@@ -22,25 +42,21 @@ pnpm dev
...
@@ -22,25 +42,21 @@ pnpm dev
## 部署
## 部署
### docker 模式
### 安装 docker 和 docker-compose
请准备好 docker, mongo,代理, 和 nginx。 镜像走本机的代理,所以用 network=host,port 改成代理的端口,clash 一般都是 7890。
这个不同系统略有区别,百度安装下。验证安装成功后进行下一步。下面给出一个例子:
#### docker 打包
```
bash
docker build
-t
imageName:tag
.
docker push imageName:tag
# 或者直接拉镜像,见下方
```
#### 软件教程:docker 安装
```
bash
```
bash
# 安装docker
# 安装docker
curl
-
sS
L
https://get.daocloud.io/docker | sh
curl
-L
https://get.daocloud.io/docker | sh
sudo
systemctl start docker
sudo
systemctl start docker
# 安装 docker-compose
# 安装 docker-compose
curl
-L
https://github.com/docker/compose/releases/download/1.23.2/docker-compose-
`
uname
-s
`
-
`
uname
-m
`
-o
/usr/local/bin/docker-compose
sudo
chmod +x /usr/local/bin/docker-compose
# 验证安装
docker
-v
docker-compose
-v
```
```
###
# 软件教程: clash 代理
###
安装 clash 代理(选)
```
bash
```
bash
# 下载包
# 下载包
curl https://glados.rocks/tools/clash-linux.zip
-o
clash.zip
curl https://glados.rocks/tools/clash-linux.zip
-o
clash.zip
...
@@ -71,72 +87,38 @@ nohup ./clash-linux-amd64-v1.10.0 -d ./ &
...
@@ -71,72 +87,38 @@ nohup ./clash-linux-amd64-v1.10.0 -d ./ &
echo
"Restart clash"
echo
"Restart clash"
```
```
#### 文件创建
### 本地 docker 打包
**yml文件**
```
bash
```
yml
docker build
-t
imageName:tag
.
version
:
"
3.3"
docker push imageName:tag
services
:
# 或者直接拉镜像,见下方
fast-gpt
:
image
:
c121914yu/fast-gpt:latest
environment
:
AXIOS_PROXY_HOST
:
127.0.0.1
AXIOS_PROXY_PORT
:
7890
MY_MAIL
:
11111111@qq.com
MAILE_CODE
:
sdasadasfasfad
TOKEN_KEY
:
sssssssss
MONGODB_URI
:
mongodb://username:password@0.0.0.0:27017/?authSource=admin&readPreference=primary&appname=MongoDB%20Compass&ssl=false
OPENAIKEY
:
sk-afadfadfadfsd
REDIS_URL
:
redis://default:password@0.0.0.0:8100
network_mode
:
host
restart
:
always
container_name
:
fast-gpt
mongodb
:
image
:
mongo:6.0.4
container_name
:
mongo
restart
:
always
environment
:
-
MONGO_INITDB_ROOT_USERNAME=root
-
MONGO_INITDB_ROOT_PASSWORD=ROOT_1234
-
MONGO_DATA_DIR=/data/db
-
MONGO_LOG_DIR=/data/logs
volumes
:
-
/root/fastgpt/mongo/data:/data/db
-
/root/fastgpt/mongo/logs:/data/logs
ports
:
-
27017:27017
nginx
:
image
:
nginx:alpine3.17
container_name
:
nginx
restart
:
always
network_mode
:
host
ports
:
-
"
80:80"
volumes
:
-
/root/fastgpt/nginx/nginx.conf:/etc/nginx/nginx.conf:ro
redis-stack
:
image
:
redis/redis-stack:6.2.6-v6
container_name
:
redis-stack
restart
:
unless-stopped
ports
:
-
"
8100:6379"
-
"
8101:8001"
environment
:
-
REDIS_ARGS=--requirepass psw1234
volumes
:
-
/etc/localtime:/etc/localtime:ro
-
/root/fastgpt/redis/redis.conf:/redis.conf
-
/root/fastgpt/redis/data:/data
```
**redis.conf**
```
```
## 开启aop持久化
appendonly yes
### 准备初始化文件
#default: 持久化文件
**/root/fast-gpt/pg/init.sql**
appendfilename "appendonly.aof"
```
sql
#default: 每秒同步一次
#!/
bin
/
bash
appendfsync everysec
set
-
e
psql
-
v
ON_ERROR_STOP
=
1
--username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
CREATE
EXTENSION
vector
;
-- init table
CREATE
TABLE
modelData
(
id
BIGSERIAL
PRIMARY
KEY
,
vector
VECTOR
(
1536
),
status
VARCHAR
(
50
)
NOT
NULL
,
user_id
VARCHAR
(
50
)
NOT
NULL
,
model_id
VARCHAR
(
50
)
NOT
NULL
,
q
TEXT
NOT
NULL
,
a
TEXT
NOT
NULL
);
-- create index
CREATE
INDEX
modelData_status_index
ON
modelData
(
status
);
CREATE
INDEX
modelData_modelId_index
ON
modelData
(
modelId
);
CREATE
INDEX
modelData_userId_index
ON
modelData
(
userId
);
EOSQL
```
```
**nginx.conf**
**
/root/fast-gpt/nginx/
nginx.conf**
```
conf
```
conf
user
nginx
;
user
nginx
;
worker_processes
auto
;
worker_processes
auto
;
...
@@ -169,9 +151,9 @@ http {
...
@@ -169,9 +151,9 @@ http {
server
{
server
{
listen
443
ssl
;
listen
443
ssl
;
server_name
fast
gpt
.
ahapocket
.
cn
;
server_name
doc
gpt
.
ahapocket
.
cn
;
ssl_certificate
/
ssl
/
fast
gpt
.
pem
;
ssl_certificate
/
ssl
/
doc
gpt
.
pem
;
ssl_certificate_key
/
ssl
/
fast
gpt
.
key
;
ssl_certificate_key
/
ssl
/
doc
gpt
.
key
;
ssl_session_timeout
5
m
;
ssl_session_timeout
5
m
;
location
/ {
location
/ {
...
@@ -183,25 +165,91 @@ http {
...
@@ -183,25 +165,91 @@ http {
}
}
server
{
server
{
listen
80
;
listen
80
;
server_name
fast
gpt
.
ahapocket
.
cn
;
server_name
doc
gpt
.
ahapocket
.
cn
;
rewrite
^(.*)
https
://$
server_name
$
1
permanent
;
rewrite
^(.*)
https
://$
server_name
$
1
permanent
;
}
}
}
}
```
```
**/root/fast-gpt/docker-compose.yml**
#### 运行脚本
```
yml
**redis 初始化**
version
:
"
3.3"
```
bash
services
:
# 进入容器
fast-gpt
:
docker
exec
-it
容器ID bash
image
:
c121914yu/fast-gpt:latest
redis-cli
-p
6379
network_mode
:
host
auth psw1234
restart
:
always
# 添加索引
container_name
:
fast-gpt
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
environment
:
# 代理(不需要代理,可去掉下面三个参数)
-
AXIOS_PROXY_HOST=127.0.0.1
-
AXIOS_PROXY_PORT_FAST=7890
-
AXIOS_PROXY_PORT_NORMAL=7890
# 邮箱
-
MY_MAIL=xxxx@qq.com
-
MAILE_CODE=xxxx
# 阿里云短信
-
aliAccessKeyId=xxxx
-
aliAccessKeySecret=xxxx
-
aliSignName=xxxxx
-
aliTemplateCode=SMS_xxxx
# 登录 key
-
TOKEN_KEY=xxxx
# 是否开启队列任务。 1-开启,0-关闭(请求parentUrl去执行任务,单机时直接填1)
-
queueTask=1
-
parentUrl=https://fastgpt.run/api/openapi/startEvents
# db
-
MONGODB_URI=mongodb://username:passsword@0.0.0.0:27017/?authSource=admin
-
MONGODB_NAME=xxx
-
PG_HOST=0.0.0.0
-
PG_PORT=8100
-
PG_USER=xxx
-
PG_PASSWORD=xxx
-
PG_DB_NAME=xxx
# openai 账号
-
OPENAIKEY=sk-xxxxx
nginx
:
image
:
nginx:alpine3.17
container_name
:
nginx
restart
:
always
network_mode
:
host
volumes
:
-
/root/fast-gpt/nginx/nginx.conf:/etc/nginx/nginx.conf:ro
-
/root/fast-gpt/nginx/logs:/var/log/nginx
-
/root/fast-gpt/nginx/ssl/docgpt.key:/ssl/docgpt.key
-
/root/fast-gpt/nginx/ssl/docgpt.pem:/ssl/docgpt.pem
pg
:
image
:
ankane/pgvector
container_name
:
pg
restart
:
always
ports
:
-
8100:5432
environment
:
-
POSTGRES_USER=xxx
-
POSTGRES_PASSWORD=xxx
-
POSTGRES_DB=xxx
volumes
:
-
/root/fast-gpt/pg/data:/var/lib/postgresql/data
-
/root/fast-gpt/pg/init.sql:/docker-entrypoint-initdb.d/init.sh
-
/etc/localtime:/etc/localtime:ro
mongodb
:
image
:
mongo:4.0.1
container_name
:
mongo
restart
:
always
ports
:
-
27017:27017
environment
:
-
MONGO_INITDB_ROOT_USERNAME=username
-
MONGO_INITDB_ROOT_PASSWORD=password
volumes
:
-
/root/fast-gpt/mongo/data:/data/db
-
/root/fast-gpt/mongo/logs:/var/log/mongodb
-
/etc/localtime:/etc/localtime:ro
```
```
### 辅助运行脚本
**run.sh 运行文件**
**run.sh 运行文件**
```
bash
```
bash
#!/bin/bash
#!/bin/bash
docker-compose pull
docker-compose up
-d
docker-compose up
-d
echo
"Docker Compose 重新拉取镜像完成!"
echo
"Docker Compose 重新拉取镜像完成!"
...
...
docs/imgs/KBProcess.jpg
0 → 100644
View file @
02abe42a
69 KB
src/pages/api/chat/vectorGpt.ts
View file @
02abe42a
...
@@ -107,7 +107,9 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
...
@@ -107,7 +107,9 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
prompts
.
unshift
({
prompts
.
unshift
({
obj
:
'SYSTEM'
,
obj
:
'SYSTEM'
,
value
:
`
${
model
.
systemPrompt
}
知识库是最新的,下面是知识库内容:当前时间为
${
dayjs
().
format
(
value
:
`
${
model
.
systemPrompt
||
'根据知识库内容回答'
}
知识库是最新的,下面是知识库内容:当前时间为
${
dayjs
().
format
(
'YYYY/MM/DD HH:mm:ss'
'YYYY/MM/DD HH:mm:ss'
)}
\n
${
systemPrompt
}
`
)}
\n
${
systemPrompt
}
`
});
});
...
...
src/pages/api/openapi/chat/vectorGpt.ts
View file @
02abe42a
...
@@ -126,7 +126,9 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
...
@@ -126,7 +126,9 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
prompts
.
unshift
({
prompts
.
unshift
({
obj
:
'SYSTEM'
,
obj
:
'SYSTEM'
,
value
:
`
${
model
.
systemPrompt
}
知识库是最新的,下面是知识库内容:当前时间为
${
dayjs
().
format
(
value
:
`
${
model
.
systemPrompt
||
'根据知识库内容回答'
}
知识库是最新的,下面是知识库内容:当前时间为
${
dayjs
().
format
(
'YYYY/MM/DD HH:mm:ss'
'YYYY/MM/DD HH:mm:ss'
)}
\n
${
systemPrompt
}
`
)}
\n
${
systemPrompt
}
`
});
});
...
...
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