【实战】Dify从0到100进阶--文档解读(1)开源许可和大模型适配

1.开源许可

许可证的基础框架

  • 主体许可证 :Apache License 2.0
    • 许可证全文见:http://www.apache.org/licenses/LICENSE-2.0
    • 允许商业使用、修改、分发,且在大多数场景下对使用者非常友好,只需满足保留版权声明、提供 NOTICE 文件等基本要求。

对 Apache 2.0 的「额外附加条件」

在继承 Apache 2.0 权利和义务的基础上,Dify 增加了以下限制和约定:

  1. 商业化使用需额外许可

    • 何种情形下要求商业授权
      1. 多租户服务
        • 如果你用 Dify 源码搭建的是「多租户环境」(即一个实例服务多个"workspace"/租户),且未经 Dify 官方书面授权,就需要额外购买商业许可证。
          • "租户"定义:Dify 中每个 workspace 即视为一个独立租户,数据和配置互不干扰。
      2. 前端展示的 LOGO 与版权信息
        • 使用 Dify 前端(web/ 目录下或 Docker "web" 镜像)时,不可移除或篡改其默认的 LOGO 标识和版权信息。
        • 如果使用方式完全不包含其前端界面(例如仅用后端 SDK 或 API),则不受此项限制。
  2. 对贡献者(Contributor)的特别声明

    • 协议可调整:Dify 官方保留随时对该开源协议进行收紧或放宽的权利。
    • 商用权利:你贡献的代码,Dify 官方有权用于包括云端商业服务在内的任何商业用途。

Apache 2.0 原有授权义务(未改动部分)

除上述附加条款之外,仍需遵守 Apache License 2.0 的核心要求,例如:

  • 版权和许可证声明:在修改或分发时,保留原作者的版权声明和 LICENSE 文本。
  • NOTICE 文件:若项目中包含 NOTICE 文件,分发时需一并提供,并在 NOTICE 文件中说明所做修改。
  • 提供源代码:以源代码方式分发或提供下载途径。
  • 专利许可:贡献者自动授予接收方专利免费使用权。

外观专利保护

  • Dify 的「交互设计」受外观专利保护,即其界面的某些设计元素(可能包括图标、布局、配色等)享有专利权。
  • 若要商用或二次开发涉及外观设计,需特别留意不要侵权。

2.大模型适配

模型类型分类

在 Dify 中,为了更好地覆盖不同场景的需求,将模型能力分为四大类:

  • **系统推理模型 (System Reasoning Model)

    • 用途:驱动交互式对话、问答、智能聊天、对话标题生成、下一步问题建议等核心应用。
    • 举例:OpenAI GPT 系列、Anthropic Claude、讯飞星火、文心一言、ZHIPU(ChatGLM) 等。
  • Embedding 模型

    • 用途:将文档片段和用户提问转换为向量,以支持基于向量检索的知识库问答。
    • 举例:OpenAI Embedding、ZHIPU(ChatGLM) Embedding、Jina Embeddings。
  • Rerank 模型

    • 用途:对搜索或检索出的候选结果进行重排序,提升召回结果的相关性与精度。
    • 举例:Cohere Reranker、Jina Reranker。
  • 语音转文字模型 (STT)

    • 用途:将用户的语音输入实时转成文本,用于语音对话型应用。
    • 举例:OpenAI Whisper 系列。

托管模型

"托管模型"指的是:Dify 平台自身不直接开发,而是集成第三方或社区开源模型。

  • 特点

    • 多数为社区或第三方训练好的开源模型
    • 按模型名称或 ID 单独添加,并可灵活切换
    • 适合希望在 Dify 中试用多样化模型能力的场景
  • 支持的托管平台

    • Hugging Face Hub
    • Replicate
    • Xinference
    • OpenLLM
  • 接入步骤

    • 在 Dify 控制台,进入"设置 > 模型供应商"页面。
    • 选择"托管模型"分类下对应平台(如 Hugging Face)。
    • 点击"添加模型",填写模型标识(Model ID)、版本、调用参数等。
    • 保存后即可在应用中选用该模型,并传入相应的部署参数或环境变量。
  • 注意事项

    • 某些托管模型可能需要注册该平台并获取相应的访问 Token。
    • 不同模型在推理延迟、消耗资源上差异较大,建议先小规模测试再在生产环境中推广。

自有模型

"自有模型"指:由模型厂商(如 OpenAI、Anthropic 等)提供的官方托管 API。

  • 特点

    • 厂商维护更新,稳定性与可用性更有保障
    • 一个供应商下自动支持其全部模型系列(例如设置 OpenAI 后即可使用 GPT-3.5、GPT-4 等)
    • 只需一次配置 API Key,后续即可统一管理
  • 支持的自有模型供应商

    • OpenAI / Azure OpenAI Service
    • Anthropic
    • Hugging Face Hub(部分也可归为自有)
    • 其他商业智能云:讯飞星火、文心一言、通义千问、Minimax、ZHIPU(ChatGLM) 等
  • 接入步骤

    • 打开 "设置 > 模型供应商" 页面,选择"自有模型"分类。
    • 选择对应厂商(如 OpenAI),在弹窗中输入或粘贴从官方控制台获取的 API Key。
    • 点击"保存",Dify 会使用 PKCS1_OAEP 算法加密存储你的 Key,且每个租户使用独立密钥对,确保安全。
    • 系统自动加载该供应商下所有可用模型,并将其中资源与计费信息同步到控制台中。
  • 设置默认模型

    • 在"模型供应商"页,可为「系统推理模型」、「Embedding 模型」、「Rerank 模型」、「语音模型」分别指定一个默认供应商/模型。
    • 应用创建、智能对话、检索问答等场景均会优先调用对应的默认模型。

3.应用对比

应用类型 交互方式 上下文保存 支持知识库/插件 定位与特点 典型场景
聊天助手(Chat Assistant) 多轮对话 持续保存 聊天气泡式界面,支持 AI 首次开场白 在线客服、虚拟助理、问答机器人
文本生成应用(Text Generation App) 一问一答 当次 表单式输入后生成长文本,不支持 AI 首次开场白 故事创作、文案撰写、翻译、摘要
Agent 多轮对话+工具调用 持续保存 内置任务拆解,可动态调用外部 API/工具 预定日程、数据查询、自动化脚本触发
对话流(Chatflow) 可视化节点流程 跨节点共享 可拖拽节点并设分支条件,管理对话流程与记忆 交互式表单、复杂导航问诊、分支式客服流程
工作流(Workflow) 可视化节点流程 无(一次性流程) 侧重后台/批量流水线,流程结束即终止 定时报告生成、数据清洗+分析、批量任务自动化