【实战】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 增加了以下限制和约定:
-
商业化使用需额外许可
- 何种情形下要求商业授权
- 多租户服务
- 如果你用 Dify 源码搭建的是「多租户环境」(即一个实例服务多个“workspace”/租户),且未经 Dify 官方书面授权,就需要额外购买商业许可证。
- “租户”定义:Dify 中每个 workspace 即视为一个独立租户,数据和配置互不干扰。
- 如果你用 Dify 源码搭建的是「多租户环境」(即一个实例服务多个“workspace”/租户),且未经 Dify 官方书面授权,就需要额外购买商业许可证。
- 前端展示的 LOGO 与版权信息
- 使用 Dify 前端(
web/
目录下或 Docker “web” 镜像)时,不可移除或篡改其默认的 LOGO 标识和版权信息。 - 如果使用方式完全不包含其前端界面(例如仅用后端 SDK 或 API),则不受此项限制。
- 使用 Dify 前端(
- 多租户服务
- 何种情形下要求商业授权
-
对贡献者(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) | 可视化节点流程 | 无(一次性流程) | 是 | 侧重后台/批量流水线,流程结束即终止 | 定时报告生成、数据清洗+分析、批量任务自动化 |