Intel’s Visual Data Management System (VDMS) is a storage solution for efficient access of big-”visual”-data that aims to achieve cloud scale by searching for relevant visual data via visual metadata stored as a graph and enabling machine friendly enhancements to visual data for faster access. VDMS is licensed under MIT. For more information on VDMS, visit this page, and find the LangChain API reference here.
VDMS 支持:
- K 近邻搜索
- 欧氏距离(L2)和内积(IP)
- 用于索引和计算距离的库:FaissFlat(默认)、FaissHNSWFlat、FaissIVFFlat、Flinng、TileDBDense、TileDBSparse
- 文本、图像和视频的嵌入
- 向量和元数据搜索
配置
要访问 VDMS 向量存储,您需要安装langchain-vdms 集成包,并通过公开可用的 Docker 镜像部署 VDMS 服务器。
为简单起见,本 notebook 将使用端口 55555 在本地主机上部署 VDMS 服务器。
凭证
您无需任何凭证即可使用VDMS。
要启用模型调用的自动追踪,请设置您的 LangSmith API key:
初始化
使用 VDMS Client 连接到 VDMS 向量存储,使用 FAISS IndexFlat 索引(默认)和欧氏距离(默认)作为相似性搜索的距离度量。管理向量存储
向向量存储添加条目
add_documents 不会检查 id 是否唯一。因此,在添加之前使用 upsert 删除现有 id 条目。
更新向量存储中的条目
从向量存储删除条目
查询向量存储
创建向量存储并添加相关文档后,您很可能希望在链或代理运行期间对其进行查询。直接查询
执行简单的相似性搜索如下:转换为检索器后查询
您也可以将向量存储转换为检索器,以便在链中更轻松地使用。删除集合
之前,我们根据id 删除文档。这里,由于没有提供 ID,所有文档都将被删除。
用于检索增强生成
有关如何将此向量存储用于检索增强生成(RAG)的指南,请参阅以下内容:使用其他引擎进行相似性搜索
VDMS 支持多种用于索引和计算距离的库:FaissFlat(默认)、FaissHNSWFlat、FaissIVFFlat、Flinng、TileDBDense 和 TileDBSparse。 默认情况下,向量存储使用 FaissFlat。下面我们展示使用其他引擎的几个示例。使用 faiss HNSWFlat 和欧氏距离进行相似性搜索
这里,我们使用 Faiss IndexHNSWFlat 索引和 L2 作为相似性搜索的距离度量将文档添加到 VDMS。我们搜索与查询相关的三个文档(k=3)并同时返回分数和文档。
使用 faiss IVFFlat 和内积(IP)距离进行相似性搜索
我们使用 Faiss IndexIVFFlat 索引和 IP 作为相似性搜索的距离度量将文档添加到 VDMS。我们搜索与查询相关的三个文档(k=3)并同时返回分数和文档。
使用 FLINNG 和 IP 距离进行相似性搜索
在本节中,我们使用近邻组过滤器(FLINNG)索引和 IP 作为相似性搜索的距离度量将文档添加到 VDMS。我们搜索与查询相关的三个文档(k=3)并同时返回分数和文档。
按元数据过滤
在处理集合之前缩小范围可能很有帮助。 例如,可以使用get_by_constraints 方法按元数据过滤集合。使用字典来过滤元数据。这里我们检索 langchain_id = "2" 的文档并将其从向量存储中删除。
注意: id 作为整数附加元数据生成,而 langchain_id(内部 ID)是每个条目的唯一字符串。
id 来过滤一系列 ID,因为它是整数。
停止 VDMS 服务器
通过 MCP 将这些文档连接到 Claude、VSCode 等,获取实时答案。

