Langflow容器与动态PostgreSQL集成

预配置的Langflow Docker容器,支持动态PostgreSQL连接和MCP工具集成,适用于数据库辅助开发和自然语言处理场景。

  • by SebampitakoDuncan
  • Dockerfile
  • 本地部署
  • 更新于
在 GitHub 查看 SebampitakoDuncan/langflow-custom-deployment

使用说明

具有动态PostgreSQL MCP集成的Langflow自定义容器

此Docker容器提供了一个预配置的Langflow实例,其中包含:

  • 默认流: view (1).json -集成MCP Tools的全面数据库辅助流程
  • 动态PostgreSQL连接:可通过环境变量完全配置
  • MCP服务器集成:自动PostgreSQL MCP服务器配置,可适应任何PostgreSQL设置
  • 通用兼容性:适用于任何PostgreSQL配置的笔记本电脑

快速开始

基本用法(使用现有的PostgreSQL容器)

docker run -d -p 7860:7860 \
  --network your-postgres-network \
  -e POSTGRES_HOST=your-postgres-container \
  -e POSTGRES_PORT=5432 \
  -e POSTGRES_USER=your-username \
  -e POSTGRES_PASSWORD=your-password \
  -e POSTGRES_DB=your-database \
  --name langflow-custom \
  duncan3/langflow-custom:1.2.0

使用外部PostgreSQL数据库

docker run -d -p 7860:7860 \
  -e POSTGRES_HOST=your-postgres-host.com \
  -e POSTGRES_PORT=5432 \
  -e POSTGRES_USER=your-username \
  -e POSTGRES_PASSWORD=your-password \
  -e POSTGRES_DB=your-database \
  --name langflow-custom \
  duncan3/langflow-custom:1.2.0

使用Docker Compose

version: '3.8'
services:
  langflow:
    image: duncan3/langflow-custom:1.2.0
    ports:
      - "7860:7860"
    environment:
      - POSTGRES_HOST=postgres
      - POSTGRES_PORT=5432
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=mypassword
      - POSTGRES_DB=newtest
    depends_on:
      - postgres
    networks:
      - langflow-network

  postgres:
    image: postgres:15
    environment:
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=mypassword
      - POSTGRES_DB=newtest
    volumes:
      - postgres_data:/var/lib/postgresql/data
    networks:
      - langflow-network

networks:
  langflow-network:
    driver: bridge

volumes:
  postgres_data:

环境变量

变量 描述 默认值 必填
POSTGRES_HOST PostgreSQL服务器主机名 localhost 是的
POSTGRES_PORT PostgreSQL服务器端口 5432 是的
POSTGRES_USER PostgreSQL用户名 postgres 是的
POSTGRES_PASSWORD PostgreSQL密码 mypassword 是的
POSTGRES_DB PostgreSQL数据库名称 newtest 是的

特性

默认流量: view (1).json

该容器包括预配置的流,该流具有:

  • 聊天输入/输出:交互式聊天界面
  • 代理组件:具有PostgreSQL专业知识的数据库助理
  • MCP工具:PostgreSQL查询执行能力
  • OpenRouter集成:用于自然语言处理的AI模型

MCP服务器集成

  • PostgreSQL MCP服务器自动配置
  • 动态连接字符串生成
  • 实时数据库查询功能
  • 模式探索和数据分析

流量组件

  1. 聊天输入:用户消息输入
  2. 代理:具有PostgreSQL知识的数据库助理
  3. MCP工具:PostgreSQL查询执行
  4. OpenRouter:AI语言模型
  5. 聊天输出:响应显示

用法示例

访问Web界面

运行后,请访问Langflow: http://localhost:7860

查询示例

  • “数据库中有哪些表?”
  • “显示用户表的架构”
  • “产品表中有多少条记录?”
  • “表之间的关系是什么?”

故障排除

连接问题

  1. 验证PostgreSQL是否可访问:

    docker exec langflow-custom-v2 python -c "import psycopg2; conn = psycopg2.connect(host='your-host', port=5432, user='your-user', password='your-password', database='your-db'); print('Connected!'); conn.close()"
    
  2. 检查环境变量:

    docker exec langflow-custom-v2 env | grep POSTGRES
    
  3. 验证网络连接:

    docker exec langflow-custom-v2 ping -c 2 your-postgres-host
    

MCP服务器问题

  • 确保PostgreSQL凭据正确
  • 验证数据库是否存在并且可以访问
  • 检查MCP服务器是否可以连接到数据库

安全说明

  • 永远不要公开PostgreSQL凭据 在日志或环境文件中
  • 使用Docker秘密 用于生产部署
  • 限制网络访问 到PostgreSQL容器
  • 使用强密码 用于数据库连接

版本历史记录

  • v1.2.0版本: 动态MCP配置 -删除了硬编码值,可通过环境变量完全配置
  • v1.1.0版本:添加了动态PostgreSQL配置和 view (1).json 流动
  • v1.0.0:具有基本Langflow设置的初始版本

v1.2.0的新增功能

✅ 通用兼容性

  • 没有硬编码值:流不再包含硬编码的PostgreSQL连接详细信息
  • 动态MCP配置:MCP服务器自动使用环境变量
  • 适用于任何笔记本电脑:只需通过环境变量提供PostgreSQL连接详细信息

✅ 优化启动流程

  • 清晰的配置反馈:准确显示正在使用的PostgreSQL连接
  • 默认值:如果未设置环境变量,则提供合理的默认值
  • 更好的错误处理:如果配置不完整,请清除警告

✅ 启动输出示例

✅ MCP Server configured with PostgreSQL connection:
   Host: host.docker.internal:5432
   Database: postgres
   User: postgres
   DATABASE_URL: postgresql://postgres:mypassword@host.docker.internal:5432/postgres
🚀 Starting Langflow...

支持

对于问题或疑问:

  1. 检查容器日志: docker logs langflow-custom-v2
  2. 验证PostgreSQL连接参数
  3. 确保设置了所有必需的环境变量