scikit-learn
scikit-learn 是一个开源的机器学习算法集合,包括一些 k 最近邻 的实现。
SKLearnVectorStore封装了此实现,并增加了以 json、bson(二进制 json)或 Apache Parquet 格式持久化向量存储的可能性。
本笔记本展示了如何使用 SKLearnVectorStore 向量数据库。
您需要通过运行 pip install -qU langchain-community 来安装 langchain-community 以使用此集成
%pip install --upgrade --quiet scikit-learn
# # if you plan to use bson serialization, install also:
%pip install --upgrade --quiet bson
# # if you plan to use parquet serialization, install also:
%pip install --upgrade --quiet pandas pyarrow
要使用 OpenAI embeddings,您需要一个 OpenAI 密钥。您可以在 https://platform.openai.com/account/api-keys 获取,也可以随意使用任何其他 embeddings。
import os
from getpass import getpass
if "OPENAI_API_KEY" not in os.environ:
os.environ["OPENAI_API_KEY"] = getpass("Enter your OpenAI key:")
基本用法
加载一个示例文档语料库
from langchain_community.document_loaders import TextLoader
from langchain_community.vectorstores import SKLearnVectorStore
from langchain_openai import OpenAIEmbeddings
from langchain_text_splitters import CharacterTextSplitter
loader = TextLoader("../../how_to/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()