AnalyticDB
AnalyticDB for PostgreSQL是一种用于在线分析大数据的大规模并行处理(MPP)数据仓库服务。
AnalyticDB for PostgreSQL
是基于开源项目Greenplum Database
开发的,并由阿里云
进行了深度扩展。AnalyticDB for PostgreSQL兼容ANSI SQL 2003语法以及PostgreSQL和Oracle数据库生态系统。AnalyticDB for PostgreSQL还支持行存储和列存储。AnalyticDB for PostgreSQL以高性能水平离线处理PB级数据,并支持高并发的在线查询。
本笔记本展示了如何使用与AnalyticDB
向量数据库相关的功能。
要运行此笔记本,您应该拥有正在运行的AnalyticDB实例:
- 使用AnalyticDB Cloud Vector Database。单击此处快速部署。
from langchain.embeddings.openai import OpenAIEmbeddings
from langchain.text_splitter import CharacterTextSplitter
from langchain.vectorstores import AnalyticDB
通过调用OpenAI API拆分文档并获取嵌入向量
from langchain.document_loaders import TextLoader
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()
通过设置相关环境变量连接到AnalyticDB。
export PG_HOST={your_analyticdb_hostname}
export PG_PORT={your_analyticdb_port} # 可选,默认为5432
export PG_DATABASE={your_database} # 可选,默认为postgres
export PG_USER={database_username}
export PG_PASSWORD={database_password}
然后将嵌入向量和文档存储到AnalyticDB中
import os
connection_string = AnalyticDB.connection_string_from_db_params(
driver=os.environ.get("PG_DRIVER", "psycopg2cffi"),
host=os.environ.get("PG_HOST", "localhost"),
port=int(os.environ.get("PG_PORT", "5432")),
database=os.environ.get("PG_DATABASE", "postgres"),
user=os.environ.get("PG_USER", "postgres"),
password=os.environ.get("PG_PASSWORD", "postgres"),
)
vector_db = AnalyticDB.from_documents(
docs,
embeddings,
connection_string=connection_string,
)
查询和检索数据
query = "What did the president say about Ketanji Brown Jackson"
docs = vector_db.similarity_search(query)
print(docs[0].page_content)
今晚。我呼吁参议院:通过《自由投票法案》。通过《约翰·刘易斯选举权法案》。而且,顺便说一句,通过《披露法案》,这样美国人就可以知道谁在资助我们的选举。
今晚,我想向一个致力于为这个国家服务的人表示敬意:司法部长斯蒂芬·布雷耶——一位陆军退伍军人、宪法学者和即将退休的美国最高法院法官。布雷耶法官,感谢您的服务。
作为总统,最重要的宪法责任之一是提名人选担任美国最高法院法官。
我在4天前做到了这一点,当时我提名了巡回上诉法院法官Ketanji Brown Jackson。她是我们国家顶级的法律专家,将继续布雷耶法官的卓越传统。