Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions packages/service/common/api/type.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
import { FeishuServer, YuqueServer } from '@fastgpt/global/core/dataset/apiDataset';
import {
DeepRagSearchProps,
SearchDatasetDataResponse
} from '../../core/dataset/search/controller';
import { AuthOpenApiLimitProps } from '../../support/openapi/auth';
import { CreateUsageProps, ConcatUsageProps } from '@fastgpt/global/support/wallet/usage/api';

declare global {
var systemApiDatasetHandler: (params: {
type: 'content';
feishuServer?: FeishuServer;
yuqueServer?: YuqueServer;
apiFileId: string;
}) => Promise<{
title?: string;
rawText: string;
}>;
var textCensorHandler: (params: { text: string }) => Promise<{ code?: number; message: string }>;
var deepRagHandler: (data: DeepRagSearchProps) => Promise<SearchDatasetDataResponse>;
var authOpenApiHandler: (data: AuthOpenApiLimitProps) => Promise<AuthOpenApiLimitProps>;
var createUsageHandler: (data: CreateUsageProps) => Promise<void>;
var concatUsageHandler: (data: ConcatUsageProps) => Promise<void>;
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import { POST } from './plusRequest';

export const postTextCensor = (data: { text: string }) =>
POST<{ code?: number; message: string }>('/common/censor/check', data)
global
.textCensorHandler(data)
.then((res) => {
if (res?.code === 5000) {
return Promise.reject(res);
Expand Down
6 changes: 1 addition & 5 deletions packages/service/core/dataset/read.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ import { readRawContentByFileBuffer } from '../../common/file/read/utils';
import { parseFileExtensionFromUrl } from '@fastgpt/global/common/string/tools';
import { APIFileServer, FeishuServer, YuqueServer } from '@fastgpt/global/core/dataset/apiDataset';
import { useApiDatasetRequest } from './apiDataset/api';
import { POST } from '../../common/api/plusRequest';

export const readFileRawTextByUrl = async ({
teamId,
Expand Down Expand Up @@ -168,10 +167,7 @@ export const readApiServerFileContent = async ({
}

if (feishuServer || yuqueServer) {
return POST<{
title?: string;
rawText: string;
}>(`/core/dataset/systemApiDataset`, {
return global.systemApiDatasetHandler({
type: 'content',
feishuServer,
yuqueServer,
Expand Down
4 changes: 1 addition & 3 deletions packages/service/core/dataset/search/controller.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ import { MongoDatasetCollectionTags } from '../tag/schema';
import { readFromSecondary } from '../../../common/mongo/utils';
import { MongoDatasetDataText } from '../data/dataTextSchema';
import { ChatItemType } from '@fastgpt/global/core/chat/type';
import { POST } from '../../../common/api/plusRequest';
import { NodeInputKeyEnum } from '@fastgpt/global/core/workflow/constants';
import { datasetSearchQueryExtension } from './utils';
import type { RerankModelItemType } from '@fastgpt/global/core/ai/model.d';
Expand Down Expand Up @@ -850,5 +849,4 @@ export type DeepRagSearchProps = SearchDatasetDataProps & {
[NodeInputKeyEnum.datasetDeepSearchMaxTimes]?: number;
[NodeInputKeyEnum.datasetDeepSearchBg]?: string;
};
export const deepRagSearch = (data: DeepRagSearchProps) =>
POST<SearchDatasetDataResponse>('/core/dataset/deepRag', data);
export const deepRagSearch = (data: DeepRagSearchProps) => global.deepRagHandler(data);
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,9 @@ import { InteractiveNodeResponseType } from '@fastgpt/global/core/workflow/templ
import { getFileContentFromLinks, getHistoryFileLinks } from '../../tools/readFiles';
import { parseUrlToFileType } from '@fastgpt/global/common/file/tools';
import { FlowNodeTypeEnum } from '@fastgpt/global/core/workflow/node/constant';
import { postTextCensor } from '../../../../../common/api/requestPlusApi';
import { ModelTypeEnum } from '@fastgpt/global/core/ai/model';
import { getDocumentQuotePrompt } from '@fastgpt/global/core/ai/prompt/AIChat';
import { postTextCensor } from '../../../../../core/chat/postTextCensor';

type Response = DispatchNodeResultType<{
[NodeOutputKeyEnum.answerText]: string;
Expand Down
2 changes: 1 addition & 1 deletion packages/service/core/workflow/dispatch/chat/oneapi.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ import type {
} from '@fastgpt/global/core/ai/type.d';
import { formatModelChars2Points } from '../../../../support/wallet/usage/utils';
import type { LLMModelItemType } from '@fastgpt/global/core/ai/model.d';
import { postTextCensor } from '../../../../common/api/requestPlusApi';
import { ChatCompletionRequestMessageRoleEnum } from '@fastgpt/global/core/ai/constants';
import type {
ChatDispatchProps,
Expand Down Expand Up @@ -51,6 +50,7 @@ import { getFileContentFromLinks, getHistoryFileLinks } from '../tools/readFiles
import { parseUrlToFileType } from '@fastgpt/global/common/file/tools';
import { i18nT } from '../../../../../web/i18n/utils';
import { ModelTypeEnum } from '@fastgpt/global/core/ai/model';
import { postTextCensor } from '../../../chat/postTextCensor';

export type ChatProps = ModuleDispatchProps<
AIChatNodeProps & {
Expand Down
4 changes: 1 addition & 3 deletions packages/service/support/openapi/auth.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import { ERROR_ENUM } from '@fastgpt/global/common/error/errorCode';
import { updateApiKeyUsedTime } from './tools';
import { MongoOpenApi } from './schema';
import { POST } from '../../common/api/plusRequest';
import type { OpenApiSchema } from '@fastgpt/global/support/openapi/type';

export type AuthOpenApiLimitProps = { openApi: OpenApiSchema };
Expand All @@ -17,9 +16,8 @@ export async function authOpenApiKey({ apikey }: { apikey: string }) {
}

// auth limit
// @ts-ignore
if (global.feConfigs?.isPlus) {
await POST('/support/openapi/authLimit', {
await global.authOpenApiHandler({
openApi
} as AuthOpenApiLimitProps);
}
Expand Down
5 changes: 2 additions & 3 deletions packages/service/support/wallet/usage/controller.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,13 @@ import { ConcatUsageProps, CreateUsageProps } from '@fastgpt/global/support/wall
import { i18nT } from '../../../../web/i18n/utils';
import { pushConcatBillTask, pushReduceTeamAiPointsTask } from './utils';

import { POST } from '../../../common/api/plusRequest';
import { isFastGPTMainService } from '../../../common/system/constants';

export async function createUsage(data: CreateUsageProps) {
try {
// In FastGPT server
if (isFastGPTMainService) {
await POST('/support/wallet/usage/createUsage', data);
await global.createUsageHandler(data);
} else if (global.reduceAiPointsQueue) {
// In FastGPT pro server
await MongoUsage.create(data);
Expand All @@ -32,7 +31,7 @@ export async function concatUsage(data: ConcatUsageProps) {
try {
// In FastGPT server
if (isFastGPTMainService) {
await POST('/support/wallet/usage/concatUsage', data);
await global.concatUsageHandler(data);
} else if (global.reduceAiPointsQueue) {
const {
teamId,
Expand Down
60 changes: 60 additions & 0 deletions projects/app/src/service/common/system/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,14 @@ import { defaultGroup, defaultTemplateTypes } from '@fastgpt/web/core/workflow/c
import { MongoPluginGroups } from '@fastgpt/service/core/app/plugin/pluginGroupSchema';
import { MongoTemplateTypes } from '@fastgpt/service/core/app/templates/templateTypeSchema';
import { loadSystemModels } from '@fastgpt/service/core/ai/config/utils';
import { FeishuServer, YuqueServer } from '@fastgpt/global/core/dataset/apiDataset';
import { POST } from '@fastgpt/service/common/api/plusRequest';
import {
DeepRagSearchProps,
SearchDatasetDataResponse
} from '@fastgpt/service/core/dataset/search/controller';
import { AuthOpenApiLimitProps } from '@fastgpt/service/support/openapi/auth';
import { ConcatUsageProps, CreateUsageProps } from '@fastgpt/global/support/wallet/usage/api';

export const readConfigData = async (name: string) => {
const splitName = name.split('.');
Expand Down Expand Up @@ -42,6 +50,58 @@ export function initGlobalVariables() {
global.qaQueueLen = global.qaQueueLen ?? 0;
global.vectorQueueLen = global.vectorQueueLen ?? 0;
initHttpAgent();
initPlusRequest();
}

function initPlusRequest() {
function systemApiDatasetHandler({
type,
feishuServer,
yuqueServer,
apiFileId
}: {
type: 'content';
feishuServer?: FeishuServer;
yuqueServer?: YuqueServer;
apiFileId: string;
}) {
return POST<{
title?: string;
rawText: string;
}>(`/core/dataset/systemApiDataset`, {
type,
feishuServer,
yuqueServer,
apiFileId
});
}

function textCensorHandler({ text }: { text: string }) {
return POST<{ code?: number; message: string }>('/common/censor/check', { text });
}

function deepRagHandler(data: DeepRagSearchProps) {
return POST<SearchDatasetDataResponse>('/core/dataset/deepRag', data);
}

function authOpenApiHandler(data: AuthOpenApiLimitProps) {
return POST<AuthOpenApiLimitProps>('/support/openapi/auth', data);
}

function createUsageHandler(data: CreateUsageProps) {
return POST('/support/wallet/usage/createUsage', data);
}

function concatUsageHandler(data: ConcatUsageProps) {
return POST('/support/wallet/usage/concatUsage', data);
}

global.systemApiDatasetHandler = systemApiDatasetHandler;
global.textCensorHandler = textCensorHandler;
global.deepRagHandler = deepRagHandler;
global.authOpenApiHandler = authOpenApiHandler;
global.createUsageHandler = createUsageHandler;
global.concatUsageHandler = concatUsageHandler;
}

/* Init system data(Need to connected db). It only needs to run once */
Expand Down
Loading