timescale/pgai-vectorizer-worker
和其他AI应用的流程。
pgai的目标是让AI工作更简单、更易于开发者使用。由于数据是大多数AI应用的基础,pgai致力于简化在AI工作流中利用数据的过程。其核心价值在于将AI能力与PostgreSQL紧密集成,使开发者能够直接在数据库中处理向量嵌入、执行语义搜索、实现RAG等AI任务,无需复杂的外部系统集成。
适用于需要基于企业私有数据构建问答系统的场景,如内部知识库、客户支持助手等,通过SQL直接实现检索与生成一体化。
为应用添加语义搜索能力,支持用户以自然语言查询结构化数据,提升搜索准确性(如电商产品搜索、文档检索)。
对现有业务数据(如用户评论、工单记录)进行自动分类或总结,辅助业务分析与决策。
需要存储、索引和查询向量嵌入的场景,尤其是大规模向量数据(百万级以上)的高效管理。
创建免费试用账户,直接使用预配置的pgai环境,参考Vectorizer文档。
使用官方预构建Docker镜像,包含pgai及依赖组件(如pgvector、pgvectorscale)。
从GitHub仓库克隆源码,按文档编译安装(需PostgreSQL 14+环境)。
bashdocker run -d \ --name pgai-instance \ -e POSTGRES_PASSWORD=your_secure_password \ -e POSTGRES_DB=pgai_demo \ -e OPENAI_API_KEY="your_openai_api_key" # 可选,根据使用的AI提供商配置 -p 5432:5432 \ timescale/pgai:latest
yamlversion: '3.8' services: pgai: image: timescale/pgai:latest container_name: pgai-postgres environment: POSTGRES_PASSWORD: your_secure_password POSTGRES_USER: pgai_user POSTGRES_DB: pgai_demo OLLAMA_BASE_URL: "[***]" # 若使用Ollama,配置服务地址 ANTHROPIC_API_KEY: "your_anthropic_api_key" # 若使用Anthropic Claude ports: - "5432:5432" volumes: - pgai_data:/var/lib/postgresql/data depends_on: - ollama # 若使用本地Ollama,添加依赖服务 ollama: image: ollama/ollama:latest container_name: pgai-ollama volumes: - ollama_data:/root/.ollama ports: - "***:***" volumes: pgai_data: ollama_data:
参考快速入门指南,10分钟内完成自托管PostgreSQL环境的pgai配置,实现数据嵌入自动化。
连接数据库并启用pgai扩展:
sqlCREATE EXTENSION pgai;
创建带向量字段的表:
sqlCREATE TABLE documents ( id SERIAL PRIMARY KEY, content TEXT NOT NULL, embedding vector(1536) -- 向量维度需与模型匹配(如OpenAI text-embedding-3-small为1536) );
配置Vectorizer自动生成嵌入:
sqlSELECT pgai.vectorizer_create( table_name => 'documents', source_column => 'content', embedding_column => 'embedding', model => 'openai:text-embedding-3-small' );
插入数据后自动生成嵌入:
sqlINSERT INTO documents (content) VALUES ('pgai是PostgreSQL的AI扩展工具'); -- embedding字段将自动填充向量值
设置环境变量:
bashexport OPENAI_API_KEY="sk-..." # Docker部署时通过-e传递
测试模型调用:
sqlSELECT pgai.openai_chat_completion( model => 'gpt-4o', messages => '[{"role":"user","content":"介绍pgai的核心功能"}]' );
启动Ollama服务并拉取模型:
bashdocker exec -it pgai-ollama ollama pull llama3
配置pgai连接Ollama:
sqlSELECT pgai.ollama_configure(base_url => '[***]
生成向量嵌入:
sqlSELECT pgai.ollama_embed( model => 'llama3', input => 'pgai支持在PostgreSQL中开发AI应用' );
查询与"AI工具"相关的文档:
sqlSELECT content, pgai.cosine_similarity( embedding, pgai.openai_embed('text-embedding-3-small', 'AI工具') ) AS similarity FROM documents ORDER BY similarity DESC LIMIT 3;
基于检索到的文档生成回答:
sqlWITH retrieved_docs AS ( SELECT content FROM documents ORDER BY pgai.cosine_similarity( embedding, pgai.openai_embed('text-embedding-3-small', 'pgai如何实现RAG?') ) DESC LIMIT 2 ) SELECT pgai.openai_chat_completion( model => 'gpt-4o', messages => format( '[{"role":"system","content":"基于以下文档回答问题: %s"},{"role":"user","content":"pgai如何实现RAG?"}]', array_agg(content)::TEXT ) ) AS rag_answer FROM retrieved_docs;
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务