🚀 pgai Vectorizer:使用 PostgreSQL 中的一条 SQL 命令自动执行 AI 嵌入

2025-06-07

🚀 pgai Vectorizer:使用 PostgreSQL 中的一条 SQL 命令自动执行 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 等嵌入服务交互的外部工作器中创建的。<br>

以下是使用 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 可以随您扩展。一旦向量超过 100,000 个,它就会自动使用向量索引(例如 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/timescale/pgai-vectorizer-automate-ai-embeddings-with-one-sql-command-in-postgresql-11kp
PREV
在 TypeScript 中使用类型而不是接口
NEXT
我给 XState 和 statecharts 的情书♥