云数据库 PostgreSQL 基于 PostgreSQL + Dify 构建 AI 应用

Dify 是一个开源的 LLM 应用开发平台,支持通过可视化方式构建 RAG、Agent、工作流等 AI 应用。结合腾讯云数据库 PostgreSQL 作为向量存储和知识库后端,可以快速构建企业级 AI 应用。

相关产品
云数据库 PostgreSQL 产品页,含版本规格、价格与购买入口。

一、架构

┌──────────────────────────────────────────────────┐│ Dify 平台 ││ ┌──────────┐ ┌───────────┐ ┌──────────────┐ ││ │ RAG 引擎 │ │ Agent │ │ 工作流引擎 │ ││ └─────┬────┘ └─────┬─────┘ └──────┬───────┘ ││ └─────────────┼───────────────┘ │└──────────────────────┼─────────────────────────────┘ │ ┌─────────────┼─────────────┐ ▼ ▼ ▼┌──────────────┐ ┌──────────┐ ┌──────────────┐│ PostgreSQL │ │ 大模型 │ │ 外部工具 ││ + pgvector │ │ (推理) │ │ (API) ││ (向量存储) │ │ │ │ │└──────────────┘ └──────────┘ └──────────────┘

二、Docker Compose 部署

# 克隆 Difygit clone https://github.com/langgenius/dify.gitcd dify/docker# 配置环境变量cp .env.example .env

三、配置 PostgreSQL 作为向量数据库

在 .env 中配置:

# 向量数据库类型选择 pgvectorVECTOR_STORE=pgvector# PostgreSQL 连接信息PGVECTOR_HOST=your-pg-instance.tencentcdb.comPGVECTOR_PORT=5432PGVECTOR_USER=dify_userPGVECTOR_PASSWORD=your-passwordPGVECTOR_DATABASE=dify_vectors

四、数据库初始化

— 创建 Dify 专用数据库CREATE DATABASE dify_vectors;– 连接到 dify_vectors 数据库后执行:CREATE EXTENSION IF NOT EXISTS vector;– 创建 Dify 用户CREATE USER dify_user WITH PASSWORD 'secure-password';GRANT ALL PRIVILEGES ON DATABASE dify_vectors TO dify_user;GRANT ALL ON SCHEMA public TO dify_user;

五、在 Dify 中配置

1. 登录 Dify 控制台。

2. 进入知识库 → 创建知识库。

3. 上传文档(支持 PDF、TXT、Markdown、HTML)。

4. 选择嵌入模型(推荐 BGE-M3)。

5. 向量数据自动存储到 PostgreSQL。

六、底层存储结构

Dify 在 PostgreSQL 中自动创建的表(具体表结构以 Dify 当前版本为准):

— Dify 自动创建的向量表(示意)CREATE TABLE embedding_documents ( id UUID PRIMARY KEY, dataset_id UUID, document_id UUID, content TEXT, embedding vector(1024), metadata JSONB, created_at TIMESTAMPTZ);– HNSW 索引CREATE INDEX ON embedding_documentsUSING hnsw (embedding vector_cosine_ops);

七、创建 RAG 聊天应用

1. 新建应用 → 选择聊天助手。

2. 添加知识库上下文。

3. 配置检索策略:

·向量检索(语义搜索)。

·全文检索(关键词匹配)。

·混合检索(推荐)。

4. 设置系统提示词。

5. 选择大模型(如腾讯混元、通义、Qwen 等已开通的模型)。

八、高级检索配置

参数 说明 建议值
Top K 返回最相关的文档数 3 – 5
Score 阈值 最低相似度分数 0.5 – 0.7
重排序 是否使用 Rerank 模型 推荐开启
Chunk 大小 文档切片大小 500 – 1000 字

九、配置 Agent 工具

可以为 Agent 添加数据库查询工具:

# 自定义工具配置name: pg_querydescription: 查询 PostgreSQL 数据库parameters: – name: sql type: string description: 要执行的 SQL 查询

注意:说明:

注意:将 SQL 直接交给 Agent 执行存在注入风险。建议改为白名单函数 / 视图调用模式:仅暴露固定签名的 RPC 函数(如 rag_search、ai_answer),由后端做参数校验后再访问数据库。

十、结合 tencentdb_ai

通过 Dify 的 HTTP 工具调用 PostgreSQL REST API:

POST https://your-pg-api/rpc/ai_answer{"question": "{{user_input}}"}

十一、工作流应用

适合复杂的多步骤 AI 处理流程:

用户输入 → 意图识别 → 条件分支 ├── 知识问答 → RAG 检索 → 大模型生成 ├── 数据查询 → SQL 生成 → 执行 → 格式化 └── 操作指令 → 工具调用 → 结果返回

十二、性能优化

1. 索引类型:大规模数据(>100 万向量)使用 pgvectorscale DiskANN。

2. 连接池:配置 PgBouncer 管理连接。

3. 分批索引:大量文档分批导入,避免内存溢出。

4. 定期维护:VACUUM ANALYZE 保持统计信息新鲜。

十三、注意事项

·Dify 社区版免费,企业版需付费。

·PostgreSQL 版本需 ≥ 14以使用 pgvector。

·确保 Dify 服务器和 PostgreSQL 在同一 VPC。

·生产环境建议 PostgreSQL 规格 ≥ 4核8G。

·数据库密码请通过环境变量或密钥管理服务注入,禁止硬编码。

十四、相关文档

·pgvector 向量扩展使用指南。

·tencentdb_ai 插件功能介绍。

·Dify 产品文档。

赞 (0)
上一篇 4天前
下一篇 4天前