/** * Vertex AI Connector * * High-performance connector for Google Cloud Vertex AI * Supports enterprise features, custom models, and batch processing */ /// import { EventEmitter } from "events"; export interface VertexAIConfig { projectId: string; location: string; apiEndpoint?: string; credentials?: any; serviceAccountPath?: string; maxConcurrentRequests?: number; requestTimeout?: number; } export interface VertexModelConfig { name: string; displayName: string; publisher: string; version: string; capabilities: string[]; inputTokenLimit: number; outputTokenLimit: number; supportsBatch: boolean; supportsStreaming: boolean; } export interface VertexRequest { model: string; instances: any[]; parameters?: any; explanations?: boolean; batchSize?: number; timeout?: number; } export interface VertexResponse { predictions: any[]; explanations?: any[]; metadata: { modelVersion: string; latency: number; tokenUsage: { input: number; output: number; total: number; }; cost: number; }; } export declare class VertexAIConnector extends EventEmitter { private logger; private config; private client; private auth; private performance; private cache; private models; private activeRequests; private requestQueue; private metrics; constructor(config: VertexAIConfig); /** * Initialize Vertex AI client */ private initializeVertexAI; /** * Load available models from Vertex AI */ private loadAvailableModels; /** * Make prediction request to Vertex AI */ predict(request: VertexRequest): Promise; /** * Execute the actual Vertex AI request */ private executeRequest; /** * Execute single prediction request */ private executeSingleRequest; /** * Execute batch prediction request */ private executeBatchRequest; /** * Execute multiple requests sequentially */ private executeSequentialRequests; /** * Format content for Vertex AI request */ private formatContent; /** * Calculate cost based on token usage and model */ private calculateCost; /** * Wait for available request slot */ private waitForAvailableSlot; /** * Process queued requests */ private processQueue; /** * Generate cache key for request */ private generateCacheKey; /** * Get available models */ getAvailableModels(): VertexModelConfig[]; /** * Check if model supports capability */ supportsCapability(modelName: string, capability: string): boolean; /** * Get model configuration */ getModelConfig(modelName: string): VertexModelConfig | undefined; /** * Batch predict with automatic chunking */ batchPredict(model: string, instances: any[], parameters?: any, chunkSize?: number): Promise; /** * Stream predictions (if supported by model) */ streamPredict(model: string, instance: any, parameters?: any): AsyncGenerator; /** * Chunk array into smaller arrays */ private chunkArray; /** * Health check for Vertex AI connection */ healthCheck(): Promise<{ status: string; latency: number; error?: string; }>; /** * Get connector metrics */ getMetrics(): { avgLatency: number; successRate: number; activeRequests: number; queuedRequests: number; availableModels: number; cacheStats: import("./cache-manager.js").CacheStats; totalRequests: number; successfulRequests: number; failedRequests: number; totalLatency: number; totalCost: number; batchRequests: number; }; /** * Shutdown connector */ shutdown(): void; } //# sourceMappingURL=vertex-ai-connector.d.ts.map