V4.8.16 dev (#3431)

* feat: add feishu & yuque dataset (#3379)

* feat: add feishu & yuque dataset

* fix ts

* fix ts

* move type position

* fix

* fix: merge interface

* fix

* feat: dingtalk sso support (#3408)

* fix: optional sso state

* feat: dingtalk bot

* feat: dingtalk sso login

* chore: move i18n to user namespace

* feat: dingtalk bot integration (#3415)

* feat: dingtalk bot integration

* docs: config dingtalk bot

* feat:sear XNG服务 (#3413)

* feat:sear XNG服务

* 补充了courseUrl

* 添加了官方文档

* 错误时返回情况修正了一下

* Tracks (#3420)

* feat: node intro

* feat: add domain track

* dingding sso login

* perf: api dataset code and add doc

* feat: tracks

* feat: searXNG plugins

* fix: ts

* feat: delete node tracks (#3423)

* fix: dingtalk bot GET verification (#3424)

* 4.8.16 test: fix: plugin inputs render;fix: ui offset (#3426)

* fix: ui offset

* perf: dingding talk

* fix: plugin inputs render

* feat: menu all folder (#3429)

* fix: recall code

---------

Co-authored-by: heheer <heheer@sealos.io>
Co-authored-by: a.e. <49438478+I-Info@users.noreply.github.com>
Co-authored-by: Jiangween <145003935+Jiangween@users.noreply.github.com>
This commit is contained in:
Archer
2024-12-18 19:30:19 +08:00
committed by GitHub
parent 82871be054
commit bd79e7701f
154 changed files with 2519 additions and 300 deletions

View File

@@ -0,0 +1,21 @@
import { POST } from '@/web/common/api/request';
import { TrackEnum } from '@fastgpt/global/common/middle/tracks/constants';
import { useSystemStore } from '../../system/useSystemStore';
const createTrack = ({ event, data }: { event: TrackEnum; data: any }) => {
if (!useSystemStore.getState()?.feConfigs?.isPlus) return;
return POST('/common/tracks/push', {
event,
data
});
};
export const webPushTrack = {
useAppTemplate: (data: { id: string; name: string }) => {
return createTrack({
event: TrackEnum.useAppTemplate,
data
});
}
};

View File

@@ -8,7 +8,12 @@ import { TrackEventName } from '../common/system/constants';
export const useInitApp = () => {
const router = useRouter();
const { hiId, bd_vid, k } = router.query as { hiId?: string; bd_vid?: string; k?: string };
const { hiId, bd_vid, k, sourceDomain } = router.query as {
hiId?: string;
bd_vid?: string;
k?: string;
sourceDomain?: string;
};
const { loadGitStar, setInitd, feConfigs } = useSystemStore();
const [scripts, setScripts] = useState<FastGPTFeConfigsType['scripts']>([]);
const [title, setTitle] = useState(process.env.SYSTEM_NAME || 'AI');
@@ -61,7 +66,16 @@ export const useInitApp = () => {
hiId && localStorage.setItem('inviterId', hiId);
bd_vid && sessionStorage.setItem('bd_vid', bd_vid);
k && sessionStorage.setItem('fastgpt_sem', JSON.stringify({ keyword: k }));
}, [bd_vid, hiId, k]);
const formatSourceDomain = (() => {
if (sourceDomain) return sourceDomain;
return document.referrer;
})();
console.log(formatSourceDomain, '-=-=');
if (formatSourceDomain && !sessionStorage.getItem('sourceDomain')) {
sessionStorage.setItem('sourceDomain', formatSourceDomain);
}
}, [bd_vid, hiId, k, sourceDomain]);
return {
feConfigs,

View File

@@ -1,6 +1,10 @@
import { AppTypeEnum } from '@fastgpt/global/core/app/constants';
import { AppDetailType } from '@fastgpt/global/core/app/type.d';
import type { FeishuAppType, OutLinkEditType } from '@fastgpt/global/support/outLink/type.d';
import type {
DingtalkAppType,
FeishuAppType,
OutLinkEditType
} from '@fastgpt/global/support/outLink/type.d';
import { AppPermission } from '@fastgpt/global/support/permission/app/controller';
export const defaultApp: AppDetailType = {
_id: '',
@@ -39,6 +43,14 @@ export const defaultFeishuOutLinkForm: OutLinkEditType<FeishuAppType> = {
}
};
export const defaultDingtalkOutlinkForm: OutLinkEditType<DingtalkAppType> = {
name: '',
limit: {
QPM: 100,
maxUsagePoints: -1
}
};
export enum TTSTypeEnum {
none = 'none',
web = 'web',

View File

@@ -66,6 +66,7 @@ import type {
listExistIdQuery,
listExistIdResponse
} from '@/pages/api/core/dataset/apiDataset/listExistId';
import { FeishuServer, YuqueServer } from '@fastgpt/global/core/dataset/apiDataset';
/* ======================== dataset ======================= */
export const getDatasets = (data: GetDatasetListBody) =>

View File

@@ -65,3 +65,13 @@ export enum ImportProcessWayEnum {
auto = 'auto',
custom = 'custom'
}
export const datasetTypeCourseMap: Record<`${DatasetTypeEnum}`, string> = {
[DatasetTypeEnum.folder]: '',
[DatasetTypeEnum.dataset]: '',
[DatasetTypeEnum.apiDataset]: '/docs/guide/knowledge_base/api_dataset/',
[DatasetTypeEnum.websiteDataset]: '/docs/guide/knowledge_base/websync/',
[DatasetTypeEnum.feishu]: '/docs/guide/knowledge_base/lark_dataset/',
[DatasetTypeEnum.yuque]: '/docs/guide/knowledge_base/yuque_dataset/',
[DatasetTypeEnum.externalFile]: ''
};

View File

@@ -121,6 +121,19 @@ export const DatasetPageContextProvider = ({
baseUrl: data.apiServer.baseUrl,
authorization: ''
}
: undefined,
yuqueServer: data.yuqueServer
? {
userId: data.yuqueServer.userId,
token: ''
}
: undefined,
feishuServer: data.feishuServer
? {
appId: data.feishuServer.appId,
appSecret: '',
folderToken: data.feishuServer.folderToken
}
: undefined
}));
}

View File

@@ -1,3 +1,6 @@
.react-flow {
overflow: visible;
}
.react-flow__panel.react-flow__attribution {
z-index: 0;
left: 0;

View File

@@ -9,7 +9,10 @@ import type {
OauthLoginProps,
PostLoginProps
} from '@fastgpt/global/support/user/api.d';
import { GetWXLoginQRResponse } from '@fastgpt/global/support/user/login/api.d';
import {
AccountRegisterBody,
GetWXLoginQRResponse
} from '@fastgpt/global/support/user/login/api.d';
export const sendAuthCode = (data: {
username: string;
@@ -33,16 +36,7 @@ export const postRegister = ({
inviterId,
bd_vid,
fastgpt_sem
}: {
username: string;
code: string;
password: string;
inviterId?: string;
bd_vid?: string;
fastgpt_sem?: {
keyword: string;
};
}) =>
}: AccountRegisterBody) =>
POST<ResLogin>(`/proApi/support/user/account/register/emailAndPhone`, {
username,
code,