@bramato/openrouter-mock-generator
Version:
AI-powered mock data generator using OpenRouter API with JSON mode support
117 lines • 3.39 kB
TypeScript
/**
* Microservizio per analizzare e determinare il tipo di elaborazione per le immagini
*/
import { ImageUrlInfo } from './image-url-extractor';
import { ImageDescription } from './description-generator';
export interface ProcessingPlan {
imageId: string;
processingType: 'generate' | 'resize' | 'crop' | 'reuse';
sourceImageId?: string;
targetDimensions: {
width: number;
height: number;
};
cropRegion?: {
x: number;
y: number;
width: number;
height: number;
};
description: ImageDescription;
priority: number;
estimatedCost: number;
}
export interface ProcessingGroup {
masterImageId: string;
description: ImageDescription;
targetDimensions: {
width: number;
height: number;
};
variants: ProcessingPlan[];
totalCost: number;
}
export interface OptimizationResult {
groups: ProcessingGroup[];
totalImages: number;
generatedImages: number;
resizedImages: number;
croppedImages: number;
reusedImages: number;
estimatedSavings: number;
}
export declare class ImageProcessingAnalyzer {
private static readonly SIMILARITY_THRESHOLD;
private static readonly MIN_RESIZE_RATIO;
private static readonly MAX_RESIZE_RATIO;
private static readonly CROP_EFFICIENCY_THRESHOLD;
/**
* Analizza e crea un piano di elaborazione ottimizzato
*/
static createProcessingPlan(images: ImageUrlInfo[], descriptions: Map<string, ImageDescription>): OptimizationResult;
/**
* Raggruppa immagini per similarità di contenuto
*/
private static groupBySimilarity;
/**
* Calcola similarità tra descrizioni
*/
private static calculateDescriptionSimilarity;
/**
* Calcola similarità tra contesti
*/
private static calculateContextSimilarity;
/**
* Calcola similarità tra stringhe
*/
private static calculateStringSimilarity;
/**
* Calcola distanza di Levenshtein
*/
private static levenshteinDistance;
/**
* Ottimizza un gruppo di immagini simili
*/
private static optimizeGroup;
/**
* Seleziona l'immagine master da un gruppo
*/
private static selectMasterImage;
/**
* Crea piano per una variante basata sull'immagine master
*/
private static createVariantPlan;
/**
* Verifica se un'immagine può essere ritagliata efficacemente
*/
private static canCropEfficiently;
/**
* Calcola ritaglio ottimale
*/
private static calculateOptimalCrop;
/**
* Calcola priorità di elaborazione
*/
private static calculatePriority;
/**
* Calcola risultato di ottimizzazione
*/
private static calculateOptimizationResult;
/**
* Ordina gruppi per priorità di elaborazione
*/
static sortGroupsByPriority(groups: ProcessingGroup[]): ProcessingGroup[];
/**
* Filtra piani per tipo di elaborazione
*/
static filterPlansByType(groups: ProcessingGroup[], type: ProcessingPlan['processingType']): ProcessingPlan[];
/**
* Statistiche di ottimizzazione
*/
static getOptimizationStats(result: OptimizationResult): {
summary: string;
breakdown: Record<string, number>;
efficiencyScore: number;
};
}
//# sourceMappingURL=image-processing-analyzer.d.ts.map