了解如何使用您熟悉且喜愛的 PostgreSQL 自動建立 AI 嵌入。
管理 RAG、搜尋和 AI 代理等 AI 系統的嵌入工作流程可能會很麻煩:同時使用多個工具、設定複雜的管道以及花費數小時同步資料,特別是如果您不是 ML 或 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')
);
使用 SQL 建立嵌入:只需一個命令即可從多個文字列產生向量嵌入,從而簡化 AI 工作流程的關鍵部分。
自動同步:嵌入隨著資料變化而更新,無需手動幹預。
快速模型切換:使用 SQL 立即測試不同的 AI 模型,無需重新處理資料。
測試與推出:比較模型和分塊技術、A/B 測試,並自信地推出更新,無需停機。
![pgai Vectorizer 系統架構 – Pgai Vectorizer 透過使用 PostgreSQL 中的工作佇列和設定表自動從來源資料表建立和更新嵌入,而嵌入是在與 OpenAI API 等嵌入服務互動的外部工作程序中建立的。
](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8a1wkn7uugpjmg7dsdp9.png)
以下是使用 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;
隨著資料集的成長,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')
);
對於像 MarketReader 這樣的公司來說,pgai Vectorizer 讓 AI 開發更快、更有效率:
“pgai Vectorizer 簡化了我們的 AI 工作流程,從嵌入建立到實時同步,使 AI 開發更快、更簡單——一切都在 PostgreSQL 中。” — Web Begole,AI 金融洞察公司 MarketReader 首席技術官
如果您準備好開始建置,我們將與 Ollama 的合作夥伴一起舉辦開發挑戰賽,主題是使用開源軟體建立 AI 應用程式。我們非常高興看到社群使用 PostgreSQL 和 pgai Vectorizer 建立的內容!
節省時間和精力。減少對嵌入的關注。花更多時間建立您的下一個殺手級人工智慧應用。立即免費試用 pgai Vectorizer:在 GitHub 上取得或在Timescale Cloud上完全管理(搶先體驗期間限時免費)。