mirror of
https://github.com/labring/FastGPT.git
synced 2025-10-17 16:45:02 +00:00
fix: select ui;perf: max link and compose
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
# 运行端口,如果不是 3000 口运行,需要改成其他的。注意:不是改了这个变量就会变成其他端口,而是因为改成其他端口,才用这个变量。
|
||||
PORT=3000
|
||||
# database max link
|
||||
DB_MAX_LINK=15
|
||||
DB_MAX_LINK=5
|
||||
# 代理
|
||||
# AXIOS_PROXY_HOST=127.0.0.1
|
||||
# AXIOS_PROXY_PORT=7890
|
||||
|
@@ -1,4 +1,4 @@
|
||||
import React from 'react';
|
||||
import React, { useRef } from 'react';
|
||||
import { Menu, MenuButton, MenuList, MenuItem, Button, useDisclosure } from '@chakra-ui/react';
|
||||
import type { ButtonProps } from '@chakra-ui/react';
|
||||
import { ChevronDownIcon } from '@chakra-ui/icons';
|
||||
@@ -13,6 +13,7 @@ interface Props extends ButtonProps {
|
||||
}
|
||||
|
||||
const MySelect = ({ placeholder, value, width = 'auto', list, onchange, ...props }: Props) => {
|
||||
const ref = useRef<HTMLDivElement>(null);
|
||||
const menuItemStyles = {
|
||||
borderRadius: 'sm',
|
||||
py: 2,
|
||||
@@ -26,8 +27,9 @@ const MySelect = ({ placeholder, value, width = 'auto', list, onchange, ...props
|
||||
|
||||
return (
|
||||
<Menu autoSelect={false} onOpen={onOpen} onClose={onClose}>
|
||||
<MenuButton style={{ width: '100%' }} as={'span'}>
|
||||
<MenuButton style={{ width: '100%', position: 'relative' }} as={'span'}>
|
||||
<Button
|
||||
ref={ref}
|
||||
width={width}
|
||||
px={3}
|
||||
variant={'base'}
|
||||
@@ -47,9 +49,15 @@ const MySelect = ({ placeholder, value, width = 'auto', list, onchange, ...props
|
||||
</Button>
|
||||
</MenuButton>
|
||||
<MenuList
|
||||
minW={
|
||||
Array.isArray(width) ? width.map((item) => `${item} !important`) : `${width} !important`
|
||||
}
|
||||
minW={(() => {
|
||||
const w = ref.current?.clientWidth;
|
||||
if (w) {
|
||||
return `${w}px !important`;
|
||||
}
|
||||
return Array.isArray(width)
|
||||
? width.map((item) => `${item} !important`)
|
||||
: `${width} !important`;
|
||||
})()}
|
||||
p={'6px'}
|
||||
border={'1px solid #fff'}
|
||||
boxShadow={'0px 2px 4px rgba(161, 167, 179, 0.25), 0px 0px 1px rgba(121, 141, 159, 0.25);'}
|
||||
@@ -78,4 +86,4 @@ const MySelect = ({ placeholder, value, width = 'auto', list, onchange, ...props
|
||||
);
|
||||
};
|
||||
|
||||
export default MySelect;
|
||||
export default React.memo(MySelect);
|
||||
|
@@ -75,7 +75,7 @@ const Settings = ({ modelId }: { modelId: string }) => {
|
||||
}
|
||||
|
||||
return max;
|
||||
}, [getValues, setValue]);
|
||||
}, [getValues, setValue, refresh]);
|
||||
|
||||
// 提交保存模型修改
|
||||
const saveSubmitSuccess = useCallback(
|
||||
@@ -240,12 +240,12 @@ const Settings = ({ modelId }: { modelId: string }) => {
|
||||
对话模型
|
||||
</Box>
|
||||
<MySelect
|
||||
width={['100%', '280px']}
|
||||
width={['90%', '280px']}
|
||||
value={getValues('chat.chatModel')}
|
||||
list={chatModelList.map((item) => ({
|
||||
id: item.chatModel,
|
||||
label: `${item.name} (${formatPrice(
|
||||
ChatModelMap[getValues('chat.chatModel')]?.price,
|
||||
ChatModelMap[item.chatModel]?.price,
|
||||
1000
|
||||
)} 元/1k tokens)`
|
||||
}))}
|
||||
@@ -265,7 +265,7 @@ const Settings = ({ modelId }: { modelId: string }) => {
|
||||
{ label: '严谨', value: 0 },
|
||||
{ label: '发散', value: 10 }
|
||||
]}
|
||||
width={['100%', '260px']}
|
||||
width={['90%', '260px']}
|
||||
min={0}
|
||||
max={10}
|
||||
activeVal={getValues('chat.temperature')}
|
||||
@@ -286,7 +286,7 @@ const Settings = ({ modelId }: { modelId: string }) => {
|
||||
{ label: '100', value: 100 },
|
||||
{ label: `${tokenLimit}`, value: tokenLimit }
|
||||
]}
|
||||
width={['100%', '260px']}
|
||||
width={['90%', '260px']}
|
||||
min={100}
|
||||
max={tokenLimit}
|
||||
step={50}
|
||||
|
@@ -36,9 +36,9 @@ export async function connectToDatabase(): Promise<void> {
|
||||
global.mongodb = await mongoose.connect(process.env.MONGODB_URI as string, {
|
||||
bufferCommands: true,
|
||||
dbName: process.env.MONGODB_NAME,
|
||||
maxConnecting: Number(process.env.DB_MAX_LINK || 10),
|
||||
maxPoolSize: Number(process.env.DB_MAX_LINK || 10),
|
||||
minPoolSize: 5
|
||||
maxConnecting: Number(process.env.DB_MAX_LINK || 5),
|
||||
maxPoolSize: Number(process.env.DB_MAX_LINK || 5),
|
||||
minPoolSize: 2
|
||||
});
|
||||
console.log('mongo connected');
|
||||
} catch (error) {
|
||||
|
@@ -12,7 +12,7 @@ export const connectPg = async () => {
|
||||
user: process.env.PG_USER,
|
||||
password: process.env.PG_PASSWORD,
|
||||
database: process.env.PG_DB_NAME,
|
||||
max: Number(process.env.DB_MAX_LINK || 10),
|
||||
max: Number(process.env.DB_MAX_LINK || 5),
|
||||
idleTimeoutMillis: 30000,
|
||||
connectionTimeoutMillis: 5000
|
||||
});
|
||||
|
@@ -1,4 +1,4 @@
|
||||
# host 版本。
|
||||
# 非 host 版本, 不使用本机代理
|
||||
version: '3.3'
|
||||
services:
|
||||
pg:
|
||||
@@ -6,8 +6,10 @@ services:
|
||||
image: registry.cn-hangzhou.aliyuncs.com/fastgpt/pgvector:v0.4.2 # 阿里云
|
||||
container_name: pg
|
||||
restart: always
|
||||
ports:
|
||||
ports: # 生产环境建议不要暴露
|
||||
- 8100:5432
|
||||
networks:
|
||||
- fastgpt
|
||||
environment:
|
||||
# 这里的配置只有首次运行生效。修改后,重启镜像是不会生效的。需要把持久化数据删除再重启,才有效果
|
||||
- POSTGRES_USER=fastgpt
|
||||
@@ -17,13 +19,15 @@ services:
|
||||
# 刚创建的文件
|
||||
- /root/fastgpt/pg/init.sql:/docker-entrypoint-initdb.d/init.sh
|
||||
- /root/fastgpt/pg/data:/var/lib/postgresql/data
|
||||
mongodb:
|
||||
mongo:
|
||||
# image: mongo:5.0.18
|
||||
image: registry.cn-hangzhou.aliyuncs.com/fastgpt/mongo:5.0.18 # 阿里云
|
||||
container_name: mongo
|
||||
restart: always
|
||||
ports:
|
||||
ports: # 生产环境建议不要暴露
|
||||
- 27017:27017
|
||||
networks:
|
||||
- fastgpt
|
||||
environment:
|
||||
# 这里的配置只有首次运行生效。修改后,重启镜像是不会生效的。需要把持久化数据删除再重启,才有效果
|
||||
- MONGO_INITDB_ROOT_USERNAME=username
|
||||
@@ -32,14 +36,21 @@ services:
|
||||
- /root/fastgpt/mongo/data:/data/db
|
||||
- /root/fastgpt/mongo/logs:/var/log/mongodb
|
||||
fastgpt:
|
||||
container_name: fastgpt
|
||||
# image: c121914yu/fast-gpt:latest # docker hub
|
||||
image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:latest # 阿里云
|
||||
# network_mode: host #
|
||||
ports:
|
||||
- 3000:3000
|
||||
networks:
|
||||
- fastgpt
|
||||
depends_on:
|
||||
- mongo
|
||||
- pg
|
||||
restart: always
|
||||
container_name: fastgpt
|
||||
environment: # 可选的变量,不需要的话需要去掉
|
||||
- PORT=3000 # 运行的端口地址,如果不是 3000,需要修改成实际地址。
|
||||
- DB_MAX_LINK=15 # database max link
|
||||
- DB_MAX_LINK=5 # database max link
|
||||
# proxy(可选)
|
||||
- AXIOS_PROXY_HOST=127.0.0.1
|
||||
- AXIOS_PROXY_PORT=7890
|
||||
@@ -59,10 +70,10 @@ services:
|
||||
# root key, 最高权限,可以内部接口互相调用
|
||||
- ROOT_KEY=root_key
|
||||
# 和上方mongo镜像的username,password对应
|
||||
- MONGODB_URI=mongodb://username:password@0.0.0.0:27017/?authSource=admin
|
||||
- MONGODB_URI=mongodb://username:password@mongo:27017/?authSource=admin
|
||||
- MONGODB_NAME=fastgpt
|
||||
- PG_HOST=0.0.0.0
|
||||
- PG_PORT=8100
|
||||
- PG_HOST=pg
|
||||
- PG_PORT=5432
|
||||
# 和上方PG镜像对应.
|
||||
- PG_USER=fastgpt
|
||||
- PG_PASSWORD=1234
|
||||
@@ -80,13 +91,18 @@ services:
|
||||
restart: always
|
||||
ports:
|
||||
- 3001:3001
|
||||
networks:
|
||||
- fastgpt
|
||||
depends_on:
|
||||
- mongo
|
||||
- fastgpt
|
||||
environment:
|
||||
- MONGODB_URI=mongodb://username:password@0.0.0.0:27017/?authSource=admin
|
||||
- MONGODB_URI=mongodb://username:password@mongo:27017/?authSource=admin
|
||||
- MONGODB_NAME=fastgpt
|
||||
- ADMIN_USER=username
|
||||
- ADMIN_PASS=password
|
||||
- ADMIN_SECRET=any
|
||||
- PARENT_URL=http://0.0.0.0:3000
|
||||
- PARENT_URL=http://fastgpt:3000
|
||||
- PARENT_ROOT_KEY=root_key
|
||||
key-admin:
|
||||
container_name: key-admin
|
||||
@@ -111,3 +127,130 @@ services:
|
||||
# https证书,没有的话不填,对应的nginx.conf也要修改
|
||||
- /root/fastgpt/nginx/ssl/docgpt.key:/ssl/docgpt.key
|
||||
- /root/fastgpt/nginx/ssl/docgpt.pem:/ssl/docgpt.pem
|
||||
networks:
|
||||
fastgpt:
|
||||
# host 版本, 不推荐,推荐直接用上面的,用个 BASE_URL 中转
|
||||
# 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: # 生产环境建议不要暴露
|
||||
# - 8100:5432
|
||||
# networks:
|
||||
# - fastgpt
|
||||
# environment:
|
||||
# # 这里的配置只有首次运行生效。修改后,重启镜像是不会生效的。需要把持久化数据删除再重启,才有效果
|
||||
# - POSTGRES_USER=fastgpt
|
||||
# - POSTGRES_PASSWORD=1234
|
||||
# - POSTGRES_DB=fastgpt
|
||||
# volumes:
|
||||
# # 刚创建的文件
|
||||
# - /root/fastgpt/pg/init.sql:/docker-entrypoint-initdb.d/init.sh
|
||||
# - /root/fastgpt/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:
|
||||
# - /root/fastgpt/mongo/data:/data/db
|
||||
# - /root/fastgpt/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: # 可选的变量,不需要的话需要去掉
|
||||
# - PORT=3000 # 运行的端口地址,如果不是 3000,需要修改成实际地址。
|
||||
# - DB_MAX_LINK=15 # database max link
|
||||
# # proxy(可选)
|
||||
# - AXIOS_PROXY_HOST=127.0.0.1
|
||||
# - AXIOS_PROXY_PORT=7890
|
||||
# # 发送邮箱验证码配置。用的是QQ邮箱。参考 nodeMail 获取MAILE_CODE,自行百度。
|
||||
# - MY_MAIL=54545@qq.com
|
||||
# - MAILE_CODE=1234
|
||||
# # 阿里短信服务(邮箱和短信至少二选一)
|
||||
# - aliAccessKeyId=xxxx
|
||||
# - aliAccessKeySecret=xxxx
|
||||
# - aliSignName=xxxxx
|
||||
# - aliTemplateCode=SMS_xxxx
|
||||
# # google V3 安全校验(可选)
|
||||
# - CLIENT_GOOGLE_VER_TOKEN=xxx
|
||||
# - SERVICE_GOOGLE_VER_TOKEN=xx
|
||||
# # token加密凭证(随便填,作为登录凭证)
|
||||
# - TOKEN_KEY=xxxx
|
||||
# # root key, 最高权限,可以内部接口互相调用
|
||||
# - ROOT_KEY=xxx
|
||||
# # 和上方mongo镜像的username,password对应
|
||||
# - MONGODB_URI=mongodb://username:password@0.0.0.0:27017/?authSource=admin
|
||||
# - MONGODB_NAME=fastgpt
|
||||
# - PG_HOST=0.0.0.0
|
||||
# - PG_PORT=8100
|
||||
# # 和上方PG镜像对应.
|
||||
# - PG_USER=fastgpt
|
||||
# - PG_PASSWORD=1234
|
||||
# - PG_DB_NAME=fastgpt
|
||||
# # oneapi 配置 推荐使用 one-api 管理key
|
||||
# - ONEAPI_URL=https://kfcwurtbijvh.cloud.sealos.io/v1
|
||||
# - ONEAPI_KEY=sk-itJ9v8qthRiFDzfs62Ea21Aa9b004c8791937dCf4cC568Ff
|
||||
# # openai 相关配置:使用了 oneapi 后,下面只需要填下 OPENAI_BASE_URL (国外可全忽略)
|
||||
# - OPENAIKEY=sk-xxxxx
|
||||
# - OPENAI_BASE_URL=https://api.openai.com/v1
|
||||
# - OPENAI_BASE_URL_AUTH=可选的安全凭证,会放到 header.auth 里
|
||||
# fastgpt-admin:
|
||||
# image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-admin:latest
|
||||
# container_name: fastgpt-admin
|
||||
# restart: always
|
||||
# ports:
|
||||
# - 3001:3001
|
||||
# networks:
|
||||
# - fastgpt
|
||||
# depends_on:
|
||||
# - mongo
|
||||
# - fastgpt
|
||||
# environment:
|
||||
# - MONGODB_URI=mongodb://username:password@mongo:27017/?authSource=admin
|
||||
# - MONGODB_NAME=fastgpt
|
||||
# - ADMIN_USER=username
|
||||
# - ADMIN_PASS=password
|
||||
# - ADMIN_SECRET=any
|
||||
# - PARENT_URL=http://fastgpt:3000
|
||||
# - PARENT_ROOT_KEY=root_key
|
||||
# key-admin:
|
||||
# container_name: key-admin
|
||||
# image: justsong/one-api
|
||||
# restart: always
|
||||
# ports:
|
||||
# - 3002:3000
|
||||
# environment:
|
||||
# - TZ=Asia/Shanghai
|
||||
# volumes:
|
||||
# - /home/ubuntu/data/one-api:/data
|
||||
# nginx: # 宝塔不需要额外装 nginx
|
||||
# image: registry.cn-hangzhou.aliyuncs.com/fastgpt/nginx:alpine3.17
|
||||
# # image: nginx:alpine3.17
|
||||
# container_name: nginx
|
||||
# restart: always
|
||||
# network_mode: host
|
||||
# volumes:
|
||||
# # 刚创建的文件
|
||||
# - /root/fastgpt/nginx/nginx.conf:/etc/nginx/nginx.conf:ro
|
||||
# - /root/fastgpt/nginx/logs:/var/log/nginx
|
||||
# # https证书,没有的话不填,对应的nginx.conf也要修改
|
||||
# - /root/fastgpt/nginx/ssl/docgpt.key:/ssl/docgpt.key
|
||||
# - /root/fastgpt/nginx/ssl/docgpt.pem:/ssl/docgpt.pem
|
||||
# networks:
|
||||
# fastgpt:
|
||||
|
Reference in New Issue
Block a user