@helloxiaohu/plugin-mineru 0.1.4 → 0.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/mineru-toolset.strategy.d.ts +25 -0
- package/dist/lib/mineru-toolset.strategy.d.ts.map +1 -1
- package/dist/lib/mineru-toolset.strategy.js +27 -0
- package/dist/lib/mineru.tool.d.ts +1 -0
- package/dist/lib/mineru.tool.d.ts.map +1 -1
- package/dist/lib/mineru.tool.js +35 -8
- package/dist/lib/mineru.toolset.d.ts +1 -0
- package/dist/lib/mineru.toolset.d.ts.map +1 -1
- package/dist/lib/mineru.toolset.js +2 -1
- package/package.json +1 -1
|
@@ -175,6 +175,31 @@ export declare class MinerUToolsetStrategy implements IToolsetStrategy<MinerUToo
|
|
|
175
175
|
};
|
|
176
176
|
};
|
|
177
177
|
};
|
|
178
|
+
returnJson: {
|
|
179
|
+
type: string;
|
|
180
|
+
title: {
|
|
181
|
+
en_US: string;
|
|
182
|
+
zh_Hans: string;
|
|
183
|
+
};
|
|
184
|
+
description: {
|
|
185
|
+
en_US: string;
|
|
186
|
+
zh_Hans: string;
|
|
187
|
+
};
|
|
188
|
+
enum: string[];
|
|
189
|
+
default: string;
|
|
190
|
+
'x-ui': {
|
|
191
|
+
enumLabels: {
|
|
192
|
+
true: {
|
|
193
|
+
en_US: string;
|
|
194
|
+
zh_Hans: string;
|
|
195
|
+
};
|
|
196
|
+
false: {
|
|
197
|
+
en_US: string;
|
|
198
|
+
zh_Hans: string;
|
|
199
|
+
};
|
|
200
|
+
};
|
|
201
|
+
};
|
|
202
|
+
};
|
|
178
203
|
extraFormats: {
|
|
179
204
|
type: string;
|
|
180
205
|
title: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mineru-toolset.strategy.d.ts","sourceRoot":"","sources":["../../src/lib/mineru-toolset.strategy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EACL,cAAc,EACd,gBAAgB,EAEhB,oBAAoB,EACpB,kBAAkB,EACnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAiB,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AASzE,qBAEa,qBAAsB,YAAW,gBAAgB,CAAC,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"mineru-toolset.strategy.d.ts","sourceRoot":"","sources":["../../src/lib/mineru-toolset.strategy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EACL,cAAc,EACd,gBAAgB,EAEhB,oBAAoB,EACpB,kBAAkB,EACnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAiB,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AASzE,qBAEa,qBAAsB,YAAW,gBAAgB,CAAC,mBAAmB,CAAC;IAsO/E,OAAO,CAAC,QAAQ,CAAC,aAAa;IAE9B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAvO/B,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BA4Ca,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA6KjC;IAEF,QAAQ,CAAC,WAAW,yBAMlB;gBAIiB,aAAa,EAAE,aAAa,EAE5B,YAAY,EAAE,yBAAyB;IAG1D,cAAc,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAWvE,MAAM,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,cAAc,CAAC;IAyBlD,WAAW;;;;;;;;;;;;;;;;;;;;CAkBZ"}
|
|
@@ -187,6 +187,31 @@ let MinerUToolsetStrategy = class MinerUToolsetStrategy {
|
|
|
187
187
|
},
|
|
188
188
|
},
|
|
189
189
|
},
|
|
190
|
+
returnJson: {
|
|
191
|
+
type: 'string',
|
|
192
|
+
title: {
|
|
193
|
+
en_US: 'Return JSON',
|
|
194
|
+
zh_Hans: '返回完整 JSON',
|
|
195
|
+
},
|
|
196
|
+
description: {
|
|
197
|
+
en_US: 'Return full JSON payload instead of plain text.',
|
|
198
|
+
zh_Hans: '返回完整 JSON 结构,而非纯文本。',
|
|
199
|
+
},
|
|
200
|
+
enum: ['true', 'false'],
|
|
201
|
+
default: 'false',
|
|
202
|
+
'x-ui': {
|
|
203
|
+
enumLabels: {
|
|
204
|
+
'true': {
|
|
205
|
+
en_US: 'Enabled',
|
|
206
|
+
zh_Hans: '启用',
|
|
207
|
+
},
|
|
208
|
+
'false': {
|
|
209
|
+
en_US: 'Disabled',
|
|
210
|
+
zh_Hans: '禁用',
|
|
211
|
+
},
|
|
212
|
+
},
|
|
213
|
+
},
|
|
214
|
+
},
|
|
190
215
|
extraFormats: {
|
|
191
216
|
type: 'string',
|
|
192
217
|
title: {
|
|
@@ -233,6 +258,7 @@ let MinerUToolsetStrategy = class MinerUToolsetStrategy {
|
|
|
233
258
|
enableTable: creds.enableTable,
|
|
234
259
|
language: creds.language,
|
|
235
260
|
modelVersion: creds.modelVersion,
|
|
261
|
+
returnJson: creds.returnJson,
|
|
236
262
|
configService: this.configService,
|
|
237
263
|
resultParser: this.resultParser,
|
|
238
264
|
};
|
|
@@ -246,6 +272,7 @@ let MinerUToolsetStrategy = class MinerUToolsetStrategy {
|
|
|
246
272
|
enableTable: true,
|
|
247
273
|
language: 'ch',
|
|
248
274
|
modelVersion: 'pipeline',
|
|
275
|
+
returnJson: false,
|
|
249
276
|
}),
|
|
250
277
|
];
|
|
251
278
|
}
|
|
@@ -9,6 +9,7 @@ export interface MinerUToolDefaults {
|
|
|
9
9
|
enableTable?: boolean | string;
|
|
10
10
|
language?: 'en' | 'ch';
|
|
11
11
|
modelVersion?: 'pipeline' | 'vlm';
|
|
12
|
+
returnJson?: boolean | string;
|
|
12
13
|
}
|
|
13
14
|
export declare function buildMinerUTool(configService: ConfigService, resultParser: MinerUResultParserService, options?: MinerUIntegrationOptions, fileSystem?: XpFileSystem, defaults?: MinerUToolDefaults): import("@langchain/core/tools").DynamicStructuredTool<z.ZodObject<{
|
|
14
15
|
doc_url: z.ZodString;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mineru.tool.d.ts","sourceRoot":"","sources":["../../src/lib/mineru.tool.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmB,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAEvE,OAAO,EAAU,wBAAwB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"mineru.tool.d.ts","sourceRoot":"","sources":["../../src/lib/mineru.tool.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmB,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAEvE,OAAO,EAAU,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAI9D,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACjC,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC/B,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,YAAY,CAAC,EAAE,UAAU,GAAG,KAAK,CAAC;IAClC,UAAU,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CAC/B;AA+BD,wBAAgB,eAAe,CAC7B,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,yBAAyB,EACvC,OAAO,CAAC,EAAE,wBAAwB,EAClC,UAAU,CAAC,EAAE,YAAY,EACzB,QAAQ,CAAC,EAAE,kBAAkB;;;;;;;;;;;;;;;;;;;MAsN9B"}
|
package/dist/lib/mineru.tool.js
CHANGED
|
@@ -4,6 +4,21 @@ import { getErrorMessage } from '@xpert-ai/plugin-sdk';
|
|
|
4
4
|
import { z } from 'zod';
|
|
5
5
|
import { MinerUClient } from './mineru.client.js';
|
|
6
6
|
import { MinerU } from './types.js';
|
|
7
|
+
import * as path from 'node:path';
|
|
8
|
+
import { mkdir, writeFile } from 'node:fs/promises';
|
|
9
|
+
function createLocalFileSystem(baseDir) {
|
|
10
|
+
return {
|
|
11
|
+
async writeFile(filePath, content) {
|
|
12
|
+
const resolvedPath = path.isAbsolute(filePath)
|
|
13
|
+
? filePath
|
|
14
|
+
: path.join(baseDir, filePath);
|
|
15
|
+
await mkdir(path.dirname(resolvedPath), { recursive: true });
|
|
16
|
+
const buffer = typeof content === 'string' ? Buffer.from(content) : content;
|
|
17
|
+
await writeFile(resolvedPath, buffer);
|
|
18
|
+
return resolvedPath;
|
|
19
|
+
},
|
|
20
|
+
};
|
|
21
|
+
}
|
|
7
22
|
function normalizeExtraFormats(value) {
|
|
8
23
|
if (!value) {
|
|
9
24
|
return undefined;
|
|
@@ -48,6 +63,7 @@ export function buildMinerUTool(configService, resultParser, options, fileSystem
|
|
|
48
63
|
enableTable: defaults?.enableTable,
|
|
49
64
|
language: defaults?.language,
|
|
50
65
|
modelVersion: defaults?.modelVersion,
|
|
66
|
+
returnJson: defaults?.returnJson,
|
|
51
67
|
},
|
|
52
68
|
});
|
|
53
69
|
const finalIsOcr = defaults?.isOcr === undefined
|
|
@@ -68,6 +84,11 @@ export function buildMinerUTool(configService, resultParser, options, fileSystem
|
|
|
68
84
|
const finalLanguage = defaults?.language || 'ch';
|
|
69
85
|
const finalModelVersion = defaults?.modelVersion || 'pipeline';
|
|
70
86
|
const finalExtraFormats = normalizeExtraFormats(options?.extraFormats);
|
|
87
|
+
const returnJson = defaults?.returnJson === undefined
|
|
88
|
+
? false
|
|
89
|
+
: typeof defaults.returnJson === 'string'
|
|
90
|
+
? defaults.returnJson === 'true'
|
|
91
|
+
: defaults.returnJson === true;
|
|
71
92
|
const effectiveOptions = {
|
|
72
93
|
apiUrl: finalApiUrl,
|
|
73
94
|
apiKey: finalApiKey,
|
|
@@ -101,6 +122,7 @@ export function buildMinerUTool(configService, resultParser, options, fileSystem
|
|
|
101
122
|
extraFormats: finalExtraFormats,
|
|
102
123
|
});
|
|
103
124
|
let parsedResult;
|
|
125
|
+
const writeFileSystem = fileSystem ?? createLocalFileSystem(workspacePath);
|
|
104
126
|
if (mineruClient.serverType === 'self-hosted') {
|
|
105
127
|
const taskResult = mineruClient.getSelfHostedTask(taskId);
|
|
106
128
|
if (!taskResult) {
|
|
@@ -110,7 +132,7 @@ export function buildMinerUTool(configService, resultParser, options, fileSystem
|
|
|
110
132
|
fileUrl: doc_url,
|
|
111
133
|
name: finalFileName,
|
|
112
134
|
folder: workspacePath,
|
|
113
|
-
},
|
|
135
|
+
}, writeFileSystem);
|
|
114
136
|
}
|
|
115
137
|
else {
|
|
116
138
|
const result = await mineruClient.waitForTask(taskId, 5 * 60 * 1000, 5000);
|
|
@@ -119,7 +141,7 @@ export function buildMinerUTool(configService, resultParser, options, fileSystem
|
|
|
119
141
|
fileUrl: doc_url,
|
|
120
142
|
name: finalFileName,
|
|
121
143
|
folder: workspacePath,
|
|
122
|
-
},
|
|
144
|
+
}, writeFileSystem);
|
|
123
145
|
if (fullZipUrl) {
|
|
124
146
|
parsedResult.metadata = parsedResult.metadata ?? {};
|
|
125
147
|
parsedResult.metadata.fullZipUrl = parsedResult.metadata.fullZipUrl ?? fullZipUrl;
|
|
@@ -152,13 +174,18 @@ export function buildMinerUTool(configService, resultParser, options, fileSystem
|
|
|
152
174
|
}
|
|
153
175
|
}
|
|
154
176
|
const markdownContent = parsedResult.chunks?.map((chunk) => chunk.pageContent).join('\n\n') || '';
|
|
177
|
+
const artifact = {
|
|
178
|
+
files: fileArtifacts,
|
|
179
|
+
taskId,
|
|
180
|
+
metadata: parsedResult.metadata,
|
|
181
|
+
};
|
|
182
|
+
const fullPayload = {
|
|
183
|
+
output: markdownContent,
|
|
184
|
+
artifact,
|
|
185
|
+
};
|
|
155
186
|
return [
|
|
156
|
-
markdownContent,
|
|
157
|
-
|
|
158
|
-
files: fileArtifacts,
|
|
159
|
-
taskId,
|
|
160
|
-
metadata: parsedResult.metadata,
|
|
161
|
-
},
|
|
187
|
+
returnJson ? JSON.stringify(fullPayload) : markdownContent,
|
|
188
|
+
artifact,
|
|
162
189
|
];
|
|
163
190
|
}
|
|
164
191
|
catch (error) {
|
|
@@ -14,6 +14,7 @@ export interface MinerUToolsetConfig {
|
|
|
14
14
|
enableTable?: boolean | string;
|
|
15
15
|
language?: 'en' | 'ch';
|
|
16
16
|
modelVersion?: 'pipeline' | 'vlm';
|
|
17
|
+
returnJson?: boolean | string;
|
|
17
18
|
}
|
|
18
19
|
export declare class MinerUToolset extends BuiltinToolset<StructuredToolInterface, MinerUToolsetConfig> {
|
|
19
20
|
private readonly config;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mineru.toolset.d.ts","sourceRoot":"","sources":["../../src/lib/mineru.toolset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAIvE,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACjC,UAAU,CAAC,EAAE,YAAY,CAAC;IAC1B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,YAAY,CAAC,EAAE,yBAAyB,CAAC;IACzC,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACjC,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC/B,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,YAAY,CAAC,EAAE,UAAU,GAAG,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"mineru.toolset.d.ts","sourceRoot":"","sources":["../../src/lib/mineru.toolset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAIvE,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACjC,UAAU,CAAC,EAAE,YAAY,CAAC;IAC1B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,YAAY,CAAC,EAAE,yBAAyB,CAAC;IACzC,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACjC,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC/B,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,YAAY,CAAC,EAAE,UAAU,GAAG,KAAK,CAAC;IAClC,UAAU,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CAC/B;AAED,qBAAa,aAAc,SAAQ,cAAc,CAAC,uBAAuB,EAAE,mBAAmB,CAAC;IAC7F,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;IACpC,KAAK,EAAE,GAAG,EAAE,CAAM;gBAEf,MAAM,EAAE,mBAAmB;IAiBxB,oBAAoB,CAAC,YAAY,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAItE,SAAS,IAAI,OAAO,CAAC,uBAAuB,CAAC,cAAc,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;CAiDzF"}
|
|
@@ -20,7 +20,7 @@ export class MinerUToolset extends BuiltinToolset {
|
|
|
20
20
|
// No validation during authorization phase.
|
|
21
21
|
}
|
|
22
22
|
async initTools() {
|
|
23
|
-
const { configService, resultParser, apiUrl, apiKey, extraFormats, fileSystem, isOcr, enableFormula, enableTable, language, modelVersion, } = this.config;
|
|
23
|
+
const { configService, resultParser, apiUrl, apiKey, extraFormats, fileSystem, isOcr, enableFormula, enableTable, language, modelVersion, returnJson, } = this.config;
|
|
24
24
|
if (!configService || !resultParser) {
|
|
25
25
|
throw new Error('ConfigService and MinerUResultParserService are required');
|
|
26
26
|
}
|
|
@@ -41,6 +41,7 @@ export class MinerUToolset extends BuiltinToolset {
|
|
|
41
41
|
enableTable: finalEnableTable,
|
|
42
42
|
language: finalLanguage,
|
|
43
43
|
modelVersion: finalModelVersion,
|
|
44
|
+
returnJson,
|
|
44
45
|
}),
|
|
45
46
|
];
|
|
46
47
|
return this.tools;
|