学习笔记 · Obsidian

检索、存储、图数据库与缓存供应商

LangChainLangGraphPython

原则

Vector store、retriever、chat history、LangGraph checkpoint/store 和 LLM cache 有不同的一致性和保留周期,不应因为同一供应商都支持就共用表/集合或生命周期。例如 checkpoint 要支持并发恢复与幂等,semantic cache 允许近似命中但会带来跨租户泄漏风险,vector index 则必须绑定 embedding schema。

组件覆盖

Provider包/组件关键边界
Aerospikelanggraph-checkpoint-aerospike, langgraph-store-aerospikeprovider 页聚焦 checkpointer/store,非通用 vector store;需验证索引、TTL、事务和批操作
Astra DBlangchain-astradb; VectorStore、LLM/Semantic Cache、Loader、Retriever、Store/ByteStoreapplication token 与 endpoint 应按环境/租户隔离;semantic cache 必须纳入数据分类
Chromalangchain-chroma; Chroma、SelfQueryRetriever本地原型与服务化部署的持久性/备份不同;metadata filter 需同样做租户强制
CockroachDBlangchain-cockroachdb; async vector store、hybrid search、chat history、checkpointer页面特别覆盖 row-level TTL、性能与多租户;要设计连接池、索引和分布式事务边界
CrateDBlangchain-cratedb; vector store、loader、chat history、full/semantic cache搜索与会话/缓存的表结构与保留期必须分开;防止 cache 跨用户命中
Elasticsearchlangchain-elasticsearch; Embeddings、Store/Retriever、LLM/embedding cache、ByteStore、DB chain映射、dense/sparse 字段、索引别名和 refresh 策略是 schema;生成查询的 chain 需限制索引与查询复杂度
Graph RAGlangchain-graph-retriever; GraphRetriever需明确图边、遍历深度、去重与访问控制;不以图遍历替代业务权限
Kùzulangchain-kuzu; KuzuGraph、KuzuQAChain本地图数据库的文件生命周期、并发写和生成查询必须单独验证
Memgraphlangchain-memgraph; MemgraphQAChain、graph、toolkit自然语言到查询/工具为高风险路径;只授予只读、限量、限时查询
MetalMetalRetriever + metal_sdk页面是简短旧式指南,上线前必须重新核对 SDK 维护状态和 API 契约
Milvuslangchain-milvus; Milvus vector store维度、metric/index type、partition/collection、一致性级别和 alias 切换需显式化
MindsDBprovider 级 LangChain AI engine 导航页面未给出具体 LangChain Python 类;部署/微调契约需回到 MindsDB 文档并 POC
MongoDBlangchain-mongodb; MongoDBCacheprovider 页将自管 cache 与 Atlas 能力分开;连接串、TTL index 和字段加密需管理
MongoDB Atlasvector/full-text/hybrid retrievers、LLM/semantic caches需事先建立对应搜索索引;filter 必须强制 tenant,不接受模型直接传入任意 pipeline
MotörheadRust memory server,增量摘要页面只指向外部服务启动;需核对项目活跃度、租户隔离、摘要丢失性和数据删除
Neo4jlangchain-neo4j; Neo4jVector、GraphCypherQAChain/Graph、SaverCypher 生成应用只读账户、allowlist、查询超时/行数上限;vector 与 graph checkpoint 分离
Oracle AI Vector Searchlangchain-oracledb; loader/splitter/in-DB embeddings/summary/OracleVS需 Oracle DB、ONNX 模型与可选第三方凭据;数据库 provider 无需外部凭据,三方 provider 则必须存储 credential
Pineconelangchain-pinecone; dense/sparse vector store、sparse embeddings、self-query索引 dimension/metric、namespace 与 metadata filter 必须绑定;dense/sparse hybrid 要校准权重
Qdrantlangchain-qdrant; FastEmbedSparse、SparseEmbeddings、QdrantVectorStorecollection 配置要区分 dense/sparse/multi-vector;payload filter 强制租户条件
Redislangchain-redis; standard/semantic cache、vector store/retrieverstandalone/sentinel/cluster URL 契约不同;需 TTL、key prefix、内存策略与多租户隔离
Remembrall托管长期记忆/RAG/观测平台provider 页只给出登录/API key,未提供详细 Python 契约;数据保留、删除和出境需先评审
Weaviatelangchain-weaviate; WeaviateVectorStorecollection schema、vectorizer 是外置还是服务端生成、hybrid alpha 与 tenant 必须固定

数据与一致性清单

  • 每条记录保存 tenant、source ID/version、chunk ID、embedding model/revision/dimension、ingestion timestamp;删除操作能追溯到所有派生向量。
  • 索引创建、数据回填、alias 切换和回滚是一个发布流程,不在应用启动时隐式改 schema。
  • semantic cache key 包含 tenant、权限摘要、model/prompt/tool 版本和语言;对敏感回答、工具副作用和时效数据默认禁用缓存。
  • chat history/checkpoint 按会话和 tenant 隔离,定义 TTL、忘记/删除流程、并发版本号与恢复语义。

性能验证

用真实维度、数据量、filter 选择性和 top-k 压测 p50/p95/p99;单独测试新写入可见延迟、批量 upsert/delete、索引重建、节点失败、连接池耗尽和召回率。对 graph/SQL 生成还要强制解析计划、扫描行数和执行时间上限。