向量库集成
默认 VectorStoreIndex 把向量放在 内存 SimpleVectorStore 里,适合教程。生产需要:进程重启不丢、可并发、能过滤 metadata、可水平扩展。做法是安装对应集成包,构造官方的 *VectorStore,放进 StorageContext,再 from_documents。
统一插头:
集成清单:Using Vector Stores 与 Storing。构造函数参数以各 store 文档为准。
Chroma(本地文件、上手最快)
包名概念:llama-index-vector-stores-chroma(同时需要 chromadb)。
再次启动 不要 from_documents(会重复 embedding),改为:
适合单机、演示、中小语料。多副本写入同一目录前先看 Chroma 的并发说明。
pgvector(PostgreSQL)
包名概念:llama-index-vector-stores-postgres。数据库需启用 pgvector。Embedding 维度必须与模型一致(许多 OpenAI 模型是 1536;换模型就改 embed_dim 并重建表)。
适合已有 Postgres、要和业务数据同库备份、用 SQL 做权限与审计。连接串、SSL、schema 名见 Postgres 集成页。本站 PostgreSQL 课管数据库本身,不管 LlamaIndex 包装类。
Qdrant
包名概念:llama-index-vector-stores-qdrant(另装 qdrant-client)。可本地路径、Docker,或 Qdrant Cloud。
Qdrant 同时存文档与向量,过滤与 hybrid 能力较强;enable_hybrid 等开关以当前集成文档为准。加载:VectorStoreIndex.from_vector_store(vector_store)。
选型与注意
同一 embedding 模型 贯穿写入与查询。换模型 = 新 collection / 新表 + 全量重建。外接向量库后,docstore 有时仍要 persist;若官方示例只 from_vector_store,说明该后端已存文本,按该页复制即可。
不要把 API Key、数据库密码写进仓库。连接参数用环境变量。向量库不是权限系统:租户隔离靠 分 collection 或 metadata filter,并在应用层强制。