@agentkai/browser
Version:
AgentKai的浏览器环境特定实现
91 lines • 2.7 kB
TypeScript
import { EmbeddingProvider, ISearchProvider, Memory, SearchOptions, SearchResult, StorageProvider } from '@agentkai/core';
/**
* 浏览器环境使用的搜索提供者
* 提供基于JavaScript内存实现的向量检索功能,无需依赖外部原生库
*/
export declare class BrowserSearchProvider implements ISearchProvider {
private readonly logger;
private readonly storage;
private readonly embeddingProvider;
private readonly indexName;
private readonly dimensions;
private initialized;
private idToIndex;
private memories;
private currentCount;
/**
* 创建浏览器搜索提供者
* @param indexName 索引名称
* @param embeddingProvider 嵌入向量提供者
* @param storage 存储提供者,用于加载记忆
* @param dimensions 向量维度
*/
constructor(indexName: string, embeddingProvider: EmbeddingProvider, storage: StorageProvider<Memory>, dimensions?: number);
/**
* 确保已初始化
*/
private ensureInitialized;
/**
* 初始化搜索提供者
* 重建本地索引
*/
initialize(): Promise<void>;
/**
* 添加记忆到搜索索引
* @param memory 需要添加的记忆
*/
addMemory(memory: Memory): Promise<void>;
/**
* 更新记忆
* @param memory 更新后的记忆
*/
updateMemory(memory: Memory): Promise<void>;
/**
* 移除记忆
* @param id 记忆ID
*/
removeMemory(id: string): Promise<void>;
/**
* 删除记忆
* @param id 记忆ID
*/
deleteMemory(id: string): Promise<void>;
/**
* 按内容搜索记忆
* @param query 搜索查询文本
* @param options 搜索选项
* @returns 搜索结果
*/
searchByContent(query: string, options?: SearchOptions): Promise<SearchResult>;
/**
* 按向量搜索记忆
* @param vector 搜索向量
* @param options 搜索选项
* @returns 搜索结果
*/
searchByVector(vector: number[], options?: SearchOptions): Promise<SearchResult>;
/**
* 计算相似度并返回排序结果
* @param vector 查询向量
* @param limit 结果数量限制
* @returns 匹配的记忆数组
*/
private computeSimilarities;
/**
* 清空索引
*/
clear(): Promise<void>;
/**
* 计算两个向量的余弦相似度
* @param vecA 向量A
* @param vecB 向量B
* @returns 相似度值(0-1之间)
*/
private cosineSimilarity;
/**
* 重建索引
* 加载所有记忆并重建内存索引
*/
private rebuildIndex;
}
//# sourceMappingURL=BrowserSearchProvider.d.ts.map