跳到主要內容

Tigris

Tigris 是一個開源的 Serverless NoSQL 資料庫和搜尋平台,旨在簡化建構高效能向量搜尋應用程式的過程。 Tigris 消除了管理、操作和同步多種工具的基礎架構複雜性,讓您可以專注於建構出色的應用程式。

本筆記本將引導您如何使用 Tigris 作為您的 VectorStore。

先決條件

  1. 一個 OpenAI 帳戶。 您可以在此處註冊帳戶。
  2. 註冊一個免費的 Tigris 帳戶。 註冊 Tigris 帳戶後,建立一個名為 vectordemo 的新專案。 接下來,記下您在其中建立專案的區域的UriclientIdclientSecret。 您可以從專案的應用程式金鑰部分取得所有這些資訊。

讓我們首先安裝我們的依賴項

%pip install --upgrade --quiet  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}")

此頁面是否有幫助?