Logo

pg_vectorize: 在PostgreSQL上构建AI工作负载的最简单方法

pg_vectorize

pg_vectorize: PostgreSQL的向量数据库解决方案

pg_vectorize logo

pg_vectorize是一个强大的PostgreSQL扩展,旨在简化AI工作负载的构建过程。它为开发人员提供了一种简单而高效的方式来实现向量搜索和构建基于大型语言模型(LLM)的应用程序。通过自动化文本到嵌入向量的转换和编排过程,pg_vectorize使得在现有数据上实现这些功能变得异常简单,只需要几个函数调用即可完成。

主要特性

  1. 向量搜索和RAG工作流: pg_vectorize支持向量搜索和检索增强生成(RAG)两种主要的AI应用场景。

  2. 多种集成选项: 该扩展提供了与OpenAI的embeddings和chat-completion端点的集成,同时还支持自托管的Hugging Face Sentence-Transformers容器。

  3. 自动化嵌入更新: pg_vectorize能够自动创建PostgreSQL触发器,以保持嵌入向量的实时更新。

  4. 高级API: 提供了简洁的高级API,只需一个函数即可初始化嵌入转换,另一个函数用于搜索。

工作原理

pg_vectorize的核心功能是将文本数据转换为嵌入向量,并在PostgreSQL数据库中存储和管理这些向量。它利用了pgvector进行向量相似度搜索,pgmq用于后台工作的编排,以及SentenceTransformers用于生成嵌入。

以下是使用pg_vectorize进行向量搜索的基本步骤:

  1. 安装和配置: 首先需要在PostgreSQL实例中安装pg_vectorize扩展及其依赖项。

  2. 初始化向量化: 使用vectorize.table()函数来初始化对特定表的向量化处理。这将创建一个新的嵌入列并填充数据。

  3. 执行搜索: 使用vectorize.search()函数来执行向量搜索,返回最相似的结果。

实际应用示例

让我们通过一个简单的产品搜索示例来展示pg_vectorize的强大功能:

-- 创建产品表并插入示例数据
CREATE TABLE products (LIKE vectorize.example_products INCLUDING ALL);
INSERT INTO products SELECT * FROM vectorize.example_products;

-- 初始化向量化处理
SELECT vectorize.table(
    job_name    => 'product_search_hf',
    "table"     => 'products',
    primary_key => 'product_id',
    columns     => ARRAY['product_name', 'description'],
    transformer => 'sentence-transformers/all-MiniLM-L6-v2',
    schedule    => 'realtime'
);

-- 执行向量搜索
SELECT * FROM vectorize.search(
    job_name        => 'product_search_hf',
    query           => 'accessories for mobile devices',
    return_columns  => ARRAY['product_id', 'product_name'],
    num_results     => 3
);

这个例子展示了如何快速设置一个产品搜索系统,能够基于产品名称和描述进行语义搜索。

RAG应用

pg_vectorize还支持检索增强生成(RAG)应用。以下是一个简单的RAG示例:

-- 初始化RAG项目
SELECT vectorize.init_rag(
    agent_name          => 'product_chat',
    table_name          => 'products',
    "column"            => 'context',
    unique_record_id    => 'product_id',
    transformer         => 'sentence-transformers/all-MiniLM-L6-v2'
);

-- 使用RAG进行问答
SELECT vectorize.rag(
    agent_name  => 'product_chat',
    query       => 'What is a pencil?',
    chat_model  => 'openai/gpt-3.5-turbo'
) -> 'chat_response';

这个例子展示了如何使用pg_vectorize创建一个能够回答产品相关问题的聊天机器人。

结论

pg_vectorize为开发人员提供了一种简单而强大的方式来在PostgreSQL数据库中实现AI驱动的功能。无论是构建智能搜索系统还是创建复杂的RAG应用,pg_vectorize都能大大简化开发过程,使得AI技术的集成变得前所未有的简单。

通过利用PostgreSQL的强大功能和灵活性,pg_vectorize为构建下一代AI应用铺平了道路。无论您是在开发产品搜索、智能客户服务还是知识管理系统,pg_vectorize都能为您提供所需的工具和功能。

随着AI技术的不断发展,pg_vectorize将继续evolve,为开发者提供更多强大的功能和更简单的使用体验。如果您正在寻找一种简单而高效的方式来在PostgreSQL上构建AI工作负载,pg_vectorize无疑是一个值得考虑的选择。

Tembo Cloud Try Free

立即在Tembo Cloud上试用pg_vectorize,体验AI驱动的数据库功能的未来!

最新项目

Project Cover
豆包MarsCode
豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。
Project Cover
AI写歌
Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。
Project Cover
商汤小浣熊
小浣熊家族Raccoon,您的AI智能助手,致力于通过先进的人工智能技术,为用户提供高效、便捷的智能服务。无论是日常咨询还是专业问题解答,小浣熊都能以快速、准确的响应满足您的需求,让您的生活更加智能便捷。
Project Cover
有言AI
有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。
Project Cover
Kimi
Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。
Project Cover
吐司
探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。
Project Cover
SubCat字幕猫
SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。
Project Cover
AIWritePaper论文写作
AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。
Project Cover
稿定AI
稿定设计 是一个多功能的在线设计和创意平台,提供广泛的设计工具和资源,以满足不同用户的需求。从专业的图形设计师到普通用户,无论是进行图片处理、智能抠图、H5页面制作还是视频剪辑,稿定设计都能提供简单、高效的解决方案。该平台以其用户友好的界面和强大的功能集合,帮助用户轻松实现创意设计。
投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号