diff --git a/.github/imgs/KBProcess.jpg b/.github/imgs/KBProcess.jpg deleted file mode 100644 index 2051adca4..000000000 Binary files a/.github/imgs/KBProcess.jpg and /dev/null differ diff --git a/.github/imgs/demo.png b/.github/imgs/demo.png deleted file mode 100644 index 733b3bbbb..000000000 Binary files a/.github/imgs/demo.png and /dev/null differ diff --git a/.github/imgs/intro1.png b/.github/imgs/intro1.png new file mode 100644 index 000000000..a6ee49d3e Binary files /dev/null and b/.github/imgs/intro1.png differ diff --git a/.github/imgs/intro2.png b/.github/imgs/intro2.png new file mode 100644 index 000000000..a7ab78c47 Binary files /dev/null and b/.github/imgs/intro2.png differ diff --git a/.github/imgs/intro3.png b/.github/imgs/intro3.png new file mode 100644 index 000000000..0cdc26977 Binary files /dev/null and b/.github/imgs/intro3.png differ diff --git a/.github/imgs/intro4.png b/.github/imgs/intro4.png new file mode 100644 index 000000000..07fdc4a4b Binary files /dev/null and b/.github/imgs/intro4.png differ diff --git a/README.md b/README.md index 6d26695de..680c827c0 100644 --- a/README.md +++ b/README.md @@ -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) 单机版。 diff --git a/client/.env.template b/client/.env.template index 76ba7d89a..732a3bc9e 100644 --- a/client/.env.template +++ b/client/.env.template @@ -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, 最高权限 @@ -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 diff --git a/client/data/config.json b/client/data/config.json index 7eaf85205..40e4b14f9 100644 --- a/client/data/config.json +++ b/client/data/config.json @@ -5,7 +5,6 @@ "show_appStore": false, "show_userDetail": false, "show_git": true, - "beianText": "", "systemTitle": "FastAI", "authorText": "Made by FastAI Team.", "gitLoginKey": "" diff --git a/client/src/pages/components/Hero.tsx b/client/src/pages/components/Hero.tsx index 6da627b59..f0d1c1d74 100644 --- a/client/src/pages/components/Hero.tsx +++ b/client/src/pages/components/Hero.tsx @@ -14,7 +14,7 @@ const Hero = () => { const { isPc, gitStar } = useGlobalStore(); return ( - + {t('home.slogan')} @@ -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="" /> { transition={'0.4s ease'} h={isOpenMenu ? '100vh' : 'auto'} > - + 1. 服务器开通 80 端口。用代理的话,对应的代理端口也需要打开。 -> 2. QQ 邮箱 Code:进入 QQ 邮箱 -> 账号 -> 申请 SMTP 账号 -> 3. 有域名的准备好 SSL 证书 - -### 2. 安装 docker 和 docker-compose - -这个不同系统略有区别,百度安装下。验证安装成功后进行下一步。下面给出一个例子: - -```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运行不了,可以把 deploy/fastgpt/docker-compose 文件复制到服务器,然后在 docker-compose 文件夹里执行 sh init.sh。会把docker-compose文件复制到对应目录。 -``` - -### 2. 创建 3 个初始化文件 - -fastgpt 文件夹。分别为:fastgpt/docker-compose.yaml, fastgpt/pg/init.sql, fastgpt/nginx/nginx.conf - -手动创建或者直接把 fastgpt 文件夹复制过去。 - -### 3. 运行 docker-compose - -下面是一个辅助脚本,也可以直接 docker-compose up -d - -**run.sh 运行文件** - -```bash -#!/bin/bash -docker-compose pull -docker-compose up -d - -echo "Docker Compose 重新拉取镜像完成!" - -# 删除本地旧镜像 -images=$(docker images --format "{{.ID}} {{.Repository}}" | grep fastgpt) - -# 将镜像 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 -``` - -## FastGpt Admin - -参考 admin 里的 README.md - -## 其他优化点 - -# Git Action 自动打包镜像 - -.github 里拥有一个 git 提交到 main 分支时自动打包 amd64 和 arm64 镜像的 actions。你仅需要提前在 git 配置好 session。 - -1. 创建账号 session: 头像 -> settings -> 最底部 Developer settings -> Personal access tokens -> tokens(classic) -> 创建新 session,把一些看起来需要的权限勾上。 -2. 添加 session 到仓库: 仓库 -> settings -> Secrets and variables -> Actions -> 创建 secret -3. 填写 secret: Name-GH_PAT, Secret-第一步的 tokens - -## 其他问题 - -### Mac 可能的问题 - -> 因为教程有部分镜像不兼容 arm64,所以写个文档指导新手如何快速在 mac 上面搭建 fast-gpt[在 mac 上面部署 fastgpt 可能存在的问题](./mac.md) diff --git a/docSite/docs/deploy/proxy/imgs/sealos1.png b/docSite/docs/deploy/proxy/imgs/sealos1.png deleted file mode 100644 index 6498bc35f..000000000 Binary files a/docSite/docs/deploy/proxy/imgs/sealos1.png and /dev/null differ diff --git a/docSite/docs/develop/deploy/docker.md b/docSite/docs/develop/deploy/docker.md new file mode 100644 index 000000000..f2183893d --- /dev/null +++ b/docSite/docs/develop/deploy/docker.md @@ -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` + +## 一些问题 diff --git a/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/deploy/mac.md b/docSite/docs/develop/deploy/mac.md similarity index 98% rename from docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/deploy/mac.md rename to docSite/docs/develop/deploy/mac.md index 8a07bab7e..98cc0728f 100644 --- a/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/deploy/mac.md +++ b/docSite/docs/develop/deploy/mac.md @@ -1,4 +1,4 @@ -# Mac 上部署可能遇到的问题 +# Mac 上部署可能遇到的问题(旧版) ### 前置条件 diff --git a/docSite/docs/develop/deploy/sealos.md b/docSite/docs/develop/deploy/sealos.md new file mode 100644 index 000000000..09291f608 --- /dev/null +++ b/docSite/docs/develop/deploy/sealos.md @@ -0,0 +1,7 @@ +--- +sidebar_position: 1 +--- + +# Sealos 一键部署 + +222 diff --git a/docSite/docs/develop/dev.md b/docSite/docs/develop/dev.md new file mode 100644 index 000000000..8663b2e30 --- /dev/null +++ b/docSite/docs/develop/dev.md @@ -0,0 +1,37 @@ +# 本地开发 + +第一次开发,需要先部署数据库,建议本地开发可以随便找一台 2c2g 的轻量小数据库实践。数据库部署教程:[Docker 快速部署](../deploy/docker.md) + +client 目录下为 FastGPT 核心代码。NextJS 框架前后端在一起的,api 服务位于 src/pages/api 内。 + +## 初始配置 + +**1. 环境变量** + +复制.env.template 文件,生成一个.env.local 环境变量文件夹,修改.env.local 里内容才是有效的变量。变量说明见 .env.template + +**2. config 配置文件** + +复制 data/config.json 文件,生成一个 data/config.local.json 配置文件。 + +这个文件大部分时候不需要修改。只需要关注 SystemParams 里的参数: + +``` +"vectorMaxProcess": 向量生成最大进程,根据数据库和 key 的并发数来决定,通常单个 120 号,2c4g 服务器设置10~15。 +"qaMaxProcess": QA 生成最大进程 +"pgIvfflatProbe": PG vector 搜索探针,没有添加 vector 索引时可忽略。 +``` + +## 运行 + +``` +cd client +pnpm i +pnpm dev +``` + +## 镜像打包 + +```bash +docker build -t c121914yu/fastgpt . +``` diff --git a/docSite/docs/deploy/oneapi/sealosImg/step1.png b/docSite/docs/develop/imgs/step1.png similarity index 100% rename from docSite/docs/deploy/oneapi/sealosImg/step1.png rename to docSite/docs/develop/imgs/step1.png diff --git a/docSite/docs/deploy/oneapi/sealosImg/step2.png b/docSite/docs/develop/imgs/step2.png similarity index 100% rename from docSite/docs/deploy/oneapi/sealosImg/step2.png rename to docSite/docs/develop/imgs/step2.png diff --git a/docSite/docs/deploy/oneapi/sealosImg/step3.png b/docSite/docs/develop/imgs/step3.png similarity index 100% rename from docSite/docs/deploy/oneapi/sealosImg/step3.png rename to docSite/docs/develop/imgs/step3.png diff --git a/docSite/docs/deploy/oneapi/sealosImg/step4.png b/docSite/docs/develop/imgs/step4.png similarity index 100% rename from docSite/docs/deploy/oneapi/sealosImg/step4.png rename to docSite/docs/develop/imgs/step4.png diff --git a/docSite/docs/deploy/oneapi/sealosImg/step5.png b/docSite/docs/develop/imgs/step5.png similarity index 100% rename from docSite/docs/deploy/oneapi/sealosImg/step5.png rename to docSite/docs/develop/imgs/step5.png diff --git a/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/deploy/oneapi/index.md b/docSite/docs/develop/oneapi.md similarity index 100% rename from docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/deploy/oneapi/index.md rename to docSite/docs/develop/oneapi.md diff --git a/docSite/docs/deploy/proxy/clash.md b/docSite/docs/develop/proxy/clash.md similarity index 100% rename from docSite/docs/deploy/proxy/clash.md rename to docSite/docs/develop/proxy/clash.md diff --git a/docSite/docs/deploy/proxy/cloudflare.md b/docSite/docs/develop/proxy/cloudflare.md similarity index 100% rename from docSite/docs/deploy/proxy/cloudflare.md rename to docSite/docs/develop/proxy/cloudflare.md diff --git a/docSite/docs/develop/proxy/imgs/sealos1.png b/docSite/docs/develop/proxy/imgs/sealos1.png new file mode 100644 index 000000000..2b1657529 Binary files /dev/null and b/docSite/docs/develop/proxy/imgs/sealos1.png differ diff --git a/docSite/docs/deploy/proxy/imgs/sealos2.png b/docSite/docs/develop/proxy/imgs/sealos2.png similarity index 100% rename from docSite/docs/deploy/proxy/imgs/sealos2.png rename to docSite/docs/develop/proxy/imgs/sealos2.png diff --git a/docSite/docs/deploy/proxy/imgs/sealos3.png b/docSite/docs/develop/proxy/imgs/sealos3.png similarity index 100% rename from docSite/docs/deploy/proxy/imgs/sealos3.png rename to docSite/docs/develop/proxy/imgs/sealos3.png diff --git a/docSite/docs/deploy/proxy/imgs/sealos4.png b/docSite/docs/develop/proxy/imgs/sealos4.png similarity index 100% rename from docSite/docs/deploy/proxy/imgs/sealos4.png rename to docSite/docs/develop/proxy/imgs/sealos4.png diff --git a/docSite/docs/deploy/proxy/imgs/sealos5.png b/docSite/docs/develop/proxy/imgs/sealos5.png similarity index 100% rename from docSite/docs/deploy/proxy/imgs/sealos5.png rename to docSite/docs/develop/proxy/imgs/sealos5.png diff --git a/docSite/docs/deploy/proxy/nginx.md b/docSite/docs/develop/proxy/nginx.md similarity index 79% rename from docSite/docs/deploy/proxy/nginx.md rename to docSite/docs/develop/proxy/nginx.md index 1f49420b3..924271a92 100644 --- a/docSite/docs/deploy/proxy/nginx.md +++ b/docSite/docs/develop/proxy/nginx.md @@ -36,18 +36,10 @@ http { open_file_cache_errors off; server { - listen 443 ssl; - server_name your_host; - ssl_certificate /ssl/your_host.pem; - ssl_certificate_key /ssl/your_host.key; - ssl_session_timeout 5m; + listen 3999; + server_name 你的 ip 地址; location ~ /openai/(.*) { - # auth check - if ($auth != "xxxxxx") { - return 403; - } - proxy_pass https://api.openai.com/$1$is_args$args; proxy_set_header Host api.openai.com; proxy_set_header X-Real-IP $remote_addr; @@ -64,10 +56,5 @@ http { proxy_busy_buffers_size 256k; } } - server { - listen 80; - server_name ai.fastgpt.run; - rewrite ^(.*) https://$server_name$1 permanent; - } } ``` diff --git a/docSite/docs/deploy/proxy/sealos.md b/docSite/docs/develop/proxy/sealos.md similarity index 75% rename from docSite/docs/deploy/proxy/sealos.md rename to docSite/docs/develop/proxy/sealos.md index d1197c1dd..a0e1e847b 100644 --- a/docSite/docs/deploy/proxy/sealos.md +++ b/docSite/docs/develop/proxy/sealos.md @@ -1,23 +1,29 @@ -# sealos 部署 openai 中转 +--- +sidebar_position: 1 +--- + +# sealos 部署 nginx 实现中转 ## 登录 sealos cloud [sealos cloud](https://cloud.sealos.io/) -## 创建应用 +## 一、点击创建应用 打开 App Launchpad -> 新建应用 ![step1](./imgs//sealos1.png) ![step2](./imgs//sealos2.png) -### 开启外网访问 +### 二、填写基本配置 + +务必开启外网访问,复制下外网访问提供的地址。 ![step3](./imgs//sealos3.png) -### 添加 configmap 文件 +### 三、添加 configmap 文件 -1. 复制下面这段代码,注意 `server_name` 后面的内容替换成上图的地址。 +1. 复制下面这段配置文件,注意 `server_name` 后面的内容替换成第二步的外网访问地址。 ``` user nginx; @@ -43,17 +49,11 @@ http { proxy_buffer_size 128k; proxy_buffers 4 256k; - server { listen 80; server_name tgohwtdlrmer.cloud.sealos.io; # 这个地方替换成 sealos 提供的内容 location ~ /openai/(.*) { - # auth check - if ($http_auth != "auth") { # 安全凭证 - return 403; - } - proxy_pass https://api.openai.com/$1$is_args$args; proxy_set_header Host api.openai.com; proxy_set_header X-Real-IP $remote_addr; @@ -81,20 +81,22 @@ http { ![step4](./imgs//sealos4.png) -### 部署应用 +### 四、部署应用 填写完毕后,点击右上角的 `部署应用`,即可完成。 -## 修改 FastGpt 环境变量 +## 五、修改 FastGpt 环境变量 1. 进入刚刚部署应用的详情,复制外网地址 - ![step5](./imgs//sealos5.png) + +注意:这是个 API 地址,点击打开是无效的。如需验证,可以访问: 【\*\*\*.close.sealos.io/openai/api】,如果提示 "Invalid URL (GET /api)" 则代表成功。 + +![step5](./imgs//sealos5.png) 2. 修改环境变量(是 FastGpt 的环境变量,不是 sealos 的): ``` OPENAI_BASE_URL=https://tgohwtdlrmer.cloud.sealos.io/openai/v1 -OPENAI_BASE_URL_AUTH=auth ``` **Done!** diff --git a/docSite/docs/flow-modules/chatModule.md b/docSite/docs/flow-modules/chatModule.md deleted file mode 100644 index aa0668a6e..000000000 --- a/docSite/docs/flow-modules/chatModule.md +++ /dev/null @@ -1 +0,0 @@ -# 模块编排介绍 diff --git a/docSite/docs/imgs/ability1.png b/docSite/docs/imgs/ability1.png new file mode 100644 index 000000000..df6b04c87 Binary files /dev/null and b/docSite/docs/imgs/ability1.png differ diff --git a/docSite/docs/imgs/ability2.png b/docSite/docs/imgs/ability2.png new file mode 100644 index 000000000..7d12bf11e Binary files /dev/null and b/docSite/docs/imgs/ability2.png differ diff --git a/docSite/docs/imgs/ability3.png b/docSite/docs/imgs/ability3.png new file mode 100644 index 000000000..3d3fe356d Binary files /dev/null and b/docSite/docs/imgs/ability3.png differ diff --git a/docSite/docs/imgs/ability4.png b/docSite/docs/imgs/ability4.png new file mode 100644 index 000000000..02bdc5e7a Binary files /dev/null and b/docSite/docs/imgs/ability4.png differ diff --git a/docSite/docs/intro.md b/docSite/docs/intro.md index 6e276663f..68b97ed5b 100644 --- a/docSite/docs/intro.md +++ b/docSite/docs/intro.md @@ -2,7 +2,7 @@ sidebar_position: 1 --- -# FastGpt 是什么? +# 快速了解 FastGpt FastGPT 是一个基于向量 + LLM 模型的 AI 问答系统。可以帮助你快捷、高效的将内部文档进行训练。提供了丰富的调试工具便于调整数据,并可以通过 Iframe 或 API 的形式接入到你现有的应用中。 @@ -11,33 +11,38 @@ FastGPT 是一个基于向量 + LLM 模型的 AI 问答系统。可以帮助你 | ![Demo](./imgs/intro1.png) | ![Demo](./imgs/intro2.png) | | ![Demo](./imgs/intro3.png) | ![Demo](./imgs/intro4.png) | -#### 知识库原理图 +## FastGPT 能力 + +### 1. AI 客服 + +通过导入文档或已有问答对进行训练,让 AI 模型能根据你的文档进行回答问题。 +![Ability1](./imgs/ability1.png) + +### 2. 自动数据预处理 + +提供手动输入、直接分段、LLM 自动处理和 CSV 等多种数据导入途径,兼顾精确和快速训练场景。 +![Ability1](./imgs/ability2.png) + +### 3. 工作流编排 + +基于 Flow 模块的工作流编排,可以帮助你设计更加复杂的问答流程。例如查询数据库、查询库存、预约实验室等。 + +![Ability1](./imgs/ability3.png) + +### 4. 无缝衔接的 OpenAPI + +FastGPT 对外 API 接口对齐 GPT 官方接口,你可以直接在现有的 GPT 应用中通过修改 BaseURL 和 Authorization 即可接入 FastGPT。 +![Ability1](./imgs/ability4.png) + +## FastGPT 特点 + +1. 项目开源。FastGPT 遵循 Apache License 2.0 开源协议,你可以在 GitHub Clone FastGPT 进行二次开发和发布。FastGPT 社区版将保留核心的功能,商业版仅在社区版基础上使用 API 的形式进行扩展,不影响学习使用。 +2. 独特的 QA 结构。针对客服问答场景设计的 QA 结构,提高在大量数据场景中的准确性。 +3. 可视化工作流。通过 Flow 模块展示了从问题输入到模型输出的完整流程,便于调试和设计复杂流程。 +4. 无限扩展。基于 HTTP 进行扩展,无需修改 FastGPT 源码,也可快速接入现有的程序中。 +5. 便捷调试。提供搜索测试、引用修改、完整对话预览等多种调试途径。 +6. 支持多种模型:支持 GPT、Claude、文心一言等多类 LLM 模型,未来也将支持自定义的向量模型。 + +## 知识库核心流程图 ![KBProcess](./imgs/KBProcess.jpg?raw=true 'KBProcess') - -## 🏘️ 交流群 - -添加 wx 进入: -![Demo](https://otnvvf-imgs.oss.laf.run/wx300.jpg) - -## Powered by - -- [TuShan: 5 分钟搭建后台管理系统](https://github.com/msgbyte/tushan) -- [Laf: 3 分钟快速接入三方应用](https://github.com/labring/laf) -- [Sealos: 快速部署集群应用](https://github.com/labring/sealos) -- [One API: 令牌管理 & 二次分发,支持 Azure](https://github.com/songquanpeng/one-api) - -## 👀 其他 - -- [FastGpt 常见问题](https://kjqvjse66l.feishu.cn/docx/HtrgdT0pkonP4kxGx8qcu6XDnGh) -- [docker 部署教程视频](https://www.bilibili.com/video/BV1jo4y147fT/) -- [公众号接入视频教程](https://www.bilibili.com/video/BV1xh4y1t7fy/) -- [FastGpt 知识库演示](https://www.bilibili.com/video/BV1Wo4y1p7i1/) - -## 第三方生态 - -- [luolinAI: 企微机器人,开箱即用](https://github.com/luolin-ai/FastGPT-Enterprise-WeChatbot) - -## 🌟 Star History - -[![Star History Chart](https://api.star-history.com/svg?repos=labring/FastGPT&type=Date)](https://star-history.com/#labring/FastGPT&Date) diff --git a/docSite/docs/quick-start/dev.md b/docSite/docs/quick-start/dev.md deleted file mode 100644 index 804f3f5eb..000000000 --- a/docSite/docs/quick-start/dev.md +++ /dev/null @@ -1,23 +0,0 @@ -# 本地开发 - -第一次开发,请先[部署教程](../deploy/docker.md),需要部署数据库. - -client: FastGpt 网页项目 -admin: 管理端 - -## 环境变量配置 (可能更新不及时,以 docker-compose 里的变量为准) - -复制.env.template 文件,生成一个.env.local 环境变量文件夹,修改.env.local 里内容。 - -## 运行 - -``` -pnpm dev -``` - -## 镜像打包 - -```bash -# 代理可选,不需要的去掉 -docker build -t registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:latest . --network host --build-arg HTTP_PROXY=http://127.0.0.1:7890 --build-arg HTTPS_PROXY=http://127.0.0.1:7890 -``` diff --git a/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current.json b/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current.json index 420f0b7d5..709d27514 100644 --- a/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current.json +++ b/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current.json @@ -2,8 +2,11 @@ "sidebar.docSidebar.intro": { "message": "介绍" }, - "sidebar.docSidebar.category.Quick Start": { - "message": "快速开始" + "sidebar.docSidebar.category.Develop": { + "message": "开发" + }, + "sidebar.docSidebar.category.Proxy": { + "message": "Proxy 方案" }, "sidebar.docSidebar.category.Deploy": { "message": "部署" diff --git a/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/deploy/docker.md b/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/deploy/docker.md deleted file mode 100644 index c7b7c22c6..000000000 --- a/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/deploy/docker.md +++ /dev/null @@ -1,92 +0,0 @@ -# docker-compose 快速部署 - -## 代理环境(国外服务器可忽略) - -选择一个即可。这只是代理!!!不是项目。 - -1. [sealos nginx 方案](./proxy/sealos.md) - 推荐。约等于不用钱,不需要额外准备任何东西。 -2. [clash 方案](./proxy/clash.md) - 仅需一台服务器(需要有 clash) -3. [nginx 方案](./proxy/nginx.md) - 需要一台国外服务器 -4. [cloudflare 方案](./proxy/cloudflare.md) - 需要有域名(每日免费 10w 次代理请求) -5. [腾讯云函数代理方案](https://github.com/easychen/openai-api-proxy/blob/master/FUNC.md) - 仅需一台服务器 - -## openai key 池管理方案 - -推荐使用 [one-api](https://github.com/songquanpeng/one-api) 项目来管理 key 池,兼容 openai 和微软等多渠道。部署可以看该项目的 README.md,也可以看 [在 Sealos 1 分钟部署 one-api](./oneapi/index.md) - -### 1. 准备一些内容 - -> 1. 服务器开通 80 端口。用代理的话,对应的代理端口也需要打开。 -> 2. QQ 邮箱 Code:进入 QQ 邮箱 -> 账号 -> 申请 SMTP 账号 -> 3. 有域名的准备好 SSL 证书 - -### 2. 安装 docker 和 docker-compose - -这个不同系统略有区别,百度安装下。验证安装成功后进行下一步。下面给出一个例子: - -```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运行不了,可以把 deploy/fastgpt/docker-compose 文件复制到服务器,然后在 docker-compose 文件夹里执行 sh init.sh。会把docker-compose文件复制到对应目录。 -``` - -### 2. 创建 3 个初始化文件 - -将 [fastgpt](https://github.com/labring/FastGPT/blob/main/files/deploy/fastgpt) 文件夹中三个文件复制到服务器:分别为:fastgpt/docker-compose.yaml, fastgpt/pg/init.sql, fastgpt/nginx/nginx.conf - -可以手动创建或者直接把整个 fastgpt 文件夹复制过去。 - -### 3. 运行 docker-compose - -下面是一个辅助脚本,也可以直接 docker-compose up -d - -**run.sh 运行文件** - -```bash -#!/bin/bash -docker-compose pull -docker-compose up -d - -echo "Docker Compose 重新拉取镜像完成!" - -# 删除本地旧镜像 -images=$(docker images --format "{{.ID}} {{.Repository}}" | grep fastgpt) - -# 将镜像 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 -``` - -## FastGpt Admin - -参考 admin 里的 README.md - -## 其他优化点 - -# Git Action 自动打包镜像 - -.github 里拥有一个 git 提交到 main 分支时自动打包 amd64 和 arm64 镜像的 actions。你仅需要提前在 git 配置好 session。 - -1. 创建账号 session: 头像 -> settings -> 最底部 Developer settings -> Personal access tokens -> tokens(classic) -> 创建新 session,把一些看起来需要的权限勾上。 -2. 添加 session 到仓库: 仓库 -> settings -> Secrets and variables -> Actions -> 创建 secret -3. 填写 secret: Name-GH_PAT, Secret-第一步的 tokens - -## 其他问题 - -### Mac 可能的问题 - -> 因为教程有部分镜像不兼容 arm64,所以写个文档指导新手如何快速在 mac 上面搭建 fast-gpt[在 mac 上面部署 fastgpt 可能存在的问题](./mac.md) diff --git a/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/deploy/proxy/imgs/sealos1.png b/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/deploy/proxy/imgs/sealos1.png deleted file mode 100644 index 6498bc35f..000000000 Binary files a/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/deploy/proxy/imgs/sealos1.png and /dev/null differ diff --git a/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/develop/deploy/docker.md b/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/develop/deploy/docker.md new file mode 100644 index 000000000..0bf05baa0 --- /dev/null +++ b/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/develop/deploy/docker.md @@ -0,0 +1,175 @@ +# 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: + # root 密码,用户名为: root + - DEFAULT_ROOT_PSW=1234 + # 中转地址,如果是用官方号,不需要管 + - OPENAI_BASE_URL=https://api.openai.com/v1 + - CHAT_API_KEY=sk-xxxx + - DB_MAX_LINK=5 # database max link + - TOKEN_KEY=any + - 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 + +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: + # root 密码,用户名为: root + - DEFAULT_ROOT_PSW=1234 + # 中转地址,如果是用官方号,不需要管 + - OPENAI_BASE_URL=https://api.openai.com/v1 + - CHAT_API_KEY=sk-xxxx + - 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 +``` + +## 四、运行 docker-compose + +```bash +# 在 docker-compose.yml 同级目录下执行 +docker-compose up -d +``` + +## 五、访问 + +如果需要域名访问,自行安装 Nginx。目前可以通过: `ip:3000` 直接访问(注意防火墙)。登录用户名为 root,密码为刚刚环境变量里设置的 `DEFAULT_ROOT_PSW` + +## 一些问题 diff --git a/docSite/docs/deploy/mac.md b/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/develop/deploy/mac.md similarity index 97% rename from docSite/docs/deploy/mac.md rename to docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/develop/deploy/mac.md index 05da00e1a..98cc0728f 100644 --- a/docSite/docs/deploy/mac.md +++ b/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/develop/deploy/mac.md @@ -1,4 +1,4 @@ -## Mac 上部署可能遇到的问题 +# Mac 上部署可能遇到的问题(旧版) ### 前置条件 @@ -46,7 +46,7 @@ aliSignName=xxx aliTemplateCode=SMS_xxx # token TOKEN_KEY=sswada -# 使用 oneapi +# 使用 oneapi ONEAPI_URL=[https://api.xyz.com/v1](https://xxxxx.cloud.sealos.io/v1) ONEAPI_KEY=sk-xxxxxx # openai diff --git a/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/develop/deploy/sealos.md b/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/develop/deploy/sealos.md new file mode 100644 index 000000000..8bc167353 --- /dev/null +++ b/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/develop/deploy/sealos.md @@ -0,0 +1,13 @@ +--- +sidebar_position: 1 +--- + +# Sealos 一键部署 + +无需服务器、无需魔法、无需域名,点击即可部署 👇 + +[![](https://raw.githubusercontent.com/labring-actions/templates/main/Deploy-on-Sealos.svg)](https://cloud.sealos.io/?openapp=system-fastdeploy%3FtemplateName%3Dfastgpt) + +由于需要部署数据库,部署完后需要等待 2~4 分钟才能正常访问。 + +## 运行 diff --git a/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/develop/dev.md b/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/develop/dev.md new file mode 100644 index 000000000..8663b2e30 --- /dev/null +++ b/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/develop/dev.md @@ -0,0 +1,37 @@ +# 本地开发 + +第一次开发,需要先部署数据库,建议本地开发可以随便找一台 2c2g 的轻量小数据库实践。数据库部署教程:[Docker 快速部署](../deploy/docker.md) + +client 目录下为 FastGPT 核心代码。NextJS 框架前后端在一起的,api 服务位于 src/pages/api 内。 + +## 初始配置 + +**1. 环境变量** + +复制.env.template 文件,生成一个.env.local 环境变量文件夹,修改.env.local 里内容才是有效的变量。变量说明见 .env.template + +**2. config 配置文件** + +复制 data/config.json 文件,生成一个 data/config.local.json 配置文件。 + +这个文件大部分时候不需要修改。只需要关注 SystemParams 里的参数: + +``` +"vectorMaxProcess": 向量生成最大进程,根据数据库和 key 的并发数来决定,通常单个 120 号,2c4g 服务器设置10~15。 +"qaMaxProcess": QA 生成最大进程 +"pgIvfflatProbe": PG vector 搜索探针,没有添加 vector 索引时可忽略。 +``` + +## 运行 + +``` +cd client +pnpm i +pnpm dev +``` + +## 镜像打包 + +```bash +docker build -t c121914yu/fastgpt . +``` diff --git a/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/deploy/oneapi/imgs/step1.png b/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/develop/imgs/step1.png similarity index 100% rename from docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/deploy/oneapi/imgs/step1.png rename to docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/develop/imgs/step1.png diff --git a/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/deploy/oneapi/imgs/step2.png b/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/develop/imgs/step2.png similarity index 100% rename from docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/deploy/oneapi/imgs/step2.png rename to docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/develop/imgs/step2.png diff --git a/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/deploy/oneapi/imgs/step3.png b/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/develop/imgs/step3.png similarity index 100% rename from docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/deploy/oneapi/imgs/step3.png rename to docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/develop/imgs/step3.png diff --git a/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/deploy/oneapi/imgs/step4.png b/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/develop/imgs/step4.png similarity index 100% rename from docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/deploy/oneapi/imgs/step4.png rename to docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/develop/imgs/step4.png diff --git a/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/deploy/oneapi/imgs/step5.png b/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/develop/imgs/step5.png similarity index 100% rename from docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/deploy/oneapi/imgs/step5.png rename to docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/develop/imgs/step5.png diff --git a/docSite/docs/deploy/oneapi/index.md b/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/develop/oneapi.md similarity index 81% rename from docSite/docs/deploy/oneapi/index.md rename to docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/develop/oneapi.md index f263cd127..45da05acb 100644 --- a/docSite/docs/deploy/oneapi/index.md +++ b/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/develop/oneapi.md @@ -6,7 +6,7 @@ https://cloud.sealos.io/ ## 2. 打开 AppLaunchpad(应用管理) 工具 -![step1](./sealosImg/step1.png) +![step1](./imgs/step1.png) ## 3. 点击创建新应用 @@ -14,17 +14,17 @@ https://cloud.sealos.io/ 镜像:ghcr.io/songquanpeng/one-api:latest -![step2](./sealosImg/step2.png) +![step2](./imgs/step2.png) 打开外网访问开关后,Sealos 会自动分配一个可访问的地址,不需要自己配置。 -![step3](./sealosImg/step3.png) +![step3](./imgs/step3.png) 填写完参数后,点击右上角部署即可。 ## 5. 访问 点击 Sealos 提供的外网访问地址,即可访问 one-api 项目。 -![step3](./sealosImg/step4.png) -![step3](./sealosImg/step5.png) +![step3](./imgs/step4.png) +![step3](./imgs/step5.png) ## 6. 替换 FastGpt 的环境变量 diff --git a/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/deploy/proxy/clash.md b/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/develop/proxy/clash.md similarity index 100% rename from docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/deploy/proxy/clash.md rename to docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/develop/proxy/clash.md diff --git a/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/deploy/proxy/cloudflare.md b/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/develop/proxy/cloudflare.md similarity index 100% rename from docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/deploy/proxy/cloudflare.md rename to docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/develop/proxy/cloudflare.md diff --git a/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/develop/proxy/imgs/sealos1.png b/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/develop/proxy/imgs/sealos1.png new file mode 100644 index 000000000..2b1657529 Binary files /dev/null and b/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/develop/proxy/imgs/sealos1.png differ diff --git a/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/deploy/proxy/imgs/sealos2.png b/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/develop/proxy/imgs/sealos2.png similarity index 100% rename from docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/deploy/proxy/imgs/sealos2.png rename to docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/develop/proxy/imgs/sealos2.png diff --git a/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/deploy/proxy/imgs/sealos3.png b/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/develop/proxy/imgs/sealos3.png similarity index 100% rename from docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/deploy/proxy/imgs/sealos3.png rename to docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/develop/proxy/imgs/sealos3.png diff --git a/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/deploy/proxy/imgs/sealos4.png b/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/develop/proxy/imgs/sealos4.png similarity index 100% rename from docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/deploy/proxy/imgs/sealos4.png rename to docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/develop/proxy/imgs/sealos4.png diff --git a/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/deploy/proxy/imgs/sealos5.png b/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/develop/proxy/imgs/sealos5.png similarity index 100% rename from docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/deploy/proxy/imgs/sealos5.png rename to docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/develop/proxy/imgs/sealos5.png diff --git a/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/deploy/proxy/nginx.md b/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/develop/proxy/nginx.md similarity index 79% rename from docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/deploy/proxy/nginx.md rename to docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/develop/proxy/nginx.md index 1f49420b3..924271a92 100644 --- a/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/deploy/proxy/nginx.md +++ b/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/develop/proxy/nginx.md @@ -36,18 +36,10 @@ http { open_file_cache_errors off; server { - listen 443 ssl; - server_name your_host; - ssl_certificate /ssl/your_host.pem; - ssl_certificate_key /ssl/your_host.key; - ssl_session_timeout 5m; + listen 3999; + server_name 你的 ip 地址; location ~ /openai/(.*) { - # auth check - if ($auth != "xxxxxx") { - return 403; - } - proxy_pass https://api.openai.com/$1$is_args$args; proxy_set_header Host api.openai.com; proxy_set_header X-Real-IP $remote_addr; @@ -64,10 +56,5 @@ http { proxy_busy_buffers_size 256k; } } - server { - listen 80; - server_name ai.fastgpt.run; - rewrite ^(.*) https://$server_name$1 permanent; - } } ``` diff --git a/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/deploy/proxy/sealos.md b/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/develop/proxy/sealos.md similarity index 75% rename from docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/deploy/proxy/sealos.md rename to docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/develop/proxy/sealos.md index d1197c1dd..a0e1e847b 100644 --- a/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/deploy/proxy/sealos.md +++ b/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/develop/proxy/sealos.md @@ -1,23 +1,29 @@ -# sealos 部署 openai 中转 +--- +sidebar_position: 1 +--- + +# sealos 部署 nginx 实现中转 ## 登录 sealos cloud [sealos cloud](https://cloud.sealos.io/) -## 创建应用 +## 一、点击创建应用 打开 App Launchpad -> 新建应用 ![step1](./imgs//sealos1.png) ![step2](./imgs//sealos2.png) -### 开启外网访问 +### 二、填写基本配置 + +务必开启外网访问,复制下外网访问提供的地址。 ![step3](./imgs//sealos3.png) -### 添加 configmap 文件 +### 三、添加 configmap 文件 -1. 复制下面这段代码,注意 `server_name` 后面的内容替换成上图的地址。 +1. 复制下面这段配置文件,注意 `server_name` 后面的内容替换成第二步的外网访问地址。 ``` user nginx; @@ -43,17 +49,11 @@ http { proxy_buffer_size 128k; proxy_buffers 4 256k; - server { listen 80; server_name tgohwtdlrmer.cloud.sealos.io; # 这个地方替换成 sealos 提供的内容 location ~ /openai/(.*) { - # auth check - if ($http_auth != "auth") { # 安全凭证 - return 403; - } - proxy_pass https://api.openai.com/$1$is_args$args; proxy_set_header Host api.openai.com; proxy_set_header X-Real-IP $remote_addr; @@ -81,20 +81,22 @@ http { ![step4](./imgs//sealos4.png) -### 部署应用 +### 四、部署应用 填写完毕后,点击右上角的 `部署应用`,即可完成。 -## 修改 FastGpt 环境变量 +## 五、修改 FastGpt 环境变量 1. 进入刚刚部署应用的详情,复制外网地址 - ![step5](./imgs//sealos5.png) + +注意:这是个 API 地址,点击打开是无效的。如需验证,可以访问: 【\*\*\*.close.sealos.io/openai/api】,如果提示 "Invalid URL (GET /api)" 则代表成功。 + +![step5](./imgs//sealos5.png) 2. 修改环境变量(是 FastGpt 的环境变量,不是 sealos 的): ``` OPENAI_BASE_URL=https://tgohwtdlrmer.cloud.sealos.io/openai/v1 -OPENAI_BASE_URL_AUTH=auth ``` **Done!** diff --git a/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/imgs/ability1.png b/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/imgs/ability1.png new file mode 100644 index 000000000..df6b04c87 Binary files /dev/null and b/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/imgs/ability1.png differ diff --git a/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/imgs/ability2.png b/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/imgs/ability2.png new file mode 100644 index 000000000..7d12bf11e Binary files /dev/null and b/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/imgs/ability2.png differ diff --git a/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/imgs/ability3.png b/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/imgs/ability3.png new file mode 100644 index 000000000..3d3fe356d Binary files /dev/null and b/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/imgs/ability3.png differ diff --git a/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/imgs/ability4.png b/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/imgs/ability4.png new file mode 100644 index 000000000..02bdc5e7a Binary files /dev/null and b/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/imgs/ability4.png differ diff --git a/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/intro.md b/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/intro.md index 6e276663f..68b97ed5b 100644 --- a/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/intro.md +++ b/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/intro.md @@ -2,7 +2,7 @@ sidebar_position: 1 --- -# FastGpt 是什么? +# 快速了解 FastGpt FastGPT 是一个基于向量 + LLM 模型的 AI 问答系统。可以帮助你快捷、高效的将内部文档进行训练。提供了丰富的调试工具便于调整数据,并可以通过 Iframe 或 API 的形式接入到你现有的应用中。 @@ -11,33 +11,38 @@ FastGPT 是一个基于向量 + LLM 模型的 AI 问答系统。可以帮助你 | ![Demo](./imgs/intro1.png) | ![Demo](./imgs/intro2.png) | | ![Demo](./imgs/intro3.png) | ![Demo](./imgs/intro4.png) | -#### 知识库原理图 +## FastGPT 能力 + +### 1. AI 客服 + +通过导入文档或已有问答对进行训练,让 AI 模型能根据你的文档进行回答问题。 +![Ability1](./imgs/ability1.png) + +### 2. 自动数据预处理 + +提供手动输入、直接分段、LLM 自动处理和 CSV 等多种数据导入途径,兼顾精确和快速训练场景。 +![Ability1](./imgs/ability2.png) + +### 3. 工作流编排 + +基于 Flow 模块的工作流编排,可以帮助你设计更加复杂的问答流程。例如查询数据库、查询库存、预约实验室等。 + +![Ability1](./imgs/ability3.png) + +### 4. 无缝衔接的 OpenAPI + +FastGPT 对外 API 接口对齐 GPT 官方接口,你可以直接在现有的 GPT 应用中通过修改 BaseURL 和 Authorization 即可接入 FastGPT。 +![Ability1](./imgs/ability4.png) + +## FastGPT 特点 + +1. 项目开源。FastGPT 遵循 Apache License 2.0 开源协议,你可以在 GitHub Clone FastGPT 进行二次开发和发布。FastGPT 社区版将保留核心的功能,商业版仅在社区版基础上使用 API 的形式进行扩展,不影响学习使用。 +2. 独特的 QA 结构。针对客服问答场景设计的 QA 结构,提高在大量数据场景中的准确性。 +3. 可视化工作流。通过 Flow 模块展示了从问题输入到模型输出的完整流程,便于调试和设计复杂流程。 +4. 无限扩展。基于 HTTP 进行扩展,无需修改 FastGPT 源码,也可快速接入现有的程序中。 +5. 便捷调试。提供搜索测试、引用修改、完整对话预览等多种调试途径。 +6. 支持多种模型:支持 GPT、Claude、文心一言等多类 LLM 模型,未来也将支持自定义的向量模型。 + +## 知识库核心流程图 ![KBProcess](./imgs/KBProcess.jpg?raw=true 'KBProcess') - -## 🏘️ 交流群 - -添加 wx 进入: -![Demo](https://otnvvf-imgs.oss.laf.run/wx300.jpg) - -## Powered by - -- [TuShan: 5 分钟搭建后台管理系统](https://github.com/msgbyte/tushan) -- [Laf: 3 分钟快速接入三方应用](https://github.com/labring/laf) -- [Sealos: 快速部署集群应用](https://github.com/labring/sealos) -- [One API: 令牌管理 & 二次分发,支持 Azure](https://github.com/songquanpeng/one-api) - -## 👀 其他 - -- [FastGpt 常见问题](https://kjqvjse66l.feishu.cn/docx/HtrgdT0pkonP4kxGx8qcu6XDnGh) -- [docker 部署教程视频](https://www.bilibili.com/video/BV1jo4y147fT/) -- [公众号接入视频教程](https://www.bilibili.com/video/BV1xh4y1t7fy/) -- [FastGpt 知识库演示](https://www.bilibili.com/video/BV1Wo4y1p7i1/) - -## 第三方生态 - -- [luolinAI: 企微机器人,开箱即用](https://github.com/luolin-ai/FastGPT-Enterprise-WeChatbot) - -## 🌟 Star History - -[![Star History Chart](https://api.star-history.com/svg?repos=labring/FastGPT&type=Date)](https://star-history.com/#labring/FastGPT&Date) diff --git a/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/quick-start/dev.md b/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/quick-start/dev.md deleted file mode 100644 index 3fd361e0e..000000000 --- a/docSite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/quick-start/dev.md +++ /dev/null @@ -1,23 +0,0 @@ -# 本地开发 - -第一次开发,请先[部署教程](../deploy/docker.md),需要部署数据库. - -client: FastGpt 网页项目 -admin: 管理端 - -## 环境变量配置 (可能更新不及时,以 docker-compose 里的变量为准) - -复制.env.template 文件,生成一个.env.local 环境变量文件夹,修改.env.local 里内容。 - -## 运行 - -``` -pnpm dev -``` - -## 镜像打包 - -```bash -# 代理可选,不需要的去掉 -docker build -t registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:latest . --network host --build-arg HTTP_PROXY=http://127.0.0.1:7890 --build-arg HTTPS_PROXY=http://127.0.0.1:7890 -``` diff --git a/docSite/i18n/zh-Hans/docusaurus-theme-classic/navbar.json b/docSite/i18n/zh-Hans/docusaurus-theme-classic/navbar.json index 39efdbba7..9bbc3bf50 100644 --- a/docSite/i18n/zh-Hans/docusaurus-theme-classic/navbar.json +++ b/docSite/i18n/zh-Hans/docusaurus-theme-classic/navbar.json @@ -1,6 +1,6 @@ { "item.label.Docs": { - "message": "教程文档" + "message": "文档" }, "item.label.Start Now": { "message": "在线使用" diff --git a/docSite/sidebars.js b/docSite/sidebars.js index 8f752ff85..54a26eea9 100644 --- a/docSite/sidebars.js +++ b/docSite/sidebars.js @@ -6,12 +6,42 @@ const sidebars = { 'intro', { type: 'category', - label: 'Quick Start', + label: 'Develop', link: { type: 'generated-index' }, collapsed: false, - items: [{ type: 'autogenerated', dirName: 'quick-start' }] + items: [ + { + type: 'category', + label: 'Proxy', + link: { + type: 'generated-index' + }, + items: [ + { + type: 'autogenerated', + dirName: 'develop/proxy' + } + ] + }, + 'develop/dev', + { + type: 'category', + label: 'Deploy', + collapsed: false, + link: { + type: 'generated-index' + }, + items: [ + { + type: 'autogenerated', + dirName: 'develop/deploy' + } + ] + }, + 'develop/oneapi' + ] }, { type: 'category', diff --git a/files/deploy/fastgpt/pg/init.sql b/files/deploy/fastgpt/pg/init.sql deleted file mode 100644 index add8bffc4..000000000 --- a/files/deploy/fastgpt/pg/init.sql +++ /dev/null @@ -1,21 +0,0 @@ -set -e -psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL - -CREATE EXTENSION IF NOT EXISTS vector; --- init table -CREATE TABLE IF NOT EXISTS modeldata ( - id BIGSERIAL PRIMARY KEY, - vector VECTOR(1536) NOT NULL, - user_id VARCHAR(50) NOT NULL, - kb_id VARCHAR(50) NOT NULL, - source VARCHAR(100), - q TEXT NOT NULL, - a TEXT NOT NULL -); --- 索引设置,按需取 --- CREATE INDEX IF NOT EXISTS modeldata_userId_index ON modeldata USING HASH (user_id); --- CREATE INDEX IF NOT EXISTS modeldata_kbId_index ON modeldata USING HASH (kb_id); --- CREATE INDEX IF NOT EXISTS idx_model_data_md5_q_a_user_id_kb_id ON modeldata (md5(q), md5(a), user_id, kb_id); --- CREATE INDEX modeldata_id_desc_idx ON modeldata (id DESC); --- vector 索引,可以参考 [pg vector](https://github.com/pgvector/pgvector) 去配置,根据数据量去配置 -EOSQL