fix: auth error.perf: prompt,process img

This commit is contained in:
archer
2023-05-04 15:08:09 +08:00
parent c879905307
commit 2d74fa8e10
5 changed files with 58 additions and 34 deletions

View File

@@ -3,10 +3,13 @@
Fast GPT 允许你使用自己的 openai API KEY 来快速的调用 openai 接口,目前集成了 gpt35 和 embedding. 可构建自己的知识库。 Fast GPT 允许你使用自己的 openai API KEY 来快速的调用 openai 接口,目前集成了 gpt35 和 embedding. 可构建自己的知识库。
## 知识库原理 ## 知识库原理
![KBProcess](docs/imgs/KBProcess.jpg?raw=true "KBProcess")
![KBProcess](docs/imgs/KBProcess.jpg?raw=true 'KBProcess')
## 开发 ## 开发
**配置环境变量** **配置环境变量**
```bash ```bash
# proxy可选 # proxy可选
AXIOS_PROXY_HOST=127.0.0.1 AXIOS_PROXY_HOST=127.0.0.1
@@ -33,14 +36,16 @@ OPENAIKEY=sk-xxx
MONGODB_URI=mongodb://username:password@0.0.0.0:27017/test?authSource=admin MONGODB_URI=mongodb://username:password@0.0.0.0:27017/test?authSource=admin
# mongo数据库名称 # mongo数据库名称
MONGODB_NAME=xxx MONGODB_NAME=xxx
# pg 数据库相关内容,和 docker-compose 对上 # pg 数据库相关内容,和 docker-compose pg 部分对上
PG_HOST=0.0.0.0 PG_HOST=0.0.0.0
PG_PORT=8102 PG_PORT=8102
PG_USER=xxx PG_USER=fastgpt
PG_PASSWORD=xxx PG_PASSWORD=1234
PG_DB_NAME=xxx PG_DB_NAME=fastgpt
``` ```
**运行** **运行**
``` ```
pnpm dev pnpm dev
``` ```
@@ -48,13 +53,17 @@ 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. 安装 docker 和 docker-compose
这个不同系统略有区别,百度安装下。验证安装成功后进行下一步。下面给出一个例子: 这个不同系统略有区别,百度安装下。验证安装成功后进行下一步。下面给出一个例子:
```bash ```bash
# 安装docker # 安装docker
curl -L https://get.daocloud.io/docker | sh curl -L https://get.daocloud.io/docker | sh
@@ -67,11 +76,12 @@ docker -v
docker-compose -v docker-compose -v
``` ```
#### 2. 创建 3 个初始化文件
#### 2. 创建3个初始化文件
手动创建或者直接把 deploy 里内容复制过去 手动创建或者直接把 deploy 里内容复制过去
**/root/fast-gpt/pg/init.sql** **/root/fast-gpt/pg/init.sql**
```sql ```sql
set -e set -e
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
@@ -95,6 +105,7 @@ EOSQL
``` ```
**/root/fast-gpt/nginx/nginx.conf** **/root/fast-gpt/nginx/nginx.conf**
```conf ```conf
user nginx; user nginx;
worker_processes auto; worker_processes auto;
@@ -148,8 +159,9 @@ http {
``` ```
**/root/fast-gpt/docker-compose.yml** **/root/fast-gpt/docker-compose.yml**
```yml ```yml
version: "3.3" version: '3.3'
services: services:
fast-gpt: fast-gpt:
image: c121914yu/fast-gpt:latest image: c121914yu/fast-gpt:latest
@@ -174,9 +186,9 @@ services:
- 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=xxx - PG_USER=fastgpt
- PG_PASSWORD=xxx - PG_PASSWORD=1234
- PG_DB_NAME=xxx - PG_DB_NAME=fastgpt
- OPENAIKEY=sk-xxxxx - OPENAIKEY=sk-xxxxx
nginx: nginx:
image: nginx:alpine3.17 image: nginx:alpine3.17
@@ -195,9 +207,9 @@ services:
ports: ports:
- 8100:5432 - 8100:5432
environment: environment:
- POSTGRES_USER=xxx - POSTGRES_USER=fastgpt
- POSTGRES_PASSWORD=xxx - POSTGRES_PASSWORD=1234
- POSTGRES_DB=xxx - POSTGRES_DB=fastgpt
volumes: volumes:
- /root/fast-gpt/pg/data:/var/lib/postgresql/data - /root/fast-gpt/pg/data:/var/lib/postgresql/data
- /root/fast-gpt/pg/init.sql:/docker-entrypoint-initdb.d/init.sh - /root/fast-gpt/pg/init.sql:/docker-entrypoint-initdb.d/init.sh
@@ -218,8 +230,10 @@ services:
``` ```
#### 3. 运行 docker-compose #### 3. 运行 docker-compose
下面是一个辅助脚本,也可以直接 docker-compose up -d 下面是一个辅助脚本,也可以直接 docker-compose up -d
**run.sh 运行文件** **run.sh 运行文件**
```bash ```bash
#!/bin/bash #!/bin/bash
docker-compose pull docker-compose pull
@@ -242,15 +256,18 @@ do
done done
``` ```
## 其他优化点 ## 其他优化点
### Git Action 自动打包镜像
.github里拥有一个 git 提交到 main 分支时自动打包 amd64 和 arm64 镜像的 actions。你仅需要提前在 git 配置好 session。
1. 创建账号 session: 头像 -> settings -> 最底部 Developer settings -> Personal access tokens -> tokens(classic) -> 创建新 session把一些看起来需要的权限勾上。 ### Git Action 自动打包镜像
2. 添加 session 到仓库: 仓库 -> settings -> Secrets and variables -> Actions -> 创建secret
3. 填写 secret: Name-GH_PAT, Secret-第一步的tokens .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 可能的问题 ### Mac 可能的问题
> 因为教程有部分镜像不兼容arm64所以写个文档指导新手如何快速在mac上面搭建fast-gpt[如何在mac上面部署fastgpt](./docs/mac.md)
> 因为教程有部分镜像不兼容 arm64所以写个文档指导新手如何快速在 mac 上面搭建 fast-gpt[如何在 mac 上面部署 fastgpt](./docs/mac.md)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 69 KiB

After

Width:  |  Height:  |  Size: 111 KiB

View File

@@ -26,7 +26,7 @@ import { formatPrice } from '@/utils/user';
import { useConfirm } from '@/hooks/useConfirm'; import { useConfirm } from '@/hooks/useConfirm';
import { useSelectFile } from '@/hooks/useSelectFile'; import { useSelectFile } from '@/hooks/useSelectFile';
import { useToast } from '@/hooks/useToast'; import { useToast } from '@/hooks/useToast';
import { fileToBase64, compressImg } from '@/utils/file'; import { compressImg } from '@/utils/file';
const ModelEditForm = ({ const ModelEditForm = ({
formHooks, formHooks,
@@ -112,7 +112,14 @@ const ModelEditForm = ({
<Box flex={'0 0 80px'} w={0}> <Box flex={'0 0 80px'} w={0}>
: :
</Box> </Box>
<Select isDisabled={!isOwner} {...register('chat.chatModel')}> <Select
isDisabled={!isOwner}
{...register('chat.chatModel', {
onChange() {
setRefresh((state) => !state);
}
})}
>
{chatModelList.map((item) => ( {chatModelList.map((item) => (
<option key={item.chatModel} value={item.chatModel}> <option key={item.chatModel} value={item.chatModel}>
{item.name} {item.name}

View File

@@ -73,7 +73,7 @@ export const getApiKey = async ({
// 平台账号余额校验 // 平台账号余额校验
if (formatPrice(user.balance) <= 0) { if (formatPrice(user.balance) <= 0) {
return Promise.reject(ERROR_ENUM.unAuthorization); return Promise.reject(ERROR_ENUM.insufficientQuota);
} }
return { return {

View File

@@ -25,9 +25,9 @@ export const lafClaudChat = async ({
.filter((item) => item.obj === 'System') .filter((item) => item.obj === 'System')
.map((item) => item.value) .map((item) => item.value)
.join('\n'); .join('\n');
const systemPromptText = systemPrompt ? `\n知识库内容:'${systemPrompt}'\n我的问题:` : ''; const systemPromptText = systemPrompt ? `\n知识库内容:'${systemPrompt}'\n` : '';
const prompt = systemPromptText + messages[messages.length - 1].value; const prompt = `${systemPromptText}我的问题:'${messages[messages.length - 1].value}'`;
const lafResponse = await axios.post( const lafResponse = await axios.post(
'https://hnvacz.laf.run/claude-gpt', 'https://hnvacz.laf.run/claude-gpt',