Skip to Content
文档AI 工具AI 平台与自动化

AI 平台与自动化

AI 平台和自动化工具帮助你快速构建 AI 应用、搭建自动化工作流,将大语言模型的能力集成到实际业务中。本文将介绍 Dify、n8n 和 LangChain/LangGraph 在 Ubuntu 26.04 上的部署与使用。

Dify

Dify 是一个开源的 LLM 应用开发平台,提供可视化的 Prompt 编排、RAG(检索增强生成)、Agent 工作流等功能,支持多种模型提供商。

系统要求

  • Docker 和 Docker Compose
  • 至少 4GB 内存
  • 至少 20GB 磁盘空间

Docker Compose 部署

# 安装 Docker(如果尚未安装) sudo apt update sudo apt install -y docker.io docker-compose-v2 sudo usermod -aG docker $USER newgrp docker # 克隆 Dify 仓库 git clone https://github.com/langgenius/dify.git cd dify/docker # 复制环境变量配置文件 cp .env.example .env # 编辑配置文件(按需修改) nano .env

关键配置项:

# .env 文件中的重要配置 # 密钥(务必修改为随机值) SECRET_KEY=your-random-secret-key-here # 数据库配置 DB_USERNAME=postgres DB_PASSWORD=your-secure-password DB_HOST=db DB_PORT=5432 DB_DATABASE=dify # Redis 配置 REDIS_HOST=redis REDIS_PORT=6379 REDIS_PASSWORD=your-redis-password # 存储配置 STORAGE_TYPE=local STORAGE_LOCAL_PATH=storage # Web 配置 WEB_API_URL=http://localhost/api
# 启动 Dify docker compose up -d # 查看启动状态 docker compose ps # 查看日志 docker compose logs -f # 等待所有服务启动完成(约 1-2 分钟)

访问 Dify

# Dify Web 界面默认端口为 80 # 打开浏览器访问 # http://localhost # 首次访问需要设置管理员账号 # 设置邮箱和密码后即可登录

基本使用

Dify 的主要功能模块:

  1. 应用(Apps) — 创建和管理 AI 应用

    • 对话助手 — 构建聊天机器人
    • 文本生成 — 创建文本生成应用
    • Agent — 创建自主 AI 代理
    • 工作流 — 可视化编排复杂的 AI 流程
  2. 知识库(Knowledge) — RAG 功能

    • 上传文档(PDF、Word、Markdown 等)
    • 自动分段和向量化
    • 在对话中引用知识库内容
  3. 模型提供商(Model Providers) — 配置 AI 模型

配置模型提供商

在 Dify 设置中添加模型:

# 连接 OpenAI # Settings > Model Providers > OpenAI > 输入 API Key # 连接 Anthropic (Claude) # Settings > Model Providers > Anthropic > 输入 API Key # 连接本地 Ollama # Settings > Model Providers > Ollama # 模型名称: qwen2.5:14b # Base URL: http://host.docker.internal:11434 # (Docker 环境中使用 host.docker.internal 访问宿主机)

如果 Ollama 在宿主机上运行,需要配置允许 Docker 容器访问:

# 修改 Ollama 监听地址 sudo systemctl edit ollama # 添加: # [Service] # Environment="OLLAMA_HOST=0.0.0.0:11434" sudo systemctl restart ollama

更新 Dify

cd ~/dify/docker # 拉取最新代码 git pull origin main # 更新镜像并重启 docker compose pull docker compose down docker compose up -d

备份数据

# 备份 Dify 数据(数据库和存储) cd ~/dify/docker # 停止服务 docker compose down # 备份数据卷 sudo tar -czf ~/dify-backup-$(date +%Y%m%d).tar.gz \ ./volumes/ # 重启服务 docker compose up -d
Tip

Dify 支持通过 API 调用你创建的应用。在应用设置中可以获取 API 密钥和调用示例。这意味着你可以用 Dify 可视化地构建 AI 应用,然后通过 API 集成到自己的产品中。


n8n

n8n 是一款强大的可视化工作流自动化工具,支持数百个集成节点,包括 AI 相关节点(OpenAI、Ollama、向量数据库等),可以轻松构建 AI 自动化工作流。

安装 n8n

方法一:Docker 安装(推荐)

# 创建数据目录 mkdir -p ~/.n8n # 使用 Docker 运行 n8n docker run -d \ --name n8n \ -p 5678:5678 \ -v ~/.n8n:/home/node/.n8n \ -e N8N_SECURE_COOKIE=false \ --restart always \ n8nio/n8n

方法二:Docker Compose 安装

mkdir -p ~/n8n && cd ~/n8n cat > docker-compose.yml << 'EOF' services: n8n: image: n8nio/n8n container_name: n8n ports: - "5678:5678" environment: - N8N_SECURE_COOKIE=false - GENERIC_TIMEZONE=Asia/Shanghai volumes: - n8n_data:/home/node/.n8n extra_hosts: - "host.docker.internal:host-gateway" restart: always volumes: n8n_data: EOF docker compose up -d

方法三:npm 全局安装

# 安装 Node.js curl -fsSL https://deb.nodesource.com/setup_24.x | sudo -E bash - sudo apt install -y nodejs # 全局安装 n8n npm install -g n8n # 启动 n8n n8n start # 或在后台运行 n8n start &

访问 n8n

# 打开浏览器 # http://localhost:5678 # 首次访问需要创建账号

AI 工作流示例

n8n 内置了多个 AI 节点,可以构建强大的 AI 自动化流程。

示例 1:AI 客服自动回复

工作流节点连接:

Webhook 触发 → AI Agent(Claude/GPT) → 知识库检索 → 生成回复 → 发送响应

示例 2:文档自动摘要

文件监控 → 读取文件 → AI 摘要生成 → 保存结果 → 邮件通知

示例 3:连接本地 Ollama

在 n8n 中配置 Ollama 连接:

  1. 在工作流中添加 “Ollama Chat Model” 节点
  2. 创建 Ollama 凭证:
    • Base URL: http://host.docker.internal:11434(Docker 环境)
    • 或 http://localhost:11434(本地安装)
  3. 选择模型(如 qwen2.5:14b)

n8n 中的 AI 节点

节点类型用途
AI Agent创建自主 AI 代理
OpenAI Chat Model连接 OpenAI/兼容 API
Ollama Chat Model连接本地 Ollama
Anthropic Chat Model连接 Claude
Vector Store向量数据库操作
Text Splitter文本分割
Embeddings文本向量化
Memory对话记忆管理
Tool自定义 AI 工具

创建 AI Agent 工作流

1. 添加 "When chat message received" 触发器 2. 添加 "AI Agent" 节点 3. 连接模型:添加 "Ollama Chat Model" 子节点 4. 添加工具: - "Calculator" — 数学计算 - "Code" — 执行代码 - "HTTP Request" — 调用 API - "Wikipedia" — 搜索维基百科 5. 添加记忆:连接 "Window Buffer Memory" 节点 6. 保存并激活工作流
Note

n8n 社区版(self-hosted)完全免费,包含所有 AI 节点。n8n Cloud 版提供托管服务和额外功能。对于个人和小团队,自部署版本已经足够强大。


LangChain / LangGraph

LangChain 是构建 LLM 应用的主流开发框架,LangGraph 是其子项目,专注于构建有状态的多步骤 AI 代理工作流。

安装 LangChain

# 创建项目虚拟环境 mkdir -p ~/langchain-project && cd ~/langchain-project python3 -m venv venv source venv/bin/activate # 安装 LangChain 核心包 pip install langchain langchain-core # 安装模型提供商包 pip install langchain-anthropic # Claude pip install langchain-openai # OpenAI pip install langchain-ollama # Ollama(本地模型) # 安装 LangGraph pip install langgraph # 安装常用工具 pip install langchain-community # 社区集成 pip install langchain-chroma # Chroma 向量数据库 pip install langchain-text-splitters # 文本分割

LangChain 基础示例

# basic_chain.py from langchain_ollama import ChatOllama from langchain_core.prompts import ChatPromptTemplate from langchain_core.output_parsers import StrOutputParser # 使用本地 Ollama 模型 llm = ChatOllama(model="qwen2.5:14b", base_url="http://localhost:11434") # 创建提示模板 prompt = ChatPromptTemplate.from_messages([ ("system", "你是一位 Ubuntu Linux 专家,擅长解答系统管理问题。"), ("human", "{question}") ]) # 构建链 chain = prompt | llm | StrOutputParser() # 调用链 response = chain.invoke({"question": "如何查看 Ubuntu 的磁盘使用情况?"}) print(response)
# 运行示例 python basic_chain.py

RAG 示例(检索增强生成)

# rag_example.py from langchain_ollama import ChatOllama, OllamaEmbeddings from langchain_chroma import Chroma from langchain_text_splitters import RecursiveCharacterTextSplitter from langchain_core.prompts import ChatPromptTemplate from langchain_core.runnables import RunnablePassthrough from langchain_core.output_parsers import StrOutputParser # 1. 准备文档 documents = [ "Ubuntu 26.04 LTS 代号 Resolute Raccoon,计划于 2026 年 4 月 23 日发布。", "Ubuntu 使用 APT 作为包管理器,可以通过 apt install 安装软件。", "Ubuntu 的默认桌面环境是 GNOME,也支持 KDE、XFCE 等。", "Ubuntu Server 版本不包含图形界面,适合服务器部署。", ] # 2. 文本分割 text_splitter = RecursiveCharacterTextSplitter( chunk_size=200, chunk_overlap=50 ) splits = text_splitter.create_documents(documents) # 3. 创建向量数据库 embeddings = OllamaEmbeddings(model="nomic-embed-text") vectorstore = Chroma.from_documents(splits, embeddings) retriever = vectorstore.as_retriever() # 4. 构建 RAG 链 llm = ChatOllama(model="qwen2.5:14b") prompt = ChatPromptTemplate.from_template(""" 根据以下上下文回答问题。如果上下文中没有答案,请说不知道。 上下文: {context} 问题: {question} """) rag_chain = ( {"context": retriever, "question": RunnablePassthrough()} | prompt | llm | StrOutputParser() ) # 5. 查询 result = rag_chain.invoke("Ubuntu 26.04 的代号是什么?") print(result)
# 安装额外依赖并运行 pip install chromadb python rag_example.py

LangGraph Agent 示例

# agent_example.py from langchain_ollama import ChatOllama from langgraph.prebuilt import create_react_agent from langchain_core.tools import tool # 定义工具 @tool def search_docs(query: str) -> str: """搜索 Ubuntu 文档获取信息""" docs = { "apt": "APT 是 Ubuntu 的包管理工具,使用 apt install 安装软件", "systemd": "systemd 是 Ubuntu 的服务管理系统,使用 systemctl 管理服务", } for key, value in docs.items(): if key in query.lower(): return value return "未找到相关文档" @tool def run_command(command: str) -> str: """模拟运行 Linux 命令并返回结果""" return f"命令 '{command}' 已执行(模拟)" # 创建 Agent llm = ChatOllama(model="qwen2.5:14b") agent = create_react_agent(llm, [search_docs, run_command]) # 运行 Agent result = agent.invoke({ "messages": [{"role": "user", "content": "如何在 Ubuntu 上安装 nginx?"}] }) for message in result["messages"]: print(f"[{message.type}]: {message.content}")

LangSmith 调试(可选)

# LangSmith 提供 LangChain 应用的可视化调试和监控 # 注册 https://smith.langchain.com 获取 API 密钥 export LANGCHAIN_TRACING_V2=true export LANGCHAIN_API_KEY="your-langsmith-api-key" export LANGCHAIN_PROJECT="my-ubuntu-project" # 之后运行的 LangChain 代码会自动上报调用链数据到 LangSmith
Tip

LangChain 的生态非常庞大,新手建议从简单的 Chain 开始学习,然后逐步过渡到 RAG 和 Agent。LangGraph 适合构建复杂的多步骤代理,如果只需要简单的对话应用,使用 LangChain 的基础 Chain 就足够了。


平台对比

特性Difyn8nLangChain
类型可视化平台工作流自动化开发框架
使用方式Web 界面Web 界面Python 代码
学习曲线低中等较高
灵活性中等高极高
RAG 支持内置通过节点通过代码
Agent 支持内置通过 AI 节点LangGraph
部署方式DockerDocker/npmpip
适合人群非技术用户自动化爱好者开发者
开源是是(社区版)是

选择建议

  • 想快速构建 AI 应用、不想写代码 → 选择 Dify
  • 需要将 AI 集成到自动化工作流中 → 选择 n8n
  • 需要完全自定义的 AI 应用、熟悉 Python → 选择 LangChain/LangGraph
  • 可以组合使用:用 Dify 快速原型,用 n8n 做自动化调度,用 LangChain 开发核心逻辑
Last updated on