Skip to content

Commit

Permalink
docs
Browse files Browse the repository at this point in the history
  • Loading branch information
c121914yu committed Aug 8, 2023
1 parent 6531af6 commit 5116bf7
Show file tree
Hide file tree
Showing 70 changed files with 599 additions and 393 deletions.
Binary file removed .github/imgs/KBProcess.jpg
Binary file not shown.
Binary file removed .github/imgs/demo.png
Binary file not shown.
Binary file added .github/imgs/intro1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/imgs/intro2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/imgs/intro3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/imgs/intro4.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
19 changes: 8 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,25 +1,22 @@
# Fast GPT
# FastGPT

Fast GPT 允许你使用自己的 openai API KEY 来快速的调用 openai 接口,目前集成了 Gpt35, Gpt4 和 embedding. 可构建自己的知识库。并且 OpenAPI Chat 接口兼容 OpenAI 接口,意味着你只需修改 BaseUrl 和 Authorization 即可在已有项目基础上接入 FastGpt
FastGPT 是一个基于 LLM 大语言模型的知识库问答系统,提供开箱即用的数据处理、模型调用等能力。同时可以通过 Flow 可视化进行工作流编排,从而实现复杂的问答场景

## 🛸 在线体验

🎉 [fastgpt.run](https://fastgpt.run/)
🎉 [ai.fastgpt.run](https://ai.fastgpt.run/)
🎉 [fastgpt.run](https://fastgpt.run/)(服务器在新加坡,部分地区可能无法直连)

![Demo](.github/imgs/demo.png?raw=true 'demo')

#### 知识库原理图

![KBProcess](.github/imgs/KBProcess.jpg?raw=true 'KBProcess')
| | |
| ---------------------------------- | ---------------------------------- |
| ![Demo](./.github/imgs/intro1.png) | ![Demo](./.github/imgs/intro2.png) |
| ![Demo](./.github/imgs/intro3.png) | ![Demo](./.github/imgs/intro4.png) |

## 👨‍💻 开发

项目技术栈: NextJs + TS + ChakraUI + Mongo + Postgres(Vector 插件)
这是一个平台项目,非单机项目,除了模型调用外还涉及非常多用户的内容。
[本地开发 Quick Start](docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/quick-start/dev.md)

## 🚀 私有化部署
## 🚀 部署

- [官方推荐 Sealos 部署](https://sealos.io/docs/examples/ai-applications/install-fastgpt-on-desktop) 无需服务器,代理和域名,高可用。
- [docker-compose 部署](docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/deploy/docker.md) 单机版。
Expand Down
18 changes: 5 additions & 13 deletions client/.env.template
Original file line number Diff line number Diff line change
@@ -1,18 +1,10 @@
# 运行端口,如果不是 3000 口运行,需要改成其他的。注意:不是改了这个变量就会变成其他端口,而是因为改成其他端口,才用这个变量。
PORT=3000
# database max link
DB_MAX_LINK=5
# 默认用户密码,用户名为 root,每次重启时会自动更新。
DEFAULT_ROOT_PSW=123456
# 代理
# AXIOS_PROXY_HOST=127.0.0.1
# AXIOS_PROXY_PORT=7890
# email
MY_MAIL=xxxx@qq.com
MAILE_CODE=xxxx
# ali ems
aliAccessKeyId=xxxx
aliAccessKeySecret=xxxx
aliSignName=xxxx
aliTemplateCode=xxxx
# 数据库最大连接数
DB_MAX_LINK=5
# token
TOKEN_KEY=dfdasfdas
# root key, 最高权限
Expand All @@ -22,7 +14,7 @@ OPENAI_BASE_URL=https://api.openai.com/v1
# oneapi 地址,可以使用 oneapi 来实现多模型接入
ONEAPI_URL=https://xxxx.cloud.sealos.io/openai/v1
# 通用key。可以是 openai 的也可以是 oneapi 的。
# 此处填写逻辑:填了 ONEAPI_URL,key 就填 oneapi 的。没填 ONEAPI_URL,key 就填 OPENAI_BASE_URL 对应的。
# 此处逻辑:优先走 ONEAPI_URL,如果填写了 ONEAPI_URL,key 也需要是 ONEAPI 的 key
CHAT_API_KEY=sk-xxxx
# db
MONGODB_URI=mongodb://username:password@0.0.0.0:27017/?authSource=admin
Expand Down
1 change: 0 additions & 1 deletion client/data/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
"show_appStore": false,
"show_userDetail": false,
"show_git": true,
"beianText": "",
"systemTitle": "FastAI",
"authorText": "Made by FastAI Team.",
"gitLoginKey": ""
Expand Down
4 changes: 2 additions & 2 deletions client/src/pages/components/Hero.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ const Hero = () => {
const { isPc, gitStar } = useGlobalStore();

return (
<Flex flexDirection={'column'} pt={['24px', '50px']} alignItems={'center'}>
<Flex flexDirection={'column'} pt={['24px', '50px']} alignItems={'center'} userSelect={'none'}>
<Box fontSize={['38px', '60px']} fontWeight={'bold'}>
{t('home.slogan')}
</Box>
Expand Down Expand Up @@ -60,7 +60,7 @@ const Hero = () => {
minH={['auto', '400px']}
src={isPc ? '/imgs/home/videobgpc.png' : '/imgs/home/videobgphone.png'}
mx={['-10%', 'auto']}
maxW={['120%', '950px']}
maxW={['120%', '1000px']}
alt=""
/>
<MyIcon
Expand Down
2 changes: 1 addition & 1 deletion client/src/pages/components/Navbar.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ const Navbar = () => {
transition={'0.4s ease'}
h={isOpenMenu ? '100vh' : 'auto'}
>
<Flex maxW={'1000px'} m={'auto'} alignItems={'center'}>
<Flex maxW={'1300px'} m={'auto'} alignItems={'center'}>
<Avatar src="/icon/logo.png" w={['30px', '38px']} />
<Box
className="textlg"
Expand Down
92 changes: 0 additions & 92 deletions docSite/docs/deploy/docker.md

This file was deleted.

Binary file removed docSite/docs/deploy/proxy/imgs/sealos1.png
Binary file not shown.
180 changes: 180 additions & 0 deletions docSite/docs/develop/deploy/docker.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,180 @@
# docker-compose 快速部署

## 一、预先准备

### 准备好代理环境(国外服务器可忽略)

确保可访问到 OpenAI,方案可参考:[sealos nginx 中转](../proxy/sealos)

### OneAPI (可选,需要多模型和 key 轮询时使用)

推荐使用 [one-api](https://github.com/songquanpeng/one-api) 项目来管理 key 池,兼容 openai 、微软和国内主流模型等。

部署可以看该项目的 [README.md](https://github.com/songquanpeng/one-api),也可以看 [在 Sealos 1 分钟部署 one-api](../oneapi)

## 二、安装 docker 和 docker-compose

这个不同系统略有区别,百度安装下。验证安装成功后进行下一步。下面给出 centos 一个例子:

```bash
# 安装docker
curl -L https://get.daocloud.io/docker | sh
sudo systemctl start docker
# 安装 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
```

## 三、创建 docker-compose.yml 文件

```yml
# 非 host 版本, 不使用本机代理
version: '3.3'
services:
pg:
image: ghcr.io/c121914yu/fastgpt:latest # git
# image: registry.cn-hangzhou.aliyuncs.com/fastgpt/pgvector:v0.4.2 # 阿里云
container_name: pg
restart: always
ports: # 生产环境建议不要暴露
- 5432:5432
networks:
- fastgpt
environment:
# 这里的配置只有首次运行生效。修改后,重启镜像是不会生效的。需要把持久化数据删除再重启,才有效果
- POSTGRES_USER=username
- POSTGRES_PASSWORD=password
- POSTGRES_DB=postgres
volumes:
- ./pg/data:/var/lib/postgresql/data
mongo:
image: mongo:5.0.18
# image: registry.cn-hangzhou.aliyuncs.com/fastgpt/mongo:5.0.18 # 阿里云
container_name: mongo
restart: always
ports: # 生产环境建议不要暴露
- 27017:27017
networks:
- fastgpt
environment:
# 这里的配置只有首次运行生效。修改后,重启镜像是不会生效的。需要把持久化数据删除再重启,才有效果
- MONGO_INITDB_ROOT_USERNAME=username
- MONGO_INITDB_ROOT_PASSWORD=password
volumes:
- ./mongo/data:/data/db
fastgpt:
container_name: fastgpt
# image: c121914yu/fast-gpt:latest # docker hub
image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:latest # 阿里云
ports:
- 3000:3000
networks:
- fastgpt
depends_on:
- mongo
- pg
restart: always
environment:
- DEFAULT_ROOT_PSW=1234
- DB_MAX_LINK=5 # database max link
# token加密凭证(随便填,作为登录凭证)
- TOKEN_KEY=any
# root key, 最高权限,可以内部接口互相调用
- ROOT_KEY=root_key
# mongo 配置,不需要改
- MONGODB_URI=mongodb://username:password@mongo:27017/?authSource=admin
- MONGODB_NAME=fastgpt
# pg配置.
- PG_HOST=pg
- PG_PORT=5432
- PG_USER=username
- PG_PASSWORD=password
- PG_DB_NAME=postgres
# 用了中转的话,需要修改这个变量
- OPENAI_BASE_URL=https://api.openai.com/v1
# 用了 ONEAPI 则填写该地址
# - ONEAPI_URL=https://xxxx.cloud.sealos.io/v1
# OpenAI 的 key 或者 ONEAPI 的key,填了 ONEAPI_URL 则填写 ONEAPI 的 key
- CHAT_API_KEY=sk-xxxx
networks:
fastgpt:
```
```yml
# host 版本, 不推荐。
version: '3.3'
services:
pg:
image: ankane/pgvector:v0.4.2 # dockerhub
# image: registry.cn-hangzhou.aliyuncs.com/fastgpt/pgvector:v0.4.2 # 阿里云
container_name: pg
restart: always
ports: # 生产环境建议不要暴露
- 5432:5432
environment:
# 这里的配置只有首次运行生效。修改后,重启镜像是不会生效的。需要把持久化数据删除再重启,才有效果
- POSTGRES_USER=username
- POSTGRES_PASSWORD=password
- POSTGRES_DB=postgres
volumes:
- ./pg/data:/var/lib/postgresql/data
mongo:
image: mongo:5.0.18
# image: registry.cn-hangzhou.aliyuncs.com/fastgpt/mongo:5.0.18 # 阿里云
container_name: mongo
restart: always
ports: # 生产环境建议不要暴露
- 27017:27017
environment:
# 这里的配置只有首次运行生效。修改后,重启镜像是不会生效的。需要把持久化数据删除再重启,才有效果
- MONGO_INITDB_ROOT_USERNAME=username
- MONGO_INITDB_ROOT_PASSWORD=password
volumes:
- ./mongo/data:/data/db
- ./mongo/logs:/var/log/mongodb
fastgpt:
# image: ghcr.io/c121914yu/fastgpt:latest # github
# image: c121914yu/fast-gpt:latest # docker hub
image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:latest # 阿里云
network_mode: host
restart: always
container_name: fastgpt
environment: # 可选的变量,不需要的话需要去掉
- DEFAULT_ROOT_PSW=1234
- DB_MAX_LINK=5 # database max link
# token加密凭证(随便填,作为登录凭证)
- TOKEN_KEY=any
# root key, 最高权限,可以内部接口互相调用
- ROOT_KEY=root_key
# mongo 配置,不需要改
- MONGODB_URI=mongodb://username:password@0.0.0.0:27017/?authSource=admin
- MONGODB_NAME=fastgpt
# pg 配置
- PG_HOST=0.0.0.0
- PG_PORT=5432
- PG_USER=username
- PG_PASSWORD=password
- PG_DB_NAME=postgres
# 用了中转的话,需要修改这个变量
- OPENAI_BASE_URL=https://api.openai.com/v1
# 用了 ONEAPI 则填写该地址
# - ONEAPI_URL=https://xxxx.cloud.sealos.io/v1
# OpenAI 的 key 或者 ONEAPI 的key,填了 ONEAPI_URL 则填写 ONEAPI 的 key
- CHAT_API_KEY=sk-xxxx
```
## 四、运行 docker-compose
```bash
# 在 docker-compose.yml 同级目录下执行
docker-compose up -d
```

## 五、访问

如果需要域名访问,自行安装 Nginx。目前可以通过: `ip:3000` 直接访问(注意防火墙)。登录用户名为 root,密码为刚刚环境变量里设置的 `DEFAULT_ROOT_PSW`

## 一些问题
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Mac 上部署可能遇到的问题
# Mac 上部署可能遇到的问题(旧版)

### 前置条件

Expand Down
7 changes: 7 additions & 0 deletions docSite/docs/develop/deploy/sealos.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
sidebar_position: 1
---

# Sealos 一键部署

222
Loading

0 comments on commit 5116bf7

Please sign in to comment.