@vfarcic/dot-ai
Version:
Universal Kubernetes application deployment agent with CLI and MCP interfaces
80 lines • 2.36 kB
TypeScript
/**
* Embedding Service
*
* Optional semantic search enhancement for pattern matching.
* Gracefully falls back to keyword-only search when OpenAI API key is not available.
*/
export interface EmbeddingConfig {
provider?: 'openai';
apiKey?: string;
model?: string;
dimensions?: number;
}
export interface EmbeddingProvider {
generateEmbedding(text: string): Promise<number[]>;
generateEmbeddings(texts: string[]): Promise<number[][]>;
isAvailable(): boolean;
getDimensions(): number;
}
/**
* OpenAI Embedding Provider
* Optional provider for semantic search enhancement
*/
export declare class OpenAIEmbeddingProvider implements EmbeddingProvider {
private client;
private model;
private dimensions;
private available;
constructor(config?: EmbeddingConfig);
generateEmbedding(text: string): Promise<number[]>;
generateEmbeddings(texts: string[]): Promise<number[][]>;
isAvailable(): boolean;
getDimensions(): number;
getModel(): string;
}
/**
* Main Embedding Service
* Provides optional semantic search capabilities with graceful degradation
*/
export declare class EmbeddingService {
private provider;
constructor(config?: EmbeddingConfig);
/**
* Generate embedding for text (optional enhancement)
* Returns null if embeddings not available - caller should handle gracefully
*/
generateEmbedding(text: string): Promise<number[] | null>;
/**
* Generate embeddings for multiple texts (optional enhancement)
* Returns empty array if embeddings not available
*/
generateEmbeddings(texts: string[]): Promise<number[][]>;
/**
* Check if semantic search is available
*/
isAvailable(): boolean;
/**
* Get embedding dimensions (if available)
*/
getDimensions(): number;
/**
* Get status information for debugging/logging
*/
getStatus(): {
available: boolean;
provider: string | null;
model?: string;
dimensions?: number;
reason?: string;
};
/**
* Create searchable text from pattern data
*/
createPatternSearchText(pattern: {
description: string;
triggers: string[];
suggestedResources: string[];
rationale: string;
}): string;
}
//# sourceMappingURL=embedding-service.d.ts.map