Tigris

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

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

先决条件

  1. OpenAI帐户。您可以在此处open in new window注册帐户。
  2. 注册Tigris免费帐户open in new window。注册Tigris帐户后,创建一个名为vectordemo的新项目。接下来,记下您在项目中创建的区域的UriclientIdclientSecret。您可以从项目的应用程序密钥部分获取所有这些信息。

让我们首先安装所需的依赖项:

!pip install tigrisdb openapi-schema-pydantic openai tiktoken

我们将在环境中加载OpenAI API密钥和Tigris凭据。

import os
import getpass

os.environ['OPENAI_API_KEY'] = getpass.getpass('OpenAI API Key:')
os.environ['TIGRIS_PROJECT'] = getpass.getpass('Tigris Project Name:')
os.environ['TIGRIS_CLIENT_ID'] = getpass.getpass('Tigris Client Id:')
os.environ['TIGRIS_CLIENT_SECRET'] = getpass.getpass('Tigris Client Secret:')
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 = "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}")
Last Updated:
Contributors: 刘强