pulse-ai-utils
Version:
Utility functions and helpers for AI-powered applications
76 lines (75 loc) • 2.18 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;
};
includeAdjacent?: boolean;
}
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;
primary_area?: string;
applicable_areas?: string[];
area_relevance_matrix?: Record<string, number>;
similarity: number;
area_relevance?: 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 adjacent area support
*/
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 with adjacent area support
*/
export declare function hybridSearch(query: string, options?: {
vectorWeight?: number;
textWeight?: number;
limit?: number;
filters?: VectorSearchOptions['filters'];
includeAdjacent?: boolean;
}): 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 };