optivise
Version:
Optivise - The Ultimate Optimizely Development Assistant with AI-powered features, zero-config setup, and comprehensive development support
89 lines • 2.36 kB
TypeScript
/**
* ChromaDB Integration Service
* Manages vector database operations for Optimizely documentation storage
*/
export interface DocumentChunk {
id: string;
content: string;
metadata: {
product: string;
url: string;
title: string;
section?: string;
lastUpdated: string;
contentType: 'documentation' | 'tutorial' | 'api' | 'example';
tags?: string[];
};
}
export interface SearchResult {
id: string;
content: string;
metadata: DocumentChunk['metadata'];
similarity: number;
}
export interface ChromaConfig {
host?: string;
port?: number;
ssl?: boolean;
headers?: Record<string, string>;
}
export declare class ChromaDBService {
private client;
private collections;
private config;
private breaker;
private static readonly COLLECTIONS;
constructor(config?: ChromaConfig);
/**
* Initialize ChromaDB client and collections
*/
initialize(): Promise<boolean>;
/**
* Initialize collections for each Optimizely product
*/
private initializeCollections;
/**
* Add document chunks to the appropriate collection
*/
addDocuments(documents: DocumentChunk[]): Promise<boolean>;
/**
* Search for similar documents across all collections or specific product
*/
searchDocuments(query: string, options?: {
product?: string;
limit?: number;
threshold?: number;
contentTypes?: string[];
}): Promise<SearchResult[]>;
/**
* Get collection statistics
*/
getCollectionStats(): Promise<Record<string, any>>;
/**
* Delete documents by IDs
*/
deleteDocuments(ids: string[], product?: string): Promise<boolean>;
/**
* Clear all documents from a collection
*/
clearCollection(product: string): Promise<boolean>;
/**
* Get collection name for a product
*/
private getCollectionName;
/**
* Check if ChromaDB is available
*/
isAvailable(): boolean;
getCircuitState(): 'closed' | 'open' | 'half-open';
/**
* Test ChromaDB connection
*/
testConnection(): Promise<boolean>;
/**
* Cleanup resources
*/
cleanup(): Promise<void>;
}
export declare const chromaDBService: ChromaDBService;
//# sourceMappingURL=chromadb-client.d.ts.map