跳至主要内容

维京数据库

viking DB 是一个数据库,用于存储、索引和管理由深度神经网络和其他机器学习 (ML) 模型生成的大量嵌入向量。

此笔记本演示了如何使用与 VikingDB 向量数据库相关的功能。

您需要使用 pip install -qU langchain-community 安装 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 集合对数据进行分隔

您可以在同一 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",
)

检索后,您可以照常继续查询它。


此页面是否有帮助?


您还可以留下详细的反馈 在 GitHub 上.