🚀 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')
);
pgai Vectorizer 的功能:
- 使用 SQL 创建嵌入:仅使用一个命令即可从多个文本列生成向量嵌入,从而简化 AI 工作流程的关键部分。
- 自动同步:嵌入会随着数据的变化而更新 - 无需人工干预。
- 快速模型切换:使用 SQL 立即测试不同的 AI 模型 - 无需重新处理数据。
- 测试和推出:比较模型和分块技术、A/B 测试,并自信地推出更新,无需停机。
以下是使用 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')
);
立即试用 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