luma-mcp 1.3.6 → 1.3.7
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/build/image-processor.d.ts +12 -0
- package/build/image-processor.d.ts.map +1 -1
- package/build/image-processor.js +185 -28
- package/build/image-processor.js.map +1 -1
- package/build/index.js +19 -16
- package/build/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -10,6 +10,10 @@ export declare function validateImageSource(imageSource: string, maxSizeMB?: num
|
|
|
10
10
|
* 将图片转为 base64 Data URL
|
|
11
11
|
*/
|
|
12
12
|
export declare function imageToBase64(imagePath: string): Promise<string>;
|
|
13
|
+
export interface PreparedImageInput {
|
|
14
|
+
imageData: string | string[];
|
|
15
|
+
imageHint?: string;
|
|
16
|
+
}
|
|
13
17
|
/**
|
|
14
18
|
* 将图片转为单张 base64 Data URL
|
|
15
19
|
* 对文本密集场景保留更多细节
|
|
@@ -25,4 +29,12 @@ export declare function imageToBase64Variants(imagePath: string, options?: {
|
|
|
25
29
|
preferText?: boolean;
|
|
26
30
|
maxTiles?: number;
|
|
27
31
|
}): Promise<string[]>;
|
|
32
|
+
/**
|
|
33
|
+
* 准备适合模型理解的图片输入。
|
|
34
|
+
* 多裁剪场景除了返回图片列表,还会补充阅读顺序提示,帮助模型理解每张图的角色。
|
|
35
|
+
*/
|
|
36
|
+
export declare function prepareVisionImageInput(imagePath: string, options?: {
|
|
37
|
+
preferText?: boolean;
|
|
38
|
+
maxTiles?: number;
|
|
39
|
+
}): Promise<PreparedImageInput>;
|
|
28
40
|
//# sourceMappingURL=image-processor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image-processor.d.ts","sourceRoot":"","sources":["../src/image-processor.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"image-processor.d.ts","sourceRoot":"","sources":["../src/image-processor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAuLH;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,MAAM,EACnB,SAAS,GAAE,MAAW,GACrB,OAAO,CAAC,IAAI,CAAC,CAsDf;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAEtE;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAsB,wBAAwB,CAC5C,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,GACjC,OAAO,CAAC,MAAM,CAAC,CAYjB;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GACpD,OAAO,CAAC,MAAM,EAAE,CAAC,CAmEnB;AAED;;;GAGG;AACH,wBAAsB,uBAAuB,CAC3C,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GACpD,OAAO,CAAC,kBAAkB,CAAC,CAY7B"}
|
package/build/image-processor.js
CHANGED
|
@@ -37,6 +37,18 @@ function estimateBytesFromDataUri(input) {
|
|
|
37
37
|
return 0;
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
|
+
// 解码 Data URI,纳入统一的图片预处理流程
|
|
41
|
+
function decodeDataUri(input) {
|
|
42
|
+
const mimeType = ensureSupportedMimeType(getMimeFromDataUri(input));
|
|
43
|
+
const base64 = input.split(",")[1] || "";
|
|
44
|
+
if (!base64) {
|
|
45
|
+
throw new Error("Invalid Data URI: missing base64 payload");
|
|
46
|
+
}
|
|
47
|
+
return {
|
|
48
|
+
buffer: Buffer.from(base64, "base64"),
|
|
49
|
+
mimeType,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
40
52
|
/**
|
|
41
53
|
* 规范化本地图片路径(例如移除前缀符号)
|
|
42
54
|
* 部分客户端使用 "@path/to/file" 引用,需要转为真实路径
|
|
@@ -118,6 +130,9 @@ async function fetchRemoteImage(imageUrl, maxSizeMB = 10) {
|
|
|
118
130
|
* 读取本地或远程图片二进制数据
|
|
119
131
|
*/
|
|
120
132
|
async function loadImageBuffer(imageSource) {
|
|
133
|
+
if (isDataUri(imageSource)) {
|
|
134
|
+
return decodeDataUri(imageSource);
|
|
135
|
+
}
|
|
121
136
|
if (isUrl(imageSource)) {
|
|
122
137
|
return fetchRemoteImage(imageSource);
|
|
123
138
|
}
|
|
@@ -179,9 +194,6 @@ export async function imageToBase64(imagePath) {
|
|
|
179
194
|
export async function imageToBase64WithOptions(imagePath, options) {
|
|
180
195
|
try {
|
|
181
196
|
const normalizedPath = normalizeImageSourcePath(imagePath);
|
|
182
|
-
if (isDataUri(normalizedPath)) {
|
|
183
|
-
return normalizedPath;
|
|
184
|
-
}
|
|
185
197
|
const result = await encodeImageSource(normalizedPath, options);
|
|
186
198
|
return `data:${result.mimeType};base64,${result.base64}`;
|
|
187
199
|
}
|
|
@@ -196,9 +208,6 @@ export async function imageToBase64WithOptions(imagePath, options) {
|
|
|
196
208
|
export async function imageToBase64Variants(imagePath, options) {
|
|
197
209
|
try {
|
|
198
210
|
const normalizedPath = normalizeImageSourcePath(imagePath);
|
|
199
|
-
if (isDataUri(normalizedPath)) {
|
|
200
|
-
return [normalizedPath];
|
|
201
|
-
}
|
|
202
211
|
const { buffer: imageBuffer, mimeType } = await loadImageBuffer(normalizedPath);
|
|
203
212
|
if (mimeType === "image/gif") {
|
|
204
213
|
const full = await encodeBufferToDataUrl(imageBuffer, mimeType, options?.preferText);
|
|
@@ -207,40 +216,47 @@ export async function imageToBase64Variants(imagePath, options) {
|
|
|
207
216
|
const metadata = await sharp(imageBuffer).metadata();
|
|
208
217
|
const width = metadata.width ?? 0;
|
|
209
218
|
const height = metadata.height ?? 0;
|
|
219
|
+
const preferText = await resolvePreferTextMode(imageBuffer, mimeType, options?.preferText);
|
|
210
220
|
if (!width || !height) {
|
|
211
|
-
const full = await encodeBufferToDataUrl(imageBuffer, mimeType,
|
|
221
|
+
const full = await encodeBufferToDataUrl(imageBuffer, mimeType, preferText);
|
|
212
222
|
return [full];
|
|
213
223
|
}
|
|
214
224
|
const shouldSplit = Math.max(width, height) >= 1800 || width * height >= 3500000;
|
|
215
|
-
const full = await encodeBufferToDataUrl(imageBuffer, mimeType,
|
|
225
|
+
const full = await encodeBufferToDataUrl(imageBuffer, mimeType, preferText);
|
|
216
226
|
if (!shouldSplit) {
|
|
217
227
|
return [full];
|
|
218
228
|
}
|
|
219
|
-
const
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
229
|
+
const cropRegions = buildCropRegions(width, height, Math.max(1, options?.maxTiles ?? 5));
|
|
230
|
+
if (cropRegions.length === 0) {
|
|
231
|
+
return [full];
|
|
232
|
+
}
|
|
223
233
|
const tiles = [];
|
|
224
|
-
for (
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
const currentWidth = col === cols - 1 ? width - left : tileWidth;
|
|
229
|
-
const currentHeight = row === rows - 1 ? height - top : tileHeight;
|
|
230
|
-
const tileBuffer = await sharp(imageBuffer)
|
|
231
|
-
.extract({ left, top, width: currentWidth, height: currentHeight })
|
|
232
|
-
.toBuffer();
|
|
233
|
-
const tileDataUrl = await encodeBufferToDataUrl(tileBuffer, mimeType, options?.preferText);
|
|
234
|
-
tiles.push(tileDataUrl);
|
|
235
|
-
}
|
|
234
|
+
for (const region of cropRegions) {
|
|
235
|
+
const tileBuffer = await sharp(imageBuffer).extract(region).toBuffer();
|
|
236
|
+
const tileDataUrl = await encodeBufferToDataUrl(tileBuffer, mimeType, preferText);
|
|
237
|
+
tiles.push(tileDataUrl);
|
|
236
238
|
}
|
|
237
|
-
|
|
238
|
-
return [full, ...tiles].slice(0, maxTiles);
|
|
239
|
+
return [full, ...tiles];
|
|
239
240
|
}
|
|
240
241
|
catch (error) {
|
|
241
242
|
throw new Error(`Failed to process image: ${error instanceof Error ? error.message : "Unknown error"}`);
|
|
242
243
|
}
|
|
243
244
|
}
|
|
245
|
+
/**
|
|
246
|
+
* 准备适合模型理解的图片输入。
|
|
247
|
+
* 多裁剪场景除了返回图片列表,还会补充阅读顺序提示,帮助模型理解每张图的角色。
|
|
248
|
+
*/
|
|
249
|
+
export async function prepareVisionImageInput(imagePath, options) {
|
|
250
|
+
const variants = await imageToBase64Variants(imagePath, options);
|
|
251
|
+
if (variants.length <= 1) {
|
|
252
|
+
return { imageData: variants[0] };
|
|
253
|
+
}
|
|
254
|
+
const metadataHint = buildImageSetHint(variants.length - 1, imagePath, options);
|
|
255
|
+
return {
|
|
256
|
+
imageData: variants,
|
|
257
|
+
imageHint: metadataHint,
|
|
258
|
+
};
|
|
259
|
+
}
|
|
244
260
|
/**
|
|
245
261
|
* 统一处理图片来源并编码为 base64
|
|
246
262
|
*/
|
|
@@ -254,12 +270,13 @@ async function encodeImageSource(normalizedPath, options) {
|
|
|
254
270
|
async function encodeLocalImage(imageBuffer, mimeType, options) {
|
|
255
271
|
let buffer = imageBuffer;
|
|
256
272
|
let outputMimeType = mimeType;
|
|
273
|
+
const preferText = await resolvePreferTextMode(imageBuffer, mimeType, options?.preferText);
|
|
257
274
|
if (buffer.length > 2 * 1024 * 1024) {
|
|
258
275
|
logger.info("Compressing large image", {
|
|
259
276
|
originalSize: `${(buffer.length / (1024 * 1024)).toFixed(2)}MB`,
|
|
260
|
-
preferText
|
|
277
|
+
preferText,
|
|
261
278
|
});
|
|
262
|
-
const compressed = await compressImage(buffer, outputMimeType,
|
|
279
|
+
const compressed = await compressImage(buffer, outputMimeType, preferText);
|
|
263
280
|
buffer = compressed.buffer;
|
|
264
281
|
outputMimeType = compressed.mimeType;
|
|
265
282
|
}
|
|
@@ -310,4 +327,144 @@ async function compressImage(imageBuffer, inputMimeType, preferText) {
|
|
|
310
327
|
.toBuffer();
|
|
311
328
|
return { buffer, mimeType: "image/jpeg" };
|
|
312
329
|
}
|
|
330
|
+
/**
|
|
331
|
+
* 解析最终是否启用文本优先处理。
|
|
332
|
+
* - 显式传入 true / false 时尊重调用方
|
|
333
|
+
* - 未显式指定时,根据图片尺寸、长宽比和格式自动判断
|
|
334
|
+
*/
|
|
335
|
+
async function resolvePreferTextMode(imageBuffer, mimeType, preferText) {
|
|
336
|
+
if (preferText !== undefined) {
|
|
337
|
+
return preferText;
|
|
338
|
+
}
|
|
339
|
+
return inferTextHeavyFromImage(imageBuffer, mimeType);
|
|
340
|
+
}
|
|
341
|
+
/**
|
|
342
|
+
* 根据图片自身特征推断是否更适合文本优先处理。
|
|
343
|
+
* 这里保持保守,只在典型长图、截图和高分辨率文档图上自动启用。
|
|
344
|
+
*/
|
|
345
|
+
async function inferTextHeavyFromImage(imageBuffer, mimeType) {
|
|
346
|
+
if (mimeType === "image/gif") {
|
|
347
|
+
return false;
|
|
348
|
+
}
|
|
349
|
+
try {
|
|
350
|
+
const metadata = await sharp(imageBuffer).metadata();
|
|
351
|
+
const width = metadata.width ?? 0;
|
|
352
|
+
const height = metadata.height ?? 0;
|
|
353
|
+
if (!width || !height) {
|
|
354
|
+
return mimeType === "image/png";
|
|
355
|
+
}
|
|
356
|
+
const longSide = Math.max(width, height);
|
|
357
|
+
const shortSide = Math.min(width, height);
|
|
358
|
+
const aspectRatio = shortSide > 0 ? longSide / shortSide : 1;
|
|
359
|
+
const pixelCount = width * height;
|
|
360
|
+
const screenshotLikeMime = mimeType === "image/png" || mimeType === "image/webp";
|
|
361
|
+
if (aspectRatio >= 2.2 && longSide >= 1400) {
|
|
362
|
+
return true;
|
|
363
|
+
}
|
|
364
|
+
if (screenshotLikeMime && pixelCount >= 1_200_000 && shortSide >= 700) {
|
|
365
|
+
return true;
|
|
366
|
+
}
|
|
367
|
+
if (pixelCount >= 2_800_000 && shortSide >= 900) {
|
|
368
|
+
return true;
|
|
369
|
+
}
|
|
370
|
+
return false;
|
|
371
|
+
}
|
|
372
|
+
catch {
|
|
373
|
+
return mimeType === "image/png";
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
/**
|
|
377
|
+
* 为长图、宽图和接近正方形的大图生成自适应裁剪区域。
|
|
378
|
+
* - 长图优先按纵向条带切分
|
|
379
|
+
* - 宽图优先按横向条带切分
|
|
380
|
+
* - 近似正方形的大图使用 2x2 网格
|
|
381
|
+
* - 裁剪之间保留少量重叠,减少文字落在边界处被截断
|
|
382
|
+
*/
|
|
383
|
+
function buildCropRegions(width, height, maxTiles) {
|
|
384
|
+
const extraTiles = Math.max(0, maxTiles - 1);
|
|
385
|
+
if (extraTiles === 0) {
|
|
386
|
+
return [];
|
|
387
|
+
}
|
|
388
|
+
const aspectRatio = width / height;
|
|
389
|
+
let rows = 1;
|
|
390
|
+
let cols = 1;
|
|
391
|
+
if (height / width >= 1.6) {
|
|
392
|
+
rows = Math.min(extraTiles, Math.max(2, Math.min(4, Math.ceil(height / width))));
|
|
393
|
+
}
|
|
394
|
+
else if (width / height >= 1.6) {
|
|
395
|
+
cols = Math.min(extraTiles, Math.max(2, Math.min(4, Math.ceil(width / height))));
|
|
396
|
+
}
|
|
397
|
+
else {
|
|
398
|
+
if (extraTiles >= 4) {
|
|
399
|
+
rows = 2;
|
|
400
|
+
cols = 2;
|
|
401
|
+
}
|
|
402
|
+
else if (extraTiles === 3) {
|
|
403
|
+
if (aspectRatio >= 1) {
|
|
404
|
+
cols = 3;
|
|
405
|
+
}
|
|
406
|
+
else {
|
|
407
|
+
rows = 3;
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
else if (extraTiles === 2) {
|
|
411
|
+
if (aspectRatio >= 1) {
|
|
412
|
+
cols = 2;
|
|
413
|
+
}
|
|
414
|
+
else {
|
|
415
|
+
rows = 2;
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
const overlapX = cols > 1 ? Math.min(96, Math.floor(width * 0.06)) : 0;
|
|
420
|
+
const overlapY = rows > 1 ? Math.min(96, Math.floor(height * 0.06)) : 0;
|
|
421
|
+
const baseWidth = cols > 1 ? Math.ceil((width + overlapX * (cols - 1)) / cols) : width;
|
|
422
|
+
const baseHeight = rows > 1 ? Math.ceil((height + overlapY * (rows - 1)) / rows) : height;
|
|
423
|
+
const stepX = cols > 1 ? baseWidth - overlapX : width;
|
|
424
|
+
const stepY = rows > 1 ? baseHeight - overlapY : height;
|
|
425
|
+
const regions = [];
|
|
426
|
+
for (let row = 0; row < rows; row += 1) {
|
|
427
|
+
for (let col = 0; col < cols; col += 1) {
|
|
428
|
+
if (regions.length >= extraTiles) {
|
|
429
|
+
return regions;
|
|
430
|
+
}
|
|
431
|
+
const left = cols > 1 ? Math.min(col * stepX, Math.max(0, width - baseWidth)) : 0;
|
|
432
|
+
const top = rows > 1 ? Math.min(row * stepY, Math.max(0, height - baseHeight)) : 0;
|
|
433
|
+
regions.push({
|
|
434
|
+
left,
|
|
435
|
+
top,
|
|
436
|
+
width: Math.min(baseWidth, width - left),
|
|
437
|
+
height: Math.min(baseHeight, height - top),
|
|
438
|
+
});
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
return regions;
|
|
442
|
+
}
|
|
443
|
+
/**
|
|
444
|
+
* 为多图输入生成阅读顺序提示。
|
|
445
|
+
* 这里不暴露本地路径,只说明第 1 张为总览,其余图片按阅读方向排列。
|
|
446
|
+
*/
|
|
447
|
+
function buildImageSetHint(tileCount, imagePath, options) {
|
|
448
|
+
const normalizedPath = normalizeImageSourcePath(imagePath);
|
|
449
|
+
const isData = isDataUri(normalizedPath);
|
|
450
|
+
const sourceKind = isData
|
|
451
|
+
? "pasted image"
|
|
452
|
+
: isUrl(normalizedPath)
|
|
453
|
+
? "remote image"
|
|
454
|
+
: "local image";
|
|
455
|
+
const labels = Array.from({ length: tileCount }, (_, index) => {
|
|
456
|
+
const position = index + 2;
|
|
457
|
+
return `image ${position} is a zoomed crop in reading order`;
|
|
458
|
+
});
|
|
459
|
+
const detailHint = options?.preferText
|
|
460
|
+
? "These crops preserve small text and dense details."
|
|
461
|
+
: "These crops provide localized detail views.";
|
|
462
|
+
return [
|
|
463
|
+
`Image set note: image 1 is the full overview of the ${sourceKind}.`,
|
|
464
|
+
`Images 2-${tileCount + 1} are ordered detail crops generated from the same image.`,
|
|
465
|
+
"Read them as a sequence of supporting close-ups after understanding the overview.",
|
|
466
|
+
detailHint,
|
|
467
|
+
`Per-image role: ${labels.join("; ")}.`,
|
|
468
|
+
].join(" ");
|
|
469
|
+
}
|
|
313
470
|
//# sourceMappingURL=image-processor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image-processor.js","sourceRoot":"","sources":["../src/image-processor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"image-processor.js","sourceRoot":"","sources":["../src/image-processor.ts"],"names":[],"mappings":"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"}
|
package/build/index.js
CHANGED
|
@@ -15,7 +15,7 @@ import { SiliconFlowClient } from "./siliconflow-client.js";
|
|
|
15
15
|
import { QwenClient } from "./qwen-client.js";
|
|
16
16
|
import { VolcengineClient } from "./volcengine-client.js";
|
|
17
17
|
import { HunyuanClient } from "./hunyuan-client.js";
|
|
18
|
-
import { imageToBase64WithOptions,
|
|
18
|
+
import { imageToBase64WithOptions, prepareVisionImageInput, validateImageSource, } from "./image-processor.js";
|
|
19
19
|
import { withRetry, createSuccessResponse, createErrorResponse, } from "./utils/helpers.js";
|
|
20
20
|
/**
|
|
21
21
|
* Default base vision prompt used when BASE_VISION_PROMPT is not set.
|
|
@@ -71,15 +71,16 @@ function shouldPreferTextProcessing(prompt) {
|
|
|
71
71
|
* 根据配置决定输出单图还是多裁剪结果
|
|
72
72
|
*/
|
|
73
73
|
async function prepareImageInput(imageSource, prompt, config) {
|
|
74
|
-
const preferText = shouldPreferTextProcessing(prompt);
|
|
74
|
+
const preferText = shouldPreferTextProcessing(prompt) ? true : undefined;
|
|
75
75
|
if (config.multiCrop) {
|
|
76
|
-
|
|
76
|
+
return prepareVisionImageInput(imageSource, {
|
|
77
77
|
preferText,
|
|
78
78
|
maxTiles: config.multiCropMaxTiles,
|
|
79
79
|
});
|
|
80
|
-
return variants.length === 1 ? variants[0] : variants;
|
|
81
80
|
}
|
|
82
|
-
return
|
|
81
|
+
return {
|
|
82
|
+
imageData: await imageToBase64WithOptions(imageSource, { preferText }),
|
|
83
|
+
};
|
|
83
84
|
}
|
|
84
85
|
/**
|
|
85
86
|
* 创建 MCP 服务器
|
|
@@ -121,15 +122,8 @@ async function createServer() {
|
|
|
121
122
|
tools: {},
|
|
122
123
|
},
|
|
123
124
|
});
|
|
124
|
-
//
|
|
125
|
-
const analyzeWithRetry = withRetry(async (
|
|
126
|
-
// 1. 验证图片来源
|
|
127
|
-
await validateImageSource(imageSource);
|
|
128
|
-
// 2. 处理图片(单图或多裁剪)
|
|
129
|
-
const preparedImageInput = await prepareImageInput(imageSource, prompt, config);
|
|
130
|
-
// 3. Build full prompt from base vision prompt and user prompt
|
|
131
|
-
const fullPrompt = buildFullPrompt(prompt, baseVisionPrompt);
|
|
132
|
-
// 4. 调用视觉模型分析图片
|
|
125
|
+
// 只对模型调用做重试,避免远程下载和图片裁剪被重复执行
|
|
126
|
+
const analyzeWithRetry = withRetry(async (preparedImageInput, fullPrompt) => {
|
|
133
127
|
return visionClient.analyzeImage(preparedImageInput, fullPrompt, config.enableThinking);
|
|
134
128
|
}, 2, // 最多重试2次
|
|
135
129
|
1000 // 初始延补1秒
|
|
@@ -160,8 +154,17 @@ async function createServer() {
|
|
|
160
154
|
prompt,
|
|
161
155
|
preferText: shouldPreferTextProcessing(prompt),
|
|
162
156
|
});
|
|
163
|
-
//
|
|
164
|
-
|
|
157
|
+
// 1. 验证图片来源
|
|
158
|
+
await validateImageSource(params.image_source);
|
|
159
|
+
// 2. 处理图片(单图或多裁剪)
|
|
160
|
+
const preparedImageInput = await prepareImageInput(params.image_source, prompt, config);
|
|
161
|
+
// 3. Build full prompt from base vision prompt and user prompt
|
|
162
|
+
const promptWithImageHint = preparedImageInput.imageHint
|
|
163
|
+
? `${prompt}\n\n补充说明:${preparedImageInput.imageHint}`
|
|
164
|
+
: prompt;
|
|
165
|
+
const fullPrompt = buildFullPrompt(promptWithImageHint, baseVisionPrompt);
|
|
166
|
+
// 4. 只重试模型调用,避免重复处理大图
|
|
167
|
+
const result = await analyzeWithRetry(preparedImageInput.imageData, fullPrompt);
|
|
165
168
|
logger.info("Image analysis completed successfully");
|
|
166
169
|
return createSuccessResponse(result);
|
|
167
170
|
}
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;GAGG;AAEH,wCAAwC;AACxC,OAAO,EAAE,uBAAuB,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AACpE,uBAAuB,EAAE,CAAC;AAE1B,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EACL,wBAAwB,EACxB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
{
|
|
2
2
|
"name": "luma-mcp",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.7",
|
|
4
4
|
"description": "Multi-model vision understanding MCP server. Supports GLM-4.6V (Zhipu), DeepSeek-OCR (SiliconFlow - Free), Qwen3-VL-Flash (Aliyun), and Doubao-Seed-1.6 (Volcengine)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"files": [
|