Tigris
Tigris 是一个开源的无服务器 NoSQL 数据库和搜索平台,旨在简化构建高性能向量搜索应用程序。
Tigris
消除了管理、操作和同步多个工具的基础设施复杂性,使您能够专注于构建优秀的应用程序。
本笔记本将指导您如何将 Tigris 用作您的 VectorStore
先决条件
- 一个 OpenAI 账户。您可以在这里注册账户。
- 注册一个免费的 Tigris 账户。注册 Tigris 账户后,创建一个名为
vectordemo
的新项目。然后,记录下您在项目中创建的区域的 Uri、clientId 和 clientSecret。您可以从项目的 Application Keys 部分获取所有这些信息。
让我们首先安装我们的依赖项:
pip install tigrisdb openapi-schema-pydantic openai tiktoken
我们将在环境中加载 OpenAI
API 密钥和 Tigris
凭据:
import os
import getpass
os.environ["OPENAI_API_KEY"] = getpass.getpass("OpenAI API 密钥:")
os.environ["TIGRIS_PROJECT"] = getpass.getpass("Tigris 项目名称:")
os.environ["TIGRIS_CLIENT_ID"] = getpass.getpass("Tigris 客户端 ID:")
os.environ["TIGRIS_CLIENT_SECRET"] = getpass.getpass("Tigris 客户端密钥:")
from langchain.embeddings.openai import OpenAIEmbeddings
from langchain.text_splitter import CharacterTextSplitter
from langchain.vectorstores import Tigris
from langchain.document_loaders import TextLoader
初始化 Tigris 向量存储
让我们导入我们的测试数据集:
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()
vector_store = Tigris.from_documents(docs, embeddings, index_name="my_embeddings")
相似性搜索
query = "总统对 Ketanji Brown Jackson 说了什么"
found_docs = vector_store.similarity_search(query)
print(found_docs)
带有分数的相似性搜索(向量距离)
query = "总统对 Ketanji Brown Jackson 说了什么"
result = vector_store.similarity_search_with_score(query)
for doc, score in result:
print(f"document={doc}, score={score}")