pulse-ai-utils
Version:
Utility functions and helpers for AI-powered applications
76 lines (75 loc) • 2.07 kB
TypeScript
export interface VectorSearchOptions {
query: string;
embedding?: number[];
limit?: number;
threshold?: number;
filters?: {
type?: string;
source?: string;
area?: string;
region?: string;
dateFrom?: string;
dateTo?: string;
seen?: boolean;
};
lat?: number;
lng?: number;
radius?: number;
}
export interface ContentSearchResult {
id: string;
type: string;
title: string;
source: string | null;
source_url: string | null;
image_url: string | null;
data: any;
seen: boolean;
rank: number | null;
content_date: string | null;
similarity: number;
}
export interface ChunkSearchResult {
content_id: string;
chunk_id: string;
chunk_index: number;
chunk_text: string;
metadata: any;
similarity: number;
}
/**
* Improved search type detection logic
*/
declare function detectSearchType(query: string): string;
/**
* Search content using vector similarity with improved type detection
*/
export declare function searchContent(options: VectorSearchOptions): Promise<ContentSearchResult[]>;
/**
* Search content chunks for longer documents
*/
export declare function searchContentChunks(query: string, limit?: number, threshold?: number): Promise<ChunkSearchResult[]>;
/**
* Hybrid search combining vector and full-text search
*/
export declare function hybridSearch(query: string, options?: {
vectorWeight?: number;
textWeight?: number;
limit?: number;
filters?: VectorSearchOptions['filters'];
lat?: number;
lng?: number;
radius?: number;
}): Promise<ContentSearchResult[]>;
/**
* Get similar content based on an existing content ID
*/
export declare function findSimilarContent(contentId: string, limit?: number): Promise<ContentSearchResult[]>;
/**
* Update content metadata (seen, rank) after user interaction
*/
export declare function updateContentMetadata(contentId: string, updates: {
seen?: boolean;
rank?: number;
}): Promise<void>;
export { detectSearchType };