ClickHouse 是最快、资源效率最高的开源数据库,适用于实时应用和分析,具有完整的 SQL 支持和广泛的功能,可帮助用户编写分析查询。最近添加的数据结构和距离搜索函数(如 L2Distance)以及近似最近邻搜索索引使 ClickHouse 能够用作高性能、可扩展的向量数据库,以 SQL 存储和搜索向量。
本 Notebook 展示了如何使用与 ClickHouse 向量存储相关的功能。
设置
首先使用 docker 设置一个本地 ClickHouse 服务器langchain-community 和 clickhouse-connect 才能使用此集成
凭据
本 Notebook 没有凭据,只需确保您已按上述方式安装了软件包即可。 如果您想获得一流的模型调用自动化跟踪,您还可以通过取消注释下方内容来设置您的 LangSmith API 密钥:实例化
管理向量存储
创建向量存储后,我们可以通过添加和删除不同的项目来与其交互。向向量存储添加项目
我们可以使用add_documents 函数将项目添加到向量存储中。
从向量存储中删除项目
我们可以使用delete 函数通过 ID 从向量存储中删除项目。
查询向量存储
一旦您的向量存储被创建并添加了相关文档,您很可能希望在链或代理运行期间查询它。直接查询
相似性搜索
执行简单的相似性搜索可以按如下方式完成带分数的相似性搜索
您还可以带分数搜索过滤
您可以直接访问 ClickHouse SQL WHERE 语句。您可以按照标准 SQL 编写WHERE 子句。 注意:请注意 SQL 注入,此接口不得由最终用户直接调用。 如果您在设置中自定义了 column_map,则可以使用以下过滤器进行搜索:其他搜索方法
本 Notebook 中未涵盖多种其他搜索方法,例如 MMR 搜索或按向量搜索。有关Clickhouse 向量存储可用搜索功能的完整列表,请查看API 参考。
通过转换为检索器进行查询
您还可以将向量存储转换为检索器,以便在您的链中更轻松地使用。 以下是如何将向量存储转换为检索器,然后使用简单的查询和过滤器调用检索器。用于检索增强生成的使用
有关如何将此向量存储用于检索增强生成 (RAG) 的指南,请参阅以下部分 有关更多信息,请此处查看使用 Astra DB 的完整 RAG 模板。API 参考
有关所有Clickhouse 功能和配置的详细文档,请参阅API 参考。
以编程方式连接这些文档到 Claude、VSCode 等,通过 MCP 获取实时答案。