Timescale为PostgreSQL推出AI向量工具,用单行SQL自动生成Embedding,大幅简化向量数据库集成流程。
学习如何使用你熟悉并喜爱的 PostgreSQL 来自动化 AI 嵌入创建。
管理 RAG、搜索和 AI agents 等 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 测试两个不同嵌入模型的 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)优化搜索性能。你掌握控制权——定义分块和格式化规则来定制适合你需求的嵌入。
下面是一个高级向量化器配置的示例,在添加 100k 行后创建 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 中完成。"——MarketReader(一家 AI 金融洞察公司)的首席技术官 Web Begole
如果你准备开始构建,我们与 Ollama 的合作伙伴一起举办了一个开发者挑战赛,主题是用开源软件构建 AI 应用。我们非常期待看到社区使用 PostgreSQL 和 pgai Vectorizer 构建的内容!
节省时间和精力。少花时间在嵌入上。花更多时间构建你的下一个杀手级 AI 应用。立即免费尝试 pgai Vectorizer:在 GitHub 上获取或在 Timescale Cloud 上获得完全托管版本(在早期访问期间免费提供有限时间)。