整合 SQLAlchemy 和 LiteLLM 的向量搜索工具,开箱即用地解决 AI 应用中的 embedding 管理痛点。
我们构建 pgai Vectorizer,是为了简化 AI 应用的 embedding 管理,无需单独部署数据库,也不需要复杂的基础设施。自发布以来,开发者已经在 Timescale Cloud 上创建了超过 3,000 个 vectorizer,还有更多 vectorizer 运行在自托管环境中。
但开发者希望 pgai Vectorizer 能够与熟悉的应用开发工具配合使用,并支持更多 embedding 提供商。今天,我们通过两项重要更新实现了这些需求:
**支持 SQLAlchemy:**SQLAlchemy 是使用最广泛的 Python ORM,开发者可以使用 Python 而不是原始 SQL 操作数据库。现在,pgai Vectorizer 已经与其直接集成,因此你可以通过 SQLAlchemy 查询,像存储和查询其他列一样处理 vector embedding。
**支持 SQLAlchemy:**SQLAlchemy 是使用最广泛的 Python ORM,开发者可以使用 Python 而不是原始 SQL 操作数据库。现在,pgai Vectorizer 已经与其直接集成,因此你可以通过 SQLAlchemy 查询,像存储和查询其他列一样处理 vector embedding。
**通过 LiteLLM 支持更多 embedding 模型:**LiteLLM 为多个 embedding 提供商提供了统一、简洁的 API。现在,只需一条 SQL 命令,pgai Vectorizer 就能使用 OpenAI、Cohere、Hugging Face、Mistral、Azure OpenAI、AWS Bedrock 和 Google Vertex。
**通过 LiteLLM 支持更多 embedding 模型:**LiteLLM 为多个 embedding 提供商提供了统一、简洁的 API。现在,只需一条 SQL 命令,pgai Vectorizer 就能使用 OpenAI、Cohere、Hugging Face、Mistral、Azure OpenAI、AWS Bedrock 和 Google Vertex。
这些更新让开发者能够在 Python 中以更简单、更灵活的方式使用 embedding——没有额外的复杂性,只有能够融入现有技术栈的工具。
(想进一步了解我们为什么构建 pgai Vectorizer,请阅读:《Vector Database 是错误的抽象》。)
SQLAlchemy 是一个对 SQL 查询进行抽象的 Python ORM,现在它已经与 pgai Vectorizer 集成。你可以像处理其他数据库列一样存储和查询 embedding,而不必编写原始 SQL。
**像操作其他列一样写入和读取 vector:**在模型中将 embedding 定义为结构化字段。
**像操作其他列一样写入和读取 vector:**在模型中将 embedding 定义为结构化字段。
**在 ORM 表达式中执行 vector 相似度查询:**无需使用原始 SQL,也不需要外部 vector store。
**在 ORM 表达式中执行 vector 相似度查询:**无需使用原始 SQL,也不需要外部 vector store。
**使用 Alembic migration:**对 schema 变更进行版本控制。这样一来,你可以更轻松地在 Postgres 中存储、读取和更新 embedding,同时让所有操作都保持 ORM 原生体验。
**使用 Alembic migration:**对 schema 变更进行版本控制。这样一来,你可以更轻松地在 Postgres 中存储、读取和更新 embedding,同时让所有操作都保持 ORM 原生体验。
op.create_vectorizer(
source="blog",
embedding=OpenAIConfig(
model='text-embedding-3-small',
dimensions=768
),
chunking=CharacterTextSplitterConfig(
chunk_column='content',
),
formatting=PythonTemplateConfig(template='$title - $chunk')
)
选择合适的 embedding 模型会影响成本、性能和准确性,但切换提供商不应该要求你重写查询。LiteLLM 消除了这一阻力,只需一条 SQL 命令,就能无缝切换提供商——不必重写查询,也不需要手动重新处理数据。
**即时切换提供商:**只需投入极少精力,即可测试 OpenAI、Cohere、Hugging Face、Mistral、Azure OpenAI、AWS Bedrock 和 Google Vertex。
**即时切换提供商:**只需投入极少精力,即可测试 OpenAI、Cohere、Hugging Face、Mistral、Azure OpenAI、AWS Bedrock 和 Google Vertex。
**无需重写查询:**无论使用哪家 embedding 提供商,应用都可以继续正常运行。
**无需重写查询:**无论使用哪家 embedding 提供商,应用都可以继续正常运行。
**切换时保留旧 embedding:**确保平稳过渡,无需停机。
**切换时保留旧 embedding:**确保平稳过渡,无需停机。
SELECT ai.create_vectorizer(
'my_table'::regclass,
embedding => ai.embedding_litellm(
'cohere/embed-english-v3.0',
1024,
api_key_name => 'COHERE_API_KEY'
),
chunking => ai.chunking_recursive_character_text_splitter('contents')
);
LiteLLM 现已向自托管用户开放,并将很快登陆 Timescale Cloud。
pgai Vectorizer 的 SQLAlchemy 和 LiteLLM 集成现已推出,让你能够以前所未有的便捷方式,在 Postgres 中存储、查询和试验 vector embedding。
从 GitHub 安装 pgai Vectorizer
从 GitHub 安装 pgai Vectorizer
使用 SQLAlchemy 定义 vector 列
使用 SQLAlchemy 定义 vector 列
使用 LiteLLM 测试不同的 embedding 提供商
使用 LiteLLM 测试不同的 embedding 提供商
对于自托管部署,需要使用外部 worker 处理 embedding。在 Timescale Cloud 中,这个过程已经实现自动化,可以处理 API 调用并动态扩展工作负载。
pgai Vectorizer 只是一个开始。我们正在打造更广泛的 AI-native 数据库体验,让 Postgres 支持更智能的索引、更先进的 AI 搜索,以及与 AI 工具的深度集成。未来还会推出更多增强功能,让 Postgres 成为构建 AI 应用的最佳平台。
这是一套能够帮助开发者更轻松地使用 PostgreSQL 开发 RAG、语义搜索和其他 AI 应用的工具。
加入我们的 Discord 社区,分享反馈,并了解其他开发者正在构建什么。
如需采取进一步措施,你可以考虑屏蔽此人和/或举报滥用行为。