Commit 3f72f885 by Archer Committed by GitHub

perf: doc2x plugins (#3162)

parent be59c2f6
...@@ -87,7 +87,3 @@ export const getCommunityCb = async () => { ...@@ -87,7 +87,3 @@ export const getCommunityCb = async () => {
{} {}
); );
}; };
export const getSystemPluginCb = async () => {
return global.systemPluginCb;
};
{ {
"author": "Menghuan1918", "author": "Menghuan1918",
"version": "488", "version": "488",
"name": "Doc2X PDF识别", "name": "PDF识别",
"avatar": "plugins/doc2x", "avatar": "plugins/doc2x",
"intro": "将PDF文件发送至Doc2X进行解析,返回结构化的LaTeX公式的文本(markdown),支持传入String类型的URL或者流程输出中的文件链接变量", "intro": "将PDF文件发送至Doc2X进行解析,返回结构化的LaTeX公式的文本(markdown),支持传入String类型的URL或者流程输出中的文件链接变量",
"inputExplanationUrl": "https://fael3z0zfze.feishu.cn/wiki/Rkc5witXWiJoi5kORd2cofh6nDg?fromScene=spaceOverview", "courseUrl": "https://fael3z0zfze.feishu.cn/wiki/Rkc5witXWiJoi5kORd2cofh6nDg?fromScene=spaceOverview",
"showStatus": true, "showStatus": true,
"weight": 10, "weight": 10,
...@@ -21,8 +21,8 @@ ...@@ -21,8 +21,8 @@
"flowNodeType": "pluginInput", "flowNodeType": "pluginInput",
"showStatus": false, "showStatus": false,
"position": { "position": {
"x": -139.66495007440972, "x": -137.96875104510553,
"y": -90.99689735553712 "y": -90.9968973555371
}, },
"version": "481", "version": "481",
"inputs": [ "inputs": [
...@@ -39,16 +39,19 @@ ...@@ -39,16 +39,19 @@
"list": [] "list": []
}, },
{ {
"renderTypeList": ["reference"], "renderTypeList": ["fileSelect"],
"selectedTypeIndex": 0, "selectedTypeIndex": 0,
"valueType": "any", "valueType": "arrayString",
"canEdit": true, "canEdit": true,
"key": "files", "key": "files",
"label": "files", "label": "files",
"description": "待处理的PDF文件变量或URL地址", "description": "需要处理的PDF地址",
"required": true, "required": true,
"toolDescription": "待处理的PDF文件变量或URL地址", "list": [],
"list": [] "canSelectFile": true,
"canSelectImg": false,
"maxFiles": 14,
"defaultValue": ""
} }
], ],
"outputs": [ "outputs": [
...@@ -61,7 +64,7 @@ ...@@ -61,7 +64,7 @@
}, },
{ {
"id": "url", "id": "url",
"valueType": "any", "valueType": "arrayString",
"key": "files", "key": "files",
"label": "files", "label": "files",
"type": "hidden" "type": "hidden"
...@@ -76,8 +79,8 @@ ...@@ -76,8 +79,8 @@
"flowNodeType": "pluginOutput", "flowNodeType": "pluginOutput",
"showStatus": false, "showStatus": false,
"position": { "position": {
"x": 1808.5347800638815, "x": 1505.494975310334,
"y": -105.67504356429907 "y": -4.14668564643415
}, },
"version": "481", "version": "481",
"inputs": [ "inputs": [
...@@ -92,12 +95,13 @@ ...@@ -92,12 +95,13 @@
}, },
{ {
"renderTypeList": ["reference"], "renderTypeList": ["reference"],
"valueType": "string", "valueType": "object",
"canEdit": true, "canEdit": true,
"key": "failreason", "key": "error",
"label": "failreason", "label": "error",
"description": "文件处理失败原因,由文件名以及报错组成,多个文件之间由横线分隔开,如所有文件处理成功则为空", "description": "",
"value": ["zHG5jJBkXmjB", "yDxzW5CFalGw"] "value": ["zHG5jJBkXmjB", "httpRawResponse"],
"isToolOutput": true
}, },
{ {
"renderTypeList": ["reference"], "renderTypeList": ["reference"],
...@@ -106,7 +110,8 @@ ...@@ -106,7 +110,8 @@
"key": "success", "key": "success",
"label": "success", "label": "success",
"description": "是否全部文件都处理成功,如有没有处理成功的文件,失败原因将会输出在failreason中", "description": "是否全部文件都处理成功,如有没有处理成功的文件,失败原因将会输出在failreason中",
"value": ["zHG5jJBkXmjB", "m6CJJj7GFud5"] "value": ["zHG5jJBkXmjB", "m6CJJj7GFud5"],
"isToolOutput": false
} }
], ],
"outputs": [] "outputs": []
...@@ -119,8 +124,8 @@ ...@@ -119,8 +124,8 @@
"flowNodeType": "httpRequest468", "flowNodeType": "httpRequest468",
"showStatus": true, "showStatus": true,
"position": { "position": {
"x": 1077.7986740892777, "x": 619.0661933308237,
"y": -496.9521622173004 "y": -472.91377894611503
}, },
"version": "481", "version": "481",
"inputs": [ "inputs": [
...@@ -170,7 +175,7 @@ ...@@ -170,7 +175,7 @@
"renderTypeList": ["custom"], "renderTypeList": ["custom"],
"valueType": "number", "valueType": "number",
"label": "", "label": "",
"value": 30, "value": 300,
"min": 5, "min": 5,
"max": 600, "max": 600,
"required": true, "required": true,
...@@ -215,7 +220,7 @@ ...@@ -215,7 +220,7 @@
"key": "system_httpJsonBody", "key": "system_httpJsonBody",
"renderTypeList": ["hidden"], "renderTypeList": ["hidden"],
"valueType": "any", "valueType": "any",
"value": "{\n \"apikey\": \"{{apikey}}\",\n \"files\": \"{{files}}\"}", "value": "{\n \"apikey\": \"{{apikey}}\",\n \"files\": {{files}}\n}",
"label": "", "label": "",
"required": false, "required": false,
"debugLabel": "", "debugLabel": "",
...@@ -273,7 +278,7 @@ ...@@ -273,7 +278,7 @@
}, },
{ {
"renderTypeList": ["reference"], "renderTypeList": ["reference"],
"valueType": "string", "valueType": "arrayString",
"canEdit": true, "canEdit": true,
"key": "files", "key": "files",
"label": "files", "label": "files",
...@@ -299,7 +304,7 @@ ...@@ -299,7 +304,7 @@
"showDefaultValue": true "showDefaultValue": true
}, },
"required": true, "required": true,
"value": ["pMBi7J7vcsqB", "system_text"] "value": [["pluginInput", "url"]]
} }
], ],
"outputs": [ "outputs": [
...@@ -360,109 +365,6 @@ ...@@ -360,109 +365,6 @@
"type": "dynamic", "type": "dynamic",
"key": "success", "key": "success",
"label": "success" "label": "success"
},
{
"id": "yDxzW5CFalGw",
"valueType": "string",
"type": "dynamic",
"key": "failreason",
"label": "failreason"
}
]
},
{
"nodeId": "pMBi7J7vcsqB",
"name": "文本拼接",
"intro": "可对固定或传入的文本进行加工后输出,非字符串类型数据最终会转成字符串类型。",
"avatar": "core/workflow/template/textConcat",
"flowNodeType": "textEditor",
"position": {
"x": 469.8489508985863,
"y": -177.67504356429907
},
"version": "486",
"inputs": [
{
"key": "system_addInputParam",
"renderTypeList": ["addInputParam"],
"valueType": "dynamic",
"label": "",
"required": false,
"description": "workflow:dynamic_input_description_concat",
"customInputConfig": {
"selectValueTypeList": [
"string",
"number",
"boolean",
"object",
"arrayString",
"arrayNumber",
"arrayBoolean",
"arrayObject",
"arrayAny",
"any",
"chatHistory",
"datasetQuote",
"dynamic",
"selectApp",
"selectDataset"
],
"showDescription": false,
"showDefaultValue": false
},
"debugLabel": "",
"toolDescription": ""
},
{
"key": "system_textareaInput",
"renderTypeList": ["textarea"],
"valueType": "string",
"required": true,
"label": "拼接文本",
"placeholder": "workflow:input_variable_list",
"value": "{{files}}",
"debugLabel": "",
"toolDescription": ""
},
{
"renderTypeList": ["reference"],
"valueType": "any",
"canEdit": true,
"key": "files",
"label": "files",
"customInputConfig": {
"selectValueTypeList": [
"string",
"number",
"boolean",
"object",
"arrayString",
"arrayNumber",
"arrayBoolean",
"arrayObject",
"arrayAny",
"any",
"chatHistory",
"datasetQuote",
"dynamic",
"selectApp",
"selectDataset"
],
"showDescription": false,
"showDefaultValue": false
},
"required": true,
"value": ["pluginInput", "url"]
}
],
"outputs": [
{
"id": "system_text",
"key": "system_text",
"label": "workflow:concatenation_result",
"type": "static",
"valueType": "string",
"description": ""
} }
] ]
} }
...@@ -476,14 +378,8 @@ ...@@ -476,14 +378,8 @@
}, },
{ {
"source": "pluginInput", "source": "pluginInput",
"target": "pMBi7J7vcsqB",
"sourceHandle": "pluginInput-source-right",
"targetHandle": "pMBi7J7vcsqB-target-left"
},
{
"source": "pMBi7J7vcsqB",
"target": "zHG5jJBkXmjB", "target": "zHG5jJBkXmjB",
"sourceHandle": "pMBi7J7vcsqB-source-right", "sourceHandle": "pluginInput-source-right",
"targetHandle": "zHG5jJBkXmjB-target-left" "targetHandle": "zHG5jJBkXmjB-target-left"
} }
], ],
......
...@@ -18,7 +18,6 @@ import { ...@@ -18,7 +18,6 @@ import {
textAdaptGptResponse, textAdaptGptResponse,
replaceEditorVariable replaceEditorVariable
} from '@fastgpt/global/core/workflow/runtime/utils'; } from '@fastgpt/global/core/workflow/runtime/utils';
import { getSystemPluginCb } from '../../../../../plugins/register';
import { ContentTypes } from '@fastgpt/global/core/workflow/constants'; import { ContentTypes } from '@fastgpt/global/core/workflow/constants';
import { uploadFileFromBase64Img } from '../../../../common/file/gridfs/controller'; import { uploadFileFromBase64Img } from '../../../../common/file/gridfs/controller';
import { ReadFileBaseUrl } from '@fastgpt/global/common/file/constants'; import { ReadFileBaseUrl } from '@fastgpt/global/common/file/constants';
...@@ -209,7 +208,8 @@ export const dispatchHttp468Request = async (props: HttpRequestProps): Promise<H ...@@ -209,7 +208,8 @@ export const dispatchHttp468Request = async (props: HttpRequestProps): Promise<H
try { try {
const { formatResponse, rawResponse } = await (async () => { const { formatResponse, rawResponse } = await (async () => {
const systemPluginCb = await getSystemPluginCb(); const systemPluginCb = global.systemPluginCb;
console.log(systemPluginCb, '-=', httpReqUrl);
if (systemPluginCb[httpReqUrl]) { if (systemPluginCb[httpReqUrl]) {
const pluginResult = await replaceSystemPluginResponse({ const pluginResult = await replaceSystemPluginResponse({
response: await systemPluginCb[httpReqUrl](requestBody), response: await systemPluginCb[httpReqUrl](requestBody),
......
...@@ -215,6 +215,7 @@ const FieldEditModal = ({ ...@@ -215,6 +215,7 @@ const FieldEditModal = ({
); );
const onSubmitError = useCallback( const onSubmitError = useCallback(
(e: Object) => { (e: Object) => {
console.log('e', e);
for (const item of Object.values(e)) { for (const item of Object.values(e)) {
if (item.message) { if (item.message) {
toast({ toast({
......
...@@ -511,22 +511,14 @@ const InputTypeConfig = ({ ...@@ -511,22 +511,14 @@ const InputTypeConfig = ({
<FormLabel flex={'0 0 132px'} fontWeight={'medium'}> <FormLabel flex={'0 0 132px'} fontWeight={'medium'}>
{t('app:document_upload')} {t('app:document_upload')}
</FormLabel> </FormLabel>
<Switch <Switch {...register('canSelectFile')} />
{...register('canSelectFile', {
required: true
})}
/>
</Flex> </Flex>
<Box w={'full'} minH={'40px'}> <Box w={'full'} minH={'40px'}>
<Flex alignItems={'center'}> <Flex alignItems={'center'}>
<FormLabel flex={'0 0 132px'} fontWeight={'medium'}> <FormLabel flex={'0 0 132px'} fontWeight={'medium'}>
{t('app:image_upload')} {t('app:image_upload')}
</FormLabel> </FormLabel>
<Switch <Switch {...register('canSelectImg')} />
{...register('canSelectImg', {
required: true
})}
/>
</Flex> </Flex>
<Flex color={'myGray.500'}> <Flex color={'myGray.500'}>
<Box fontSize={'xs'}>{t('app:image_upload_tip')}</Box> <Box fontSize={'xs'}>{t('app:image_upload_tip')}</Box>
......
...@@ -115,6 +115,16 @@ const NodeCard = (props: Props) => { ...@@ -115,6 +115,16 @@ const NodeCard = (props: Props) => {
} }
}, },
{ {
onSuccess(res) {
if (!res) return;
// Execute forcibly updates the courseUrl field
onChangeNode({
nodeId,
type: 'attr',
key: 'courseUrl',
value: res?.courseUrl
});
},
manual: false manual: false
} }
); );
......
import { getSystemPlugins } from '@/service/core/app/plugin'; import { getSystemPluginCb, getSystemPlugins } from '@/service/core/app/plugin';
import { initSystemConfig } from '.'; import { initSystemConfig } from '.';
import { createDatasetTrainingMongoWatch } from '@/service/core/dataset/training/utils'; import { createDatasetTrainingMongoWatch } from '@/service/core/dataset/training/utils';
import { MongoSystemConfigs } from '@fastgpt/service/common/system/config/schema'; import { MongoSystemConfigs } from '@fastgpt/service/common/system/config/schema';
......
...@@ -22,6 +22,8 @@ export const getSystemPlugins = async (refresh = false) => { ...@@ -22,6 +22,8 @@ export const getSystemPlugins = async (refresh = false) => {
addLog.info(`Load system plugin successfully: ${global.systemPlugins.length}`); addLog.info(`Load system plugin successfully: ${global.systemPlugins.length}`);
getSystemPluginCb();
return cloneDeep(global.systemPlugins); return cloneDeep(global.systemPlugins);
} catch (error) { } catch (error) {
//@ts-ignore //@ts-ignore
......
...@@ -12,7 +12,7 @@ import { startMongoWatch } from './common/system/volumnMongoWatch'; ...@@ -12,7 +12,7 @@ import { startMongoWatch } from './common/system/volumnMongoWatch';
import { startTrainingQueue } from './core/dataset/training/utils'; import { startTrainingQueue } from './core/dataset/training/utils';
import { systemStartCb } from '@fastgpt/service/common/system/tools'; import { systemStartCb } from '@fastgpt/service/common/system/tools';
import { addLog } from '@fastgpt/service/common/system/log'; import { addLog } from '@fastgpt/service/common/system/log';
import { getSystemPluginCb } from './core/app/plugin'; import { getSystemPlugins } from './core/app/plugin';
/** /**
* This function is equivalent to the entry to the service * This function is equivalent to the entry to the service
...@@ -32,8 +32,9 @@ export function connectToDatabase() { ...@@ -32,8 +32,9 @@ export function connectToDatabase() {
systemStartCb(); systemStartCb();
//init system config;init vector database;init root user //init system config;init vector database;init root user
await Promise.all([getInitConfig(), getSystemPluginCb(), initVectorStore(), initRootUser()]); await Promise.all([getInitConfig(), initVectorStore(), initRootUser()]);
getSystemPlugins();
startMongoWatch(); startMongoWatch();
// cron // cron
startCron(); startCron();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment