发布于 2026-01-06 5 阅读
0

🚀 pgai Vectorizer:使用一条 SQL 命令在 PostgreSQL 中自动生成 AI 嵌入

🚀 pgai Vectorizer:使用一条 SQL 命令在 PostgreSQL 中自动生成 AI 嵌入

学习如何使用您熟悉且喜爱的 PostgreSQL 自动创建 AI 嵌入。

管理 RAG、搜索和 AI 代理等 AI 系统的嵌入式工作流程可能很麻烦:需要同时使用多种工具、设置复杂的流程,还要花费数小时同步数据,尤其是在您不是机器学习或 AI 专家的情况下。但其实不必如此。

借助现已推出的pgai Vectorizer(抢先体验版),您可以自动创建向量嵌入,并随着数据的变化自动同步,还可以尝试不同的 AI 模型——所有这一切都只需一条简单的 SQL 命令即可完成。无需额外的工具,无需复杂的设置——PostgreSQL 就能搞定一切繁重的工作。

-- Create a vectorizer to embed data in the blogs table
-- Use Open AI text-embedding-3-small model
SELECT ai.create_vectorizer(
    'public.blogs'::regclass,
    embedding => ai.embedding_openai('text-embedding-3-small', 1536),
    chunking => ai.chunking_recursive_character_text_splitter('content')
);

Enter fullscreen mode Exit fullscreen mode

pgai Vectorizer 的功能:

  • 使用 SQL 创建嵌入:只需一条命令即可从多个文本列生成向量嵌入,从而简化 AI 工作流程的关键部分。
  • 自动同步:嵌入内容会随着数据的变化而更新——无需手动干预。
  • 快速模型切换:使用 SQL 即可立即测试不同的 AI 模型——无需重新处理数据。
  • 测试和推广:比较模型和分块技术,进行 A/B 测试,并自信地推出更新,且不会造成停机。

pgai Vectorizer 系统架构——pgai Vectorizer 利用 PostgreSQL 中存储的工作队列和配置表,从源数据表中自动创建和更新嵌入;同时,嵌入的创建过程由外部工作进程完成,该进程与 OpenAI API 等嵌入服务进行交互。

以下是使用 pgai Vectorizer 测试两种不同嵌入模型的 RAG 输出的示例:

-- Vectorizer using OpenAI text-embedding-3-small
SELECT ai.create_vectorizer(
   'public.blogs'::regclass,
   destination => 'blogs_embedding_small',
   embedding => ai.embedding_openai('text-embedding-3-small', 1536),
   chunking => ai.chunking_recursive_character_text_splitter('content'),
   formatting => ai.formatting_python_template('Title: $title\nURL: $url\nContent: $chunk')
);

-- Vectorizer using OpenAI text-embedding-3-large
SELECT ai.create_vectorizer(
   'public.blogs'::regclass,
   destination => 'blogs_embedding_large',
   embedding => ai.embedding_openai('text-embedding-3-large', 1536),  -- Note different dimensions
   chunking => ai.chunking_recursive_character_text_splitter('content'),
   formatting => ai.formatting_python_template('Title: $title\nURL: $url\nContent: $chunk')
);

-- Compare results from the two vectorizers on the same RAG query
SELECT
   'text-embedding-3-small' as model,
   generate_rag_response(
       'What is AI?',
       'public.blogs_embedding_small'
   ) as response
UNION ALL
SELECT
   'text-embedding-3-large' as model,
   generate_rag_response(
       'What is AI?',
       'public.blogs_embedding_large'
   ) as response;
Enter fullscreen mode Exit fullscreen mode

按规模建造

随着数据集的增长,pgai Vectorizer 也能随之扩展。当向量数量超过 10 万个时,它会自动使用向量索引(例如 HNSW 和 StreamingDiskANN)优化搜索性能。一切尽在您的掌控之中——您可以定义分块和格式化规则,根据自身需求定制嵌入。

以下是一个高级矢量化器配置示例,其中在添加 10 万行数据后创建了 ANN 索引,并对 HTML 文件进行了自定义分块:


-- Advanced vectorizer configuration
SELECT ai.create_vectorizer(
   'public.blogs'::regclass,
   destination => 'blogs_embedding_recursive',
   embedding => ai.embedding_openai('text-embedding-3-small', 1536),
   -- automatically create a StreamingDiskANN index when table has 100k rows
   indexing => ai.indexing_diskann(min_rows => 100000, storage_layout => 'memory_optimized'),
   -- apply recursive chunking with specified settings for HTML content
   chunking => ai.chunking_recursive_character_text_splitter(
       'content',
       chunk_size => 800,
       chunk_overlap => 400,
       -- HTML-aware separators, ordered from highest to lowest precedence
       separator => array[
           E'</article>', -- Split on major document sections
           E'</div>',    -- Split on div boundaries
           E'</section>',
           E'</p>',      -- Split on paragraphs
           E'<br>',      -- Split on line breaks
           E'</li>',     -- Split on list items
           E'. ',        -- Fall back to sentence boundaries
           ' '          -- Last resort: split on spaces
       ]
   ),
   formatting => ai.formatting_python_template('title: $title url: $url $chunk')
);

Enter fullscreen mode Exit fullscreen mode

立即试用 pgai Vectorizer(抢先体验版)

对于像 MarketReader 这样的公司来说,pgai Vectorizer 已经使 AI 开发变得更快、更高效:

“pgai Vectorizer 简化了我们的 AI 工作流程,从嵌入创建到实时同步,使 AI 开发更快、更简单——所有操作均在 PostgreSQL 中完成。”—— Web Begole,MarketReader(一家 AI 金融洞察公司)首席技术官

如果您准备好开始构建,我们将与合作伙伴 Ollama 一起举办一场开发者挑战赛,主题是使用开源软件构建 AI 应用。我们非常期待看到社区使用 PostgreSQL 和 pgai Vectorizer 构建出怎样的作品!

节省时间和精力。减少对嵌入的关注。将更多时间投入到构建你的下一款爆款 AI 应用上。立即免费试用 pgai Vectorizer:可在 GitHub 上获取,或在Timescale Cloud上完全托管(早期访问期间限时免费)。

文章来源:https://dev.to/tigerdata/pgai-vectorizer-automate-ai-embeddings-with-one-sql-command-in-postgresql-11kp