Skip to main content
viking DB 是一个数据库,用于存储、索引和管理由深度神经网络及其他机器学习(ML)模型生成的海量嵌入向量。
本 notebook 展示了如何使用与 VikingDB 向量数据库相关的功能。 使用本集成需要安装 langchain-communitypip install -qU langchain-community 要运行本 notebook,您需要启动并运行一个 viking DB 实例
!pip install -U volcengine
我们希望使用 VikingDBEmbeddings,因此需要获取 VikingDB API Key。
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",
)
检索后可以像往常一样继续查询。