mirror of
https://github.com/labring/FastGPT.git
synced 2025-10-16 08:01:18 +00:00
3
.vscode/settings.json
vendored
3
.vscode/settings.json
vendored
@@ -1,8 +1,9 @@
|
|||||||
{
|
{
|
||||||
"editor.formatOnSave": true,
|
"editor.formatOnSave": true,
|
||||||
"editor.mouseWheelZoom": true,
|
"editor.mouseWheelZoom": true,
|
||||||
|
"editor.defaultFormatter": "esbenp.prettier-vscode",
|
||||||
|
"prettier.prettierPath": "../node_modules/prettier",
|
||||||
"typescript.tsdk": "node_modules/typescript/lib",
|
"typescript.tsdk": "node_modules/typescript/lib",
|
||||||
"prettier.prettierPath": "",
|
|
||||||
"i18n-ally.localesPaths": [
|
"i18n-ally.localesPaths": [
|
||||||
"packages/web/i18n",
|
"packages/web/i18n",
|
||||||
],
|
],
|
||||||
|
@@ -148,6 +148,9 @@ llm模型全部合并
|
|||||||
- /imgs/model/openai.svg - OpenAI GPT
|
- /imgs/model/openai.svg - OpenAI GPT
|
||||||
- /imgs/model/qwen.svg - 通义千问
|
- /imgs/model/qwen.svg - 通义千问
|
||||||
- /imgs/model/yi.svg - 零一万物
|
- /imgs/model/yi.svg - 零一万物
|
||||||
|
- /imgs/model/gemini.svg - gemini
|
||||||
|
- /imgs/model/deepseek.svg - deepseek
|
||||||
|
- /imgs/model/minimax.svg - minimax
|
||||||
-
|
-
|
||||||
|
|
||||||
## 特殊模型
|
## 特殊模型
|
||||||
|
@@ -67,6 +67,14 @@ export const getNanoid = (size = 12) => {
|
|||||||
/* Custom text to reg, need to replace special chats */
|
/* Custom text to reg, need to replace special chats */
|
||||||
export const replaceRegChars = (text: string) => text.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
export const replaceRegChars = (text: string) => text.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
||||||
|
|
||||||
|
export const getRegQueryStr = (text: string, flags = 'i') => {
|
||||||
|
const formatText = replaceRegChars(text);
|
||||||
|
const chars = formatText.split('');
|
||||||
|
const regexPattern = chars.join('.*');
|
||||||
|
|
||||||
|
return new RegExp(regexPattern, flags);
|
||||||
|
};
|
||||||
|
|
||||||
/* slice json str */
|
/* slice json str */
|
||||||
export const sliceJsonStr = (str: string) => {
|
export const sliceJsonStr = (str: string) => {
|
||||||
str = str.replace(/(\\n|\\)/g, '').replace(/ /g, '');
|
str = str.replace(/(\\n|\\)/g, '').replace(/ /g, '');
|
||||||
|
@@ -102,6 +102,7 @@ const MyMenu = ({
|
|||||||
direction={'ltr'}
|
direction={'ltr'}
|
||||||
isLazy
|
isLazy
|
||||||
lazyBehavior={'keepMounted'}
|
lazyBehavior={'keepMounted'}
|
||||||
|
placement="bottom-start"
|
||||||
>
|
>
|
||||||
<Box
|
<Box
|
||||||
ref={ref}
|
ref={ref}
|
||||||
@@ -141,7 +142,6 @@ const MyMenu = ({
|
|||||||
</Box>
|
</Box>
|
||||||
<MenuList
|
<MenuList
|
||||||
minW={isOpen ? `${width}px !important` : '80px'}
|
minW={isOpen ? `${width}px !important` : '80px'}
|
||||||
w={width ?? 'auto'}
|
|
||||||
maxW={'300px'}
|
maxW={'300px'}
|
||||||
p={'6px'}
|
p={'6px'}
|
||||||
border={'1px solid #fff'}
|
border={'1px solid #fff'}
|
||||||
|
6
projects/app/public/imgs/model/deepseek.svg
Normal file
6
projects/app/public/imgs/model/deepseek.svg
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
<svg t="1719124967762" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1456"
|
||||||
|
width="200" height="200">
|
||||||
|
<path
|
||||||
|
d="M320.512 804.864C46.08 676.864 77.824 274.432 362.496 274.432c34.816 0 86.016-7.168 114.688-14.336 59.392-16.384 99.328-10.24 69.632 10.24-9.216 7.168-15.36 19.456-13.312 28.672 5.12 20.48 158.72 161.792 177.152 161.792 27.648 0 27.648-32.768 1.024-57.344-43.008-38.912-55.296-90.112-35.84-141.312l9.216-26.624 54.272 52.224c35.84 34.816 58.368 49.152 68.608 44.032 9.216-4.096 30.72-9.216 49.152-12.288 18.432-2.048 38.912-10.24 45.056-18.432 19.456-23.552 43.008-17.408 35.84 9.216-3.072 12.288-6.144 27.648-6.144 34.816 0 23.552-62.464 83.968-92.16 90.112-23.552 5.12-30.72 12.288-30.72 30.72 0 46.08-38.912 148.48-75.776 198.656l-37.888 51.2 36.864 15.36c56.32 23.552 40.96 41.984-37.888 43.008-43.008 1.024-75.776 7.168-92.16 18.432-68.608 45.056-198.656 50.176-281.6 12.288z m251.904-86.016c-24.576-27.648-66.56-79.872-93.184-117.76-69.632-98.304-158.72-150.528-256-150.528-37.888 0-38.912 1.024-38.912 34.816 0 94.208 99.328 240.64 175.104 257.024 38.912 9.216 59.392-7.168 39.936-29.696-7.168-9.216-10.24-23.552-6.144-31.744 5.12-14.336 9.216-14.336 38.912 1.024 18.432 9.216 50.176 29.696 69.632 45.056 35.84 27.648 58.368 37.888 96.256 39.936 14.336 1.024 9.216-10.24-25.6-48.128z m88.064-145.408c8.192-13.312-31.744-78.848-56.32-92.16-10.24-6.144-26.624-10.24-34.816-10.24-23.552 0-20.48 27.648 4.096 33.792 13.312 3.072 20.48 14.336 20.48 29.696 0 13.312 5.12 29.696 12.288 36.864 15.36 15.36 46.08 16.384 54.272 2.048z"
|
||||||
|
fill="#4D6BFE" p-id="1457"></path>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.6 KiB |
9
projects/app/public/imgs/model/minimax.svg
Normal file
9
projects/app/public/imgs/model/minimax.svg
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
<svg t="1719125004089" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2490"
|
||||||
|
width="200" height="200">
|
||||||
|
<path
|
||||||
|
d="M415.185455 477.696v314.554182c-22.248727 106.496-170.449455 79.034182-171.101091 1.768727-0.698182-97.047273 0-193.396364 0-289.792V392.564364c0-13.963636-3.165091-24.994909-16.011637-33.792-24.994909-17.780364-54.923636 3.165091-55.575272 28.858181-1.396364 34.443636-0.698182 68.189091-1.396364 102.213819 0 26.810182 0 52.922182 0.698182 79.685818C153.320727 687.522909 3.397818 667.927273 0 570.228364v-81.733819c0-26.810182 54.923636-33.093818 52.224 6.981819-1.768727 19.828364-0.651636 40.308364-1.349818 59.904-0.651636 35.095273 55.621818 58.740364 68.887273 1.349818 0.698182-47.290182 0.698182-94.580364 0.698181-142.336 0-59.857455 17.780364-108.497455 84.247273-113.012364 28.811636-2.466909 47.941818 8.983273 66.373818 28.858182 6.981818 6.981818 23.645091 29.230545 24.343273 53.527273 0 22.341818 0.651636 44.590545 0.651636 67.118545 0 44.590545-0.651636 89.367273-0.651636 133.957818 0 28.858182 0.651636 57.437091 0.651636 85.597091 0 35.793455 0 72.052364-0.651636 107.845818-0.698182 46.592 58.740364 45.940364 68.235636-0.698181 0-54.923636 0.651636-109.195636 0.651637-164.119273 0-135.354182-0.651636-270.661818-0.651637-405.969455 0-13.963636-2.048-52.922182 5.818182-67.118545 41.425455-96.349091 167.330909-54.272 168.448 25.460364 2.466909 163.467636 0 328.750545 0.651637 492.63709 0 56.785455-48.407273 44.590545-51.10691 22.341819 0-170.496 0-341.643636 0.698182-511.860364-2.466909-42.775273-68.887273-36.910545-72.750545-6.283636-1.349818 35.141818-0.651636 70.935273-1.349818 106.030545v208.756364h0.698181l0.465455 0.232727z"
|
||||||
|
fill="#AE70FF" p-id="2491"></path>
|
||||||
|
<path
|
||||||
|
d="M609.745455 475.182545v231.005091V161.047273c21.643636-107.194182 169.797818-79.266909 170.449454-2.001455 0.698182 96.349091 0 193.396364 0.698182 289.745455 0 36.957091 0 74.100364-0.698182 111.010909 0 14.661818 3.816727 24.994909 16.663273 34.443636 24.343273 17.361455 54.272-3.118545 55.621818-29.230545 1.349818-33.792 0.651636-67.584 0.651636-102.260364V383.534545c18.478545-117.992727 168.029091-98.397091 171.147637-0.698181v296.075636c0 26.810182-54.272 33.140364-51.805091-6.981818 1.396364-20.48 0-254.603636 0.698182-275.130182 1.349818-34.443636-55.621818-58.786909-68.887273-0.698182v141.637818c0 60.602182-17.826909 108.544-84.898909 113.710546-63.301818 1.396364-88.715636-40.308364-90.763637-82.385455V282.856727c0-36.491636 0-72.052364 0.698182-107.845818 0.651636-46.592-58.786909-46.592-68.887272 0.698182v640.791273c0 13.963636 2.001455 52.922182-5.213091 67.118545-41.425455 96.349091-167.936 54.272-169.099637-25.460364v-75.86909c3.165091-51.106909 48.407273-38.958545 50.455273-17.361455v90.065455c2.466909 42.821818 68.887273 37.608727 72.052364 6.330181 1.349818-35.141818 1.349818-70.283636 1.349818-106.077091V475.229091H609.745455z"
|
||||||
|
fill="#AE70FF" p-id="2492"></path>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 2.9 KiB |
@@ -12,6 +12,7 @@ import CollaboratorContextProvider, {
|
|||||||
MemberManagerInputPropsType
|
MemberManagerInputPropsType
|
||||||
} from '../../support/permission/MemberManager/context';
|
} from '../../support/permission/MemberManager/context';
|
||||||
import MyTooltip from '@fastgpt/web/components/common/MyTooltip';
|
import MyTooltip from '@fastgpt/web/components/common/MyTooltip';
|
||||||
|
import { useSystemStore } from '@/web/common/system/useSystemStore';
|
||||||
|
|
||||||
const FolderSlideCard = ({
|
const FolderSlideCard = ({
|
||||||
refreshDeps,
|
refreshDeps,
|
||||||
@@ -41,6 +42,7 @@ const FolderSlideCard = ({
|
|||||||
managePer: MemberManagerInputPropsType;
|
managePer: MemberManagerInputPropsType;
|
||||||
}) => {
|
}) => {
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
|
const { feConfigs } = useSystemStore();
|
||||||
|
|
||||||
const { ConfirmModal, openConfirm } = useConfirm({
|
const { ConfirmModal, openConfirm } = useConfirm({
|
||||||
type: 'delete',
|
type: 'delete',
|
||||||
@@ -109,6 +111,8 @@ const FolderSlideCard = ({
|
|||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
|
{feConfigs?.isPlus && (
|
||||||
|
<>
|
||||||
<MyDivider my={6} />
|
<MyDivider my={6} />
|
||||||
|
|
||||||
<Box>
|
<Box>
|
||||||
@@ -172,6 +176,8 @@ const FolderSlideCard = ({
|
|||||||
</CollaboratorContextProvider>
|
</CollaboratorContextProvider>
|
||||||
</Box>
|
</Box>
|
||||||
</Box>
|
</Box>
|
||||||
|
</>
|
||||||
|
)}
|
||||||
|
|
||||||
<ConfirmModal />
|
<ConfirmModal />
|
||||||
</Box>
|
</Box>
|
||||||
|
@@ -19,13 +19,12 @@ import { useMemo, useState } from 'react';
|
|||||||
import PermissionSelect from './PermissionSelect';
|
import PermissionSelect from './PermissionSelect';
|
||||||
import PermissionTags from './PermissionTags';
|
import PermissionTags from './PermissionTags';
|
||||||
import { CollaboratorContext } from './context';
|
import { CollaboratorContext } from './context';
|
||||||
import { useQuery } from '@tanstack/react-query';
|
|
||||||
import { useUserStore } from '@/web/support/user/useUserStore';
|
import { useUserStore } from '@/web/support/user/useUserStore';
|
||||||
import { getTeamMembers } from '@/web/support/user/team/api';
|
import { getTeamMembers } from '@/web/support/user/team/api';
|
||||||
import MyBox from '@fastgpt/web/components/common/MyBox';
|
import MyBox from '@fastgpt/web/components/common/MyBox';
|
||||||
import { ChevronDownIcon } from '@chakra-ui/icons';
|
import { ChevronDownIcon } from '@chakra-ui/icons';
|
||||||
import Avatar from '@/components/Avatar';
|
import Avatar from '@/components/Avatar';
|
||||||
import { useRequest } from '@fastgpt/web/hooks/useRequest';
|
import { useRequest, useRequest2 } from '@fastgpt/web/hooks/useRequest';
|
||||||
import { useTranslation } from 'next-i18next';
|
import { useTranslation } from 'next-i18next';
|
||||||
|
|
||||||
export type AddModalPropsType = {
|
export type AddModalPropsType = {
|
||||||
@@ -39,15 +38,17 @@ function AddMemberModal({ onClose }: AddModalPropsType) {
|
|||||||
const { permissionList, collaboratorList, onUpdateCollaborators, getPerLabelList } =
|
const { permissionList, collaboratorList, onUpdateCollaborators, getPerLabelList } =
|
||||||
useContextSelector(CollaboratorContext, (v) => v);
|
useContextSelector(CollaboratorContext, (v) => v);
|
||||||
const [searchText, setSearchText] = useState<string>('');
|
const [searchText, setSearchText] = useState<string>('');
|
||||||
const {
|
const { data: members = [], loading: loadingMembers } = useRequest2(
|
||||||
data: members = [],
|
async () => {
|
||||||
refetch: refetchMembers,
|
|
||||||
isLoading: loadingMembers
|
|
||||||
} = useQuery(['getMembers', userInfo?.team?.teamId], async () => {
|
|
||||||
if (!userInfo?.team?.teamId) return [];
|
if (!userInfo?.team?.teamId) return [];
|
||||||
const members = await getTeamMembers();
|
const members = await getTeamMembers();
|
||||||
return members;
|
return members;
|
||||||
});
|
},
|
||||||
|
{
|
||||||
|
manual: false,
|
||||||
|
refreshDeps: [userInfo?.team?.teamId]
|
||||||
|
}
|
||||||
|
);
|
||||||
const filterMembers = useMemo(() => {
|
const filterMembers = useMemo(() => {
|
||||||
return members.filter((item) => {
|
return members.filter((item) => {
|
||||||
// if (item.permission.isOwner) return false;
|
// if (item.permission.isOwner) return false;
|
||||||
|
@@ -6,13 +6,13 @@ import {
|
|||||||
import { PermissionList } from '@fastgpt/global/support/permission/constant';
|
import { PermissionList } from '@fastgpt/global/support/permission/constant';
|
||||||
import { Permission } from '@fastgpt/global/support/permission/controller';
|
import { Permission } from '@fastgpt/global/support/permission/controller';
|
||||||
import { PermissionListType, PermissionValueType } from '@fastgpt/global/support/permission/type';
|
import { PermissionListType, PermissionValueType } from '@fastgpt/global/support/permission/type';
|
||||||
import { useQuery } from '@tanstack/react-query';
|
|
||||||
import { ReactNode, useCallback } from 'react';
|
import { ReactNode, useCallback } from 'react';
|
||||||
import { createContext } from 'use-context-selector';
|
import { createContext } from 'use-context-selector';
|
||||||
import dynamic from 'next/dynamic';
|
import dynamic from 'next/dynamic';
|
||||||
|
|
||||||
import MemberListCard, { MemberListCardProps } from './MemberListCard';
|
import MemberListCard, { MemberListCardProps } from './MemberListCard';
|
||||||
import { useRequest2 } from '@fastgpt/web/hooks/useRequest';
|
import { useRequest2 } from '@fastgpt/web/hooks/useRequest';
|
||||||
|
import { useSystemStore } from '@/web/common/system/useSystemStore';
|
||||||
const AddMemberModal = dynamic(() => import('./AddMemberModal'));
|
const AddMemberModal = dynamic(() => import('./AddMemberModal'));
|
||||||
const ManageModal = dynamic(() => import('./ManageModal'));
|
const ManageModal = dynamic(() => import('./ManageModal'));
|
||||||
|
|
||||||
@@ -71,14 +71,24 @@ const CollaboratorContextProvider = ({
|
|||||||
}: MemberManagerInputPropsType & {
|
}: MemberManagerInputPropsType & {
|
||||||
children: (props: ChildrenProps) => ReactNode;
|
children: (props: ChildrenProps) => ReactNode;
|
||||||
}) => {
|
}) => {
|
||||||
|
const { feConfigs } = useSystemStore();
|
||||||
|
|
||||||
const {
|
const {
|
||||||
data: collaboratorList = [],
|
data: collaboratorList = [],
|
||||||
runAsync: refetchCollaboratorList,
|
runAsync: refetchCollaboratorList,
|
||||||
loading: isFetchingCollaborator
|
loading: isFetchingCollaborator
|
||||||
} = useRequest2(onGetCollaboratorList, {
|
} = useRequest2(
|
||||||
|
async () => {
|
||||||
|
if (feConfigs.isPlus) {
|
||||||
|
return onGetCollaboratorList();
|
||||||
|
}
|
||||||
|
return [];
|
||||||
|
},
|
||||||
|
{
|
||||||
manual: false,
|
manual: false,
|
||||||
refreshDeps
|
refreshDeps
|
||||||
});
|
}
|
||||||
|
);
|
||||||
|
|
||||||
const onUpdateCollaboratorsThen = async (props: UpdateClbPermissionProps) => {
|
const onUpdateCollaboratorsThen = async (props: UpdateClbPermissionProps) => {
|
||||||
await onUpdateCollaborators(props);
|
await onUpdateCollaborators(props);
|
||||||
|
@@ -245,7 +245,6 @@ function List() {
|
|||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<MyMenu
|
<MyMenu
|
||||||
width={120}
|
|
||||||
Button={
|
Button={
|
||||||
<Box w={'22px'} h={'22px'}>
|
<Box w={'22px'} h={'22px'}>
|
||||||
<MyIcon
|
<MyIcon
|
||||||
@@ -279,13 +278,7 @@ function List() {
|
|||||||
label: t('Move'),
|
label: t('Move'),
|
||||||
onClick: () => setMoveDataId(dataset._id)
|
onClick: () => setMoveDataId(dataset._id)
|
||||||
},
|
},
|
||||||
{
|
|
||||||
icon: 'export',
|
|
||||||
label: t('Export'),
|
|
||||||
onClick: () => {
|
|
||||||
exportDataset(dataset);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
...(dataset.permission.hasManagePer
|
...(dataset.permission.hasManagePer
|
||||||
? [
|
? [
|
||||||
{
|
{
|
||||||
@@ -297,6 +290,17 @@ function List() {
|
|||||||
: [])
|
: [])
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
icon: 'export',
|
||||||
|
label: t('Export'),
|
||||||
|
onClick: () => {
|
||||||
|
exportDataset(dataset);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
...(dataset.permission.hasManagePer
|
...(dataset.permission.hasManagePer
|
||||||
? [
|
? [
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user