跳至主要內容

viking DB

viking DB 是一個資料庫,用於儲存、索引和管理由深度神經網路和其他機器學習 (ML) 模型產生的大量嵌入向量。

這個筆記本展示了如何使用與 VikingDB 向量資料庫相關的功能。

您需要安裝 langchain-community,使用 pip install -qU langchain-community 才能使用此整合

要運行,您應該有一個 正在運行的 viking DB 實例

!pip install --upgrade volcengine

我們要使用 VikingDBEmbeddings,所以我們必須取得 VikingDB API 金鑰。

import getpass
import os

if "OPENAI_API_KEY" not in os.environ:
os.environ["OPENAI_API_KEY"] = getpass.getpass("OpenAI API Key:")
from langchain_community.document_loaders import TextLoader
from langchain_community.vectorstores.vikingdb import VikingDB, VikingDBConfig
from langchain_openai import OpenAIEmbeddings
from langchain_text_splitters import RecursiveCharacterTextSplitter
loader = TextLoader("./test.txt")
documents = loader.load()
text_splitter = RecursiveCharacterTextSplitter(chunk_size=10, chunk_overlap=0)
docs = text_splitter.split_documents(documents)

embeddings = OpenAIEmbeddings()
db = VikingDB.from_documents(
docs,
embeddings,
connection_args=VikingDBConfig(
host="host", region="region", ak="ak", sk="sk", scheme="http"
),
drop_old=True,
)
query = "What did the president say about Ketanji Brown Jackson"
docs = db.similarity_search(query)
docs[0].page_content

使用 viking DB 集合來區隔資料 (Compartmentalize the data with viking DB Collections)

您可以將不同的、不相關的文件儲存在同一個 viking DB 實例中的不同集合中,以維持上下文

以下是如何建立新集合

db = VikingDB.from_documents(
docs,
embeddings,
connection_args=VikingDBConfig(
host="host", region="region", ak="ak", sk="sk", scheme="http"
),
collection_name="collection_1",
drop_old=True,
)

以下是如何檢索儲存的集合

db = VikingDB.from_documents(
embeddings,
connection_args=VikingDBConfig(
host="host", region="region", ak="ak", sk="sk", scheme="http"
),
collection_name="collection_1",
)

檢索後,您可以像往常一樣繼續查詢它。


此頁面有幫助嗎? (Was this page helpful?)