SingleStoreDB 向量搜索

SingleStore DBopen in new window 是一个高性能的分布式数据库,支持在云端open in new window和本地部署。在相当长的时间内,它一直支持向量函数(例如 dot_productopen in new window),因此成为需要文本相似性匹配的 AI 应用的理想解决方案。 本教程将介绍如何利用 SingleStore DB Vector Store 的功能。

# 通过 singlestoredb Python 连接器方便地建立与数据库的连接。
# 请确保在您的工作环境中安装了该连接器。
!pip install singlestoredb
import os
import getpass

# 我们想使用 OpenAIEmbeddings,因此我们需要获取 OpenAI API 密钥。
os.environ['OPENAI_API_KEY'] = getpass.getpass('OpenAI API 密钥:')
from langchain.embeddings.openai import OpenAIEmbeddings
from langchain.text_splitter import CharacterTextSplitter
from langchain.vectorstores import SingleStoreDB
from langchain.document_loaders import TextLoader
# Load text samples 
from langchain.document_loaders import TextLoader
loader = TextLoader('../../../state_of_the_union.txt')
documents = loader.load()
text_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=0)
docs = text_splitter.split_documents(documents)

embeddings = OpenAIEmbeddings()

建立与数据库的连接open in new window有几种方法。您可以设置环境变量或将命名参数传递给 SingleStoreDB 构造函数 来进行连接。或者,您可以将这些参数提供给 from_documentsfrom_texts 方法。

# 将连接 URL 设置为环境变量
os.environ['SINGLESTOREDB_URL'] = 'root:pass@localhost:3306/db'

# 将文档加载到存储中
docsearch = SingleStoreDB.from_documents(
    docs,
    embeddings,
    table_name="noteook",  # 使用自定义名称的表
)
query = "总统对 Ketanji Brown Jackson 说了什么"
docs = docsearch.similarity_search(query) # 查找与查询相对应的文档
print(docs[0].page_content)
Last Updated:
Contributors: 刘强