Skip to main content
Tigris 是一个开源的无服务器 NoSQL 数据库与搜索平台,旨在简化高性能向量搜索应用的构建。 Tigris 消除了管理、运维和同步多个工具所带来的基础设施复杂性,让您专注于构建优秀的应用程序。
本 notebook 将引导您如何将 Tigris 用作您的 VectorStore。 前提条件
  1. 一个 OpenAI 账户。您可以在此处注册账户。
  2. 注册免费的 Tigris 账户。注册完成后,创建一个名为 vectordemo 的新项目。然后记录您所在区域的 UriclientIdclientSecret,这些信息可以在项目的 Application Keys 部分找到。
首先安装所需依赖:
pip install -qU  tigrisdb openapi-schema-pydantic langchain-openai langchain-community tiktoken
接下来,将 OpenAI API 密钥和 Tigris 凭据加载到环境变量中:
import getpass
import os

if "OPENAI_API_KEY" not in os.environ:
    os.environ["OPENAI_API_KEY"] = getpass.getpass("OpenAI API Key:")
if "TIGRIS_PROJECT" not in os.environ:
    os.environ["TIGRIS_PROJECT"] = getpass.getpass("Tigris Project Name:")
if "TIGRIS_CLIENT_ID" not in os.environ:
    os.environ["TIGRIS_CLIENT_ID"] = getpass.getpass("Tigris Client Id:")
if "TIGRIS_CLIENT_SECRET" not in os.environ:
    os.environ["TIGRIS_CLIENT_SECRET"] = getpass.getpass("Tigris Client Secret:")
from langchain_community.document_loaders import TextLoader
from langchain_community.vectorstores import Tigris
from langchain_openai import OpenAIEmbeddings
from langchain_text_splitters import CharacterTextSplitter

初始化 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 = "What did the president say about Ketanji Brown Jackson"
found_docs = vector_store.similarity_search(query)
print(found_docs)

带分数的相似度搜索(向量距离)

query = "What did the president say about Ketanji Brown Jackson"
result = vector_store.similarity_search_with_score(query)
for doc, score in result:
    print(f"document={doc}, score={score}")