SuperAPI AI 工具集

vector-search

数据与分析

查看项目

更新于 10-15 19:49

技能介绍

用途:为 NodeJS-Starter-V1 的 Supabase/PostgreSQL 技术栈提供向量检索能力,涵盖嵌入生成、相似度查询、混合搜索、索引与分块策略。项目内有两套体系:Memory Store(src/memory/store.py,表 domain_memories,用于智能体领域知识)与 RAG Pipeline(src/rag/storage.py,表 document_chunks,用于文档检索),共用 src/memory/embeddings.py 的 EmbeddingProvider 抽象。

主要能力:嵌入提供方包括 OpenAI text-embedding-3-small(1536 维)、Ollama nomic-embed-text(768 维)、测试用 Simple 哈希实现,由 get_embedding_provider() 按 OPENAI_API_KEY、ANTHROPIC_API_KEY 顺序选择。API 路由有 /rag/search(向量、混合或关键词)、/rag/upload(文档入库与嵌入)、/api/search(tsvector 全文检索)。相似度搜索经 PostgreSQL RPC find_similar_memories,支持阈值与域/用户过滤;混合搜索经 RPC hybrid_search,默认向量 0.6、关键词 0.4。索引可用 IVFFlat(小于 1 万行)或 HNSW(1 万行以上),距离函数使用 cosine(vector_cosine_ops)。

使用方式:嵌入统一走 EmbeddingProvider,禁止直接调用 OpenAI/Ollama;相似度在 PostgreSQL 服务端计算;分块策略有 FIXED_SIZE、SEMANTIC、RECURSIVE、PARENT_CHILD、CODE_AWARE,默认 PARENT_CHILD(子块 512、父块 2048)并设 chunk_overlap=50。

适用场景:新增语义搜索数据、修改嵌入生成逻辑、最近邻查询、调优搜索相关性(阈值、权重、重排序)、新增嵌入提供方。

限制:同表向量维度必须一致(项目统一 1536 维);需配置相似度阈值避免噪声;大批量数据应提升 ivfflat.probes 或迁移 HNSW;查询嵌入建议缓存;结果仪表盘、纯关键词全文检索、搜索指标埋点与查询日志分别由 dashboard-patterns、PostgreSQL tsvector、metrics-collector、structured-logging 处理。