学习怎样使用你熟悉的PostgreSQL来自动化AI嵌入的创建。
管理像RAG、搜索和AI代理这样的AI系统的嵌入工作流程可能是一件麻烦事:需要同时管理多个工具、搭建复杂的流水线,并花费数小时来同步数据,特别是如果你不是ML或AI方面的专家。但这并不一定如此困难。
通过使用 pgai Vectorizer,现在正处于抢先体验阶段,你可以自动化创建向量嵌入,保持它们随着数据变化自动同步,并尝试和探索不同的 AI 模型——所有这些只需一条简单的 SQL 命令。无需额外工具,无需复杂的设置——只需用 PostgreSQL 就能搞定一切。
-- 生成一个向量化器来嵌入blogs表中的数据 -- 使用Open AI的text-embedding-3-small模型来嵌入数据 SELECT ai.create_vectorizer( 'public.blogs'::regclass, embedding => ai.embedding_openai('text-embedding-3-small', 1536), chunking => ai.chunking_recursive_character_splitter('content') );
进入全屏,退出全屏
Vectorizer 做的是:这里有个例子,用pgai向量化器来测试两种不同嵌入模型的RAG输出。
-- 使用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') ); -- 使用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), -- 注意:不同的维度 chunking => ai.chunking_recursive_character_text_splitter('content'), formatting => ai.formatting_python_template('Title: $title\nURL: $url\nContent: $chunk') ); -- 比较在相同RAG查询中两个向量器的结果 SELECT 'text-embedding-3-small' as 模型, generate_rag_response( '什么是AI?', 'public.blogs_embedding_small' ) as 回复 UNION ALL SELECT 'text-embedding-3-large' as 模型, generate_rag_response( '什么是AI?', 'public.blogs_embedding_large' ) as 回复;
进入全屏 退出全屏
专为扩展设计随着您的数据集的增长,pgai 向量化器也会随之扩展。当向量数目超过 100,000 时,它会自动优化搜索性能,利用像 HNSW 和 StreamingDiskANN 这样的向量索引。您可以完全掌控——定义分块和格式规则,根据您的需求定制嵌入。
这里是一个高级矢量化器配置的示例,在添加了10万行之后创建了一个ANN索引,并为HTML文件设置了自定义分块处理。
-- 高级向量器配置 SELECT ai.create_vectorizer( 'public.blogs'::regclass, 目标表 => 'blogs_embedding_recursive', 嵌入向量 => ai.embedding_openai('text-embedding-3-small', 1536), -- 当表中有100k行时自动创建StreamingDiskANN索引 索引设置 => ai.indexing_diskann(最小行数阈值 => 100000, 存储布局参数 => 'memory_optimized'), -- 对HTML内容应用递归文本切分,指定设置 递归文本切分 => ai.chunking_recursive_character_text_splitter( 'content', 切片大小(字符数) => 800, 重叠字符数 => 400, -- HTML感知的分隔符,从最高到最低优先级排序 分隔符 => array[ E'</article>', -- 在主要文档部分上分割 E'</div>', -- 在div边界上分割 E'</section>', E'</p>', -- 在段落上分割 E'<br>', -- 在换行符上分割 E'</li>', -- 在列表项上分割 E'. ', -- 回退到句子边界 ' ' -- 最后一个选择:在空格上分割 ] ), 格式化设置 => ai.formatting_python_template('标题:$title 链接:$url $chunk') );
全屏模式 退出全屏
现在就试试 pgai Vectorizer(抢先体验)对于像MarketReader这样的公司而言,,pgai矢量器已经让AI开发变得更快捷和更高效。
“pgai Vectorizer 让我们的 AI 流程更简单,从创建嵌入到实时同步,让 AI 开发更快更简便——全部都在 PostgreSQL 中搞定。” — Web Begole,MarketReader(一家 AI 金融洞察公司)的 CTO
如果你准备好开始构建了,我们有一个与 Ollama 合作举办的一个 Dev Challenge,关于使用开源软件开发 AI 应用。我们非常期待看到社区使用 PostgreSQL 和 pgai 向量器开发出的作品!
节省时间和精力。少关注嵌入,多花时间构建你的下一个杀手级AI应用。试试今天就免费试用pgai Vectorizer:在GitHub上获取它或在Timescale Cloud上全托管(免费试用期限有限)。现在就来试试点击这里。