┌──────────────────────────────────────────────────┐│ Dify 平台 ││ ┌──────────┐ ┌───────────┐ ┌──────────────┐ ││ │ RAG 引擎 │ │ Agent │ │ 工作流引擎 │ ││ └─────┬────┘ └─────┬─────┘ └──────┬───────┘ ││ └─────────────┼───────────────┘ │└──────────────────────┼─────────────────────────────┘│┌─────────────┼─────────────┐▼ ▼ ▼┌──────────────┐ ┌──────────┐ ┌──────────────┐│ PostgreSQL │ │ 大模型 │ │ 外部工具 ││ + pgvector │ │ (推理) │ │ (API) ││ (向量存储) │ │ │ │ │└──────────────┘ └──────────┘ └──────────────┘
# 克隆 Difygit clone https://github.com/langgenius/dify.gitcd dify/docker# 配置环境变量cp .env.example .env
.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 自动创建的向量表(示意)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);
参数 | 说明 | 建议值 |
Top K | 返回最相关的文档数 | 3 – 5 |
Score 阈值 | 最低相似度分数 | 0.5 – 0.7 |
重排序 | 是否使用 Rerank 模型 | 推荐开启 |
Chunk 大小 | 文档切片大小 | 500 – 1000 字 |
# 自定义工具配置name: pg_querydescription: 查询 PostgreSQL 数据库parameters:- name: sqltype: stringdescription: 要执行的 SQL 查询
rag_search、ai_answer),由后端做参数校验后再访问数据库。POST https://your-pg-api/rpc/ai_answer{"question": "{{user_input}}"}
用户输入 → 意图识别 → 条件分支├── 知识问答 → RAG 检索 → 大模型生成├── 数据查询 → SQL 生成 → 执行 → 格式化└── 操作指令 → 工具调用 → 结果返回
VACUUM ANALYZE 保持统计信息新鲜。文档反馈