前途科技
  • 科技
  • AI
    • AI 前沿技术
    • Agent生态
    • AI应用场景
    • AI 行业应用
  • 初创
  • 报告
  • 学习中心
    • 编程与工具
    • 数据科学与工程
我的兴趣
前途科技前途科技
Font ResizerAa
站内搜索
Have an existing account? Sign In
Follow US
Copyright © 2024 AccessPath.com, 前途国际科技咨询(北京)有限公司,版权所有。 | 京ICP备17045010号-1 | 京公网安备 11010502033860号
Agent生态

利用Dify、RustFS和Milvus构建文档多语言翻译AI工作流

NEXTECH
Last updated: 2025年10月6日 上午7:02
By NEXTECH
Share
123 Min Read
SHARE

本文详细介绍如何利用 Dify、RustFS 和 Milvus 搭建一个文档多语言翻译工作流。该工作流能够将中文文档高效翻译为英语、日语、俄语、韩语,并可根据需求扩展至更多语种。AI 技术的应用极大地提升了文档撰写和多语种翻译的效率。

Contents
关于 Dify关于 RustFS 和 Milvus安装 Dify构建 Dify 工作流运行工作流结果验证总结

关于 Dify

Dify 是一款开源的大语言模型(LLM)应用开发平台。它融合了后端即服务(Backend as Service)和 LLMOps 的理念,使开发者可以快速搭建生产级的生成式 AI 应用。即使是非技术人员,也能参与到 AI 应用的定义和数据运营过程中。目前 Dify 在 GitHub 上的 Star 已经超过116k。

关于 RustFS 和 Milvus

有关 RustFS 和 Milvus 的更多信息,可查阅相关文章:

  • Milvus + RustFS + Vibe Coding,快速 DIY 一个 Chatbot
  • 新一代对象存储 RustFS 的 MCP 扩展实践

安装 Dify

Dify 官方提供了docker-compose.yaml文件,支持通过 Docker Compose 方式私有化部署 Dify 实例。官方也提供了这种安装模式下各组件的架构示意图:

Dify Docker Compose 架构图

从架构图中可以看出,Dify 会将向量数据存储到向量数据库。官方支持多款向量数据库,如weaviate、qdrant、opensearch、milvus等。用户需通过VECTOR_STORE指定使用的向量数据库。本实践将使用milvus,因此需要对docker-compose.yaml文件进行相应变更。

You Might Also Like

豆包AI与Claude Code:一句话打造《红楼梦》互动游戏及Agent开发实践
Agent-First数据库的畅想:UC Berkeley论文深度解析AI Agent如何重塑数据库
Dify Plugin Daemon高可用部署实践:解决插件不加载与稳定性挑战
如何为AI智能体定价:挑战、模式与实践经验

Milvus 配置修改

配置修改如下:

  • 指定使用 milvus 向量数据库

VECTOR_STORE: ${VECTOR_STORE:-milvus}

  • 镜像更换

将当前官方默认的 2.5.15 替换为 2.6.0 或 2.6.2

image: milvusdb/milvus:v2.6.0

使用默认的2.5.15镜像曾出现 IndexNode 19530 端口被占用的问题,更换镜像后问题消失。

  • 修改 milvus 地址

MILVUS_URI: ${MILVUS_URI:-http://milvus-standalone:19530}

Minio 配置修改

在之前的文章中提到,Milvus 支持将 Minio 配置为对象存储后端。由于 RustFS 可以完全替代 Minio,因此可以将 RustFS 配置为 Milvus 的对象存储后端。在docker-compose.yaml文件中添加以下内容:

rustfs:   container_name: dify-rustfs   image: rustfs/rustfs:1.0.0-alpha.60   environment:     - RUSTFS_VOLUMES=/data/rustfs0,/data/rustfs1,/data/rustfs2,/data/rustfs3     - RUSTFS_ADDRESS=0.0.0.0:9000     - RUSTFS_CONSOLE_ADDRESS=0.0.0.0:9001     - RUSTFS_CONSOLE_ENABLE=true     - RUSTFS_EXTERNAL_ADDRESS=:9000     - RUSTFS_CORS_ALLOWED_ORIGINS=*     - RUSTFS_CONSOLE_CORS_ALLOWED_ORIGINS=*     - RUSTFS_ACCESS_KEY=rustfsadmin     - RUSTFS_SECRET_KEY=rustfsadmin   ports:     - "9000:9000"# S3 API port     - "9001:9001"# Console port   volumes:     - rustfs_data_0:/data/rustfs0     - rustfs_data_1:/data/rustfs1     - rustfs_data_2:/data/rustfs2     - rustfs_data_3:/data/rustfs3     - logs_data:/app/logs   restart: unless-stopped   healthcheck:     test:       [         "CMD",         "sh", "-c",         "apk add curl && curl -f http://localhost:9001/health"       ]     interval: 30s     timeout: 10s     retries: 3     start_period: 40s   networks:     - milvus

同时注释掉与 Minio 相关的内容:

minio:   container_name: milvus-minio   image: minio/minio:RELEASE.2023-03-20T20-16-18Z   profiles:     - milvus   environment:     MINIO_ACCESS_KEY: ${MINIO_ACCESS_KEY:-minioadmin}     MINIO_SECRET_KEY: ${MINIO_SECRET_KEY:-minioadmin}   volumes:     - ./volumes/milvus/minio:/minio_data   command: minio server /minio_data --console-address ":9001"   healthcheck:     test: ["CMD","curl","-f","http://localhost:9000/minio/health/live"]     interval: 30s     timeout: 20s     retries: 3   networks:     - milvus

更新以下环境变量信息:

MINIO_ACCESS_KEY: ${RUSTFS_ACCESS_KEY:-rustfsadmin}  MINIO_SECRET_KEY: ${RUSTFS_SECRET_KEY:-rustfsadmin}

此外,需要告知 Dify 使用 S3 存储而非本地存储:

STORAGE_TYPE: ${STORAGE_TYPE:-s3}

将 S3 相关的环境变量信息更改为 RustFS 实例的具体信息:

S3_ENDPOINT: ${S3_ENDPOINT:-http://rustfs:9000}  S3_REGION: ${S3_REGION:-cn-east-1}  S3_BUCKET_NAME: ${S3_BUCKET_NAME:-difyai}  S3_ACCESS_KEY: ${S3_ACCESS_KEY:-rustfsadmin}  S3_SECRET_KEY: ${S3_SECRET_KEY:-rustfsadmin}  S3_USE_AWS_MANAGED_IAM: ${S3_USE_AWS_MANAGED_IAM:-false}

以上是本次部署所需的配置修改。接下来将正式开始安装部署。

安装 Dify

首先将 Dify 代码克隆到本地,然后按照前面步骤中的变更修改docker-compose.yaml文件,并执行以下命令进行安装:

docker compose -f docker-compose.yaml up -d

查看安装结果,确认所有服务均正常运行:

docker compose psNAME                   IMAGE                                            COMMAND                       SERVICE             CREATED     STATUS                                      PORTSdify-rustfs               rustfs/rustfs:1.0.0-alpha.58                     "/entrypoint.sh rust…"   rustfs               3 days ago   Up 3 days (healthy)                     0.0.0.0:9000-9001->9000-9001/tcp, [::]:9000-9001->9000-9001/tcpdocker-api-1             langgenius/dify-api:1.9.0                       "/bin/bash /entrypoi…"   api                 3 days ago   Up 3 days                               0.0.0.0:5001->5001/tcp, [::]:5001->5001/tcpdocker-db-1               postgres:15-alpine                               "docker-entrypoint.s…"   db                   3 days ago   Up 3 days (healthy)                     5432/tcpdocker-nginx-1         nginx:latest                                   "sh -c 'cp /docker-e…"   nginx                3 days ago   Up 3 days                               0.0.0.0:80->80/tcp, [::]:80->80/tcp, 0.0.0.0:443->443/tcp, [::]:443->443/tcpdocker-plugin_daemon-1   langgenius/dify-plugin-daemon:0.3.0-local   "/bin/bash -c /app/e…"   plugin_daemon       3 days ago   Up 3 days                               0.0.0.0:5003->5003/tcp, [::]:5003->5003/tcpdocker-redis-1             redis:6-alpine                                 "docker-entrypoint.s…"   redis                3 days ago   Up 3 days (healthy)                     6379/tcpdocker-sandbox-1         langgenius/dify-sandbox:0.2.12               "/main"                        sandbox             3 days ago   Up 3 days (healthy)                     docker-ssrf_proxy-1       ubuntu/squid:latest                         "sh -c 'cp /docker-e…"   ssrf_proxy          3 days ago   Up 3 days                               3128/tcpdocker-web-1             langgenius/dify-web:1.9.0                       "/bin/sh ./entrypoin…"   web                 3 days ago   Up 3 days                               3000/tcpdocker-worker-1           langgenius/dify-api:1.9.0                       "/bin/bash /entrypoi…"   worker               3 days ago   Up 3 days                               5001/tcpdocker-worker_beat-1    langgenius/dify-api:1.9.0                       "/bin/bash /entrypoi…"   worker_beat         3 days ago   Up 3 days                               5001/tcpmilvus-etcd               quay.io/coreos/etcd:v3.5.5                    "etcd -advertise-cli…"   etcd                 3 days ago   Up 3 days (healthy)                     2379-2380/tcp milvus-standalone        milvusdb/milvus:v2.6.0                       "/tini -- milvus run…"   milvus-standalone   3 days ago   Up 4 seconds (health: starting)   0.0.0.0:9091->9091/tcp, [::]:9091->9091/tcp, 0.0.0.0:19530->19530/tcp, [::]:19530->19530/tcp

所有服务正常运行后,可通过localhost/install访问 Dify Web 页面(在云端服务器安装时,需将localhost替换为服务器 IP)。

初始化登录时需设置邮箱地址和密码,设置完毕并登录后,即可看到 Dify Web 页面:

Dify Web 页面截图

本指南将演示如何利用 Dify 构建一个工作流,实现将 RustFS 与 Milvus 集成的中文 Markdown 文档翻译成英语、日语、俄语以及韩语。

构建 Dify 工作流

整体流程图如下:

Dify 文档多语言翻译工作流示意图

上传文件

Dify 工作流支持文件上传,且支持多种文件格式,包括TXT、PDF、MARKDOWN、DOCS等。

在 Dify Start 节点的SETTINGS --> INPUT FIELD中选择文件类型和文件上传方式:

Dify Start 节点文件上传配置

本实践使用 RustFS 和 Milvus 集成的 Markdown 文档,因此文件类型选择Document,上传方式选择Local Upload。

读取文件内容

由于大语言模型(LLM)无法直接读取文件内容,Dify 提供了文档提取器来读取 Start 节点中上传的内容,并将其作为输入传递给 LLM 进行翻译。

在 Start 节点后添加一个DOC EXTRACTOR节点。其输入为 Start 节点上传的 Markdown 文件,输出为提取的文本内容(生成一个名为 text 的变量,可供后续引用)。这些内容将作为 LLM 的输入,因此在DOC EXTRACTOR节点的NEXT STEP中均连接 LLM 节点。

Dify DOC EXTRACTOR 节点配置

用 LLM 翻译文档

Dify 的 LLM 节点能够调用大模型的能力,对上一个节点的输出内容进行处理。Dify 支持主流大模型,用户可在Web 页面 –> Plugins中搜索并安装可用的大模型,例如 DeepSeek:

Dify Plugins DeepSeek 模型安装界面

选择模型后点击Install即可完成安装。

安装完毕后,需在模型提供商(Model Provider)中配置 API Key,以便后续在工作流中调用:

Dify DeepSeek API Key 配置界面

接着添加 LLM 节点:

Dify LLM 节点配置界面

配置时需要完成以下步骤:

  • 在MODEL下拉菜单中选择所需模型(提前安装且配置了 API Key 的模型将在此列表中显示),例如本指南选择DeepSeek;
  • 设置提示词,明确告知大模型执行何种任务。例如,本次使用的提示词为:

假设你是一位 RustFS 专家,将下面的内容翻译成英文/日语/俄语/韩语,同样按照 Markdown 格式输出,内容如下:

重要提示:在系统提示词中,务必选择DOCS EXTRACTOR节点的输出(即 text 变量,输入/可直接选择)。

为每个DOC EXTRACTOR节点都配置了一个 LLM 节点,并使用了类似的提示词(仅翻译语种有所不同)。整体配置如下:

Dify LLM 节点提示词与输出配置

接下来,将 LLM 的输出直接上传到 RustFS。

Dify 内置的 API 服务支持预览和下载上一步生成的文件。为了简化部署,本指南直接使用现有的 RustFS 实例作为文档的最终输出载体,同时演示了 Dify 的工具功能。

将文档上传至 RustFS

Dify 工具节点允许用户选择不同的工具来处理上一个节点的内容。目前官方支持的工具有三种类型:

  • 内置工具:Dify 官方提供的工具;
  • 自定义工具:用户自行导入或配置的工具;
  • 工作流:将编排好的工作流发布为工具使用。

本实践使用 Dify 提供的内置工具 MinIO 来存储翻译后的内容。

工具在使用前需要先安装。在 Dify Web 首页的Tools中搜索可用工具:

Dify Tools 搜索 MinIO 工具

如果 MinIO 尚未安装,可在搜索结果中点击蓝色的install按钮完成安装。

在节点添加时点击Tool,选择已安装的工具 MinIO:

Dify Tool 节点选择 MinIO

由于是上传文件,因此选择 MINIO_WRITER,并输入 RustFS 实例的相关信息:

Dify MinIO Writer 节点配置

主要信息包括:

  • MinIO Endpoint URL:RustFS 实例地址(例如localhost:9000);
  • MinIO Access Key:RustFS Access Key ID(例如默认的rustfsadmin);
  • MinIO Secret Key:RustFS Secret Key ID(例如默认的rustfsadmin);
  • Bucket Name:存储文件的存储桶名称,需提前在 RustFS 上创建;
  • Object Name:文件上传到存储中的对象名称,可自定义;
  • Content:工具节点的输入,即 LLM 节点的输出,选择text即可;

为了将中文文档翻译为四种不同语言,本工作流添加了 4 个 MINIO_WRITER 节点:

Dify 多语言翻译工作流 MinIO 存储配置

结束节点

Dify 的每个工作流末尾都需要添加一个结束节点。

Dify Workflow 结束节点

运行工作流

点击右上角的Run按钮即可启动工作流。在弹出的界面中上传需要翻译的中文文档(Markdown 格式),然后点击Start Run:

Dify Workflow 运行界面与文件上传

界面上会清晰显示工作流的执行进度:

Dify Workflow 运行进度

当流程全部执行完毕后,所有节点的右上角都会显示绿色的通过标志。

Dify Workflow 成功执行标志

结果验证

本次操作将上传的 Markdown 文档(文件名为milvus.md)翻译成英语、日语、俄语、韩语,并分别上传到 RustFS 实例的四个存储桶中:en-translation、jp-translation、ru-translation、kr-translation。每个存储桶内对应有一个对象,分别为:en-milvus.md、jp-milvus.md、ru-milvus.md、kr-milvus.md:

RustFS 存储桶列表

存储桶中的存储对象如下:

RustFS 存储桶中翻译后的文件

用户可以直接选择某个对象文件,点击Preview查看内容,例如查看韩语文档:

RustFS 预览韩语文档选项

韩语文档内容如下:

RustFS 预览韩语文档内容

可通过类似方法查看其他语言的文档内容。审核无误后,即可直接下载并进行文档提交。

总结

Dify 提供了一种灵活的方式,使用户能够自行构建 AI 应用。整个过程通过拖拽和少量编程即可完成,相比于全程使用 API 串联各项服务或工具的纯编程模式,Dify 的用户体验更佳。然而,要熟练运用 Dify,需要解决两个核心问题:

  • 深入了解 Dify 的架构和各项功能的使用,这可通过阅读文档和大量实践来实现;
  • 用户需清晰地规划所需的 AI 应用或工作流,即明确如何将 AI 能力融入实际需求中,这样 Dify 才能发挥最大作用。

此外,尽管 MinIO 作为全球知名的对象存储系统广泛使用,但 RustFS 完全可以作为其平替方案。

一旦掌握 Dify 工作流,用户便会倾向于通过 DIY 各种有趣的工作流来优化工作方式。后续也将继续探索 Dify 与其他应用的集成实践。

TAGGED:Agent生态DifyMilvusRustFS文档翻译
Share This Article
Email Copy Link Print
Previous Article 20251006065401288.jpg Perplexity:智能搜索新体验,解锁高效知识探索
Next Article 20251006070219650.jpg Perplexity AI访问受阻?快速完成安全验证!
Leave a Comment

发表回复 取消回复

您的邮箱地址不会被公开。 必填项已用 * 标注

最新内容
20251202135921634.jpg
英伟达20亿美元投资新思科技,AI芯片设计革命加速
科技
20251202130505639.jpg
乌克兰国家AI模型选定谷歌Gemma,打造主权人工智能
科技
20251202121525971.jpg
中国开源AI新突破:DeepSeek V3.2模型性能比肩GPT-5
科技
20251202112744609.jpg
马斯克预言:AI三年内解决美国债务危机,可信吗?
科技

相关内容

Dify V1.9.2 Docker-compose环境下Redis端口解析异常
Agent生态

Dify V1.9.2版本问题深度剖析与回退建议:Agent生态稳定性挑战

2025年10月27日
五大Agent角色划分的拆解策略
Agent生态

AI驱动支付提效40%:一键接入系统技术架构与大模型优化实践

2025年10月11日
AI Agent多模态交互研究示意图
Agent生态

AI Agent:实习生的终结者,下场的从业者的和看台上的观众

2025年10月17日
AIOps整体架构设计图
AI 行业应用

AIOps智能运维方案:基于Dify、K8s、Prometheus与Loki的设计与实践

2025年10月12日
Show More
前途科技

前途科技是一个致力于提供全球最新科技资讯的专业网站。我们以实时更新的方式,为用户呈现来自世界各地的科技新闻和深度分析,涵盖从技术创新到企业发展等多方面内容。专注于为用户提供高质量的科技创业新闻和行业动态。

分类

  • AI
  • 初创
  • 学习中心

快速链接

  • 阅读历史
  • 我的关注
  • 我的收藏

Copyright © 2025 AccessPath.com, 前途国际科技咨询(北京)有限公司,版权所有。 | 京ICP备17045010号-1 | 京公网安备 11010502033860号

前途科技
Username or Email Address
Password

Lost your password?

Not a member? Sign Up