Skip to main content

Tigris

Tigris 是一个开源的无服务器 NoSQL 数据库和搜索平台,旨在简化构建高性能向量搜索应用程序。 Tigris 消除了管理、操作和同步多个工具的基础设施复杂性,使您能够专注于构建优秀的应用程序。

本笔记本将指导您如何将 Tigris 用作您的 VectorStore

先决条件

  1. 一个 OpenAI 账户。您可以在这里注册账户。
  2. 注册一个免费的 Tigris 账户。注册 Tigris 账户后,创建一个名为 vectordemo 的新项目。然后,记录下您在项目中创建的区域的 UriclientIdclientSecret。您可以从项目的 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}")