概述

一个功能强大的开源AI应用开发平台,融合后端即服务(Backend as Service)和LLMOps理念,使开发者能够快速搭建生产级的生成式AI应用。

核心优势

  • 直观的用户界面:提供简洁明了的操作界面,使得用户能够快速上手,无需复杂的培训和学习过程。无论是初学者还是有经验的开发者,都能轻松地进行AI应用的开发和管理;
  • 强大的插件系统:Dify引入全新的插件化架构,将模型和工具以插件的形式运行,实现了真正的即插即用。这种设计不仅提高了系统的灵活性,降低开发门槛,让更多开发者能够参与到Dify生态的共建中来;
  • 智能工作流:新增的Agent节点使得工作流具备了自主智能编排与决策的能力。Agent节点如同工作流的智能大脑,能够根据预设策略智能选择工具、调度资源,实现工作流的自主编排和动态适应;
  • 开放的生态系统:正式推出Marketplace插件市场,汇聚来自官方、社区及第三方开发者贡献的各类插件,涵盖模型、工具、Agent策略等。这不仅丰富AI应用的功能,还为开发者提供展示和分享成果的平台。

应用场景

  • 企业级应用开发:能够帮助企业快速构建生产级的AI应用,从智能客服到数据分析,从内容生成到工作流自动化,满足多种业务场景的需求;
  • 教育与培训:在教育领域,可用于开发智能教育应用,如个性化学习助手、智能辅导系统等,提升教学效果和学习体验;
  • 科研与创新:科研人员可利用Dify的强大功能进行AI模型的实验和创新,加速科研进程,推动技术发展。

安装

支持Windows版本。提前安装好Docker Desktop。源码安装,依次执行如下命令即可:

git clone https://github.com/langgenius/dify.git
cd dify/docker
cp .env.example .env
docker compose up -d

这种基于Docker(实际上是Docker Compose)的安装方式,适用于Mac和Linux系统。

常见错误

  1. 镜像下载失败
    在这里插入图片描述

    [图片]
    解决方法,为docker配置代理,vim /etc/docker/daemon.json,追加类似下述内容:
"proxies": {
      "http-proxy": "http://192.168.0.100:7890",
      "https-proxy": "http://192.168.0.100:7890"
}

保存退出,执行systemctl restart docker重启Docker。

  1. iptables
    镜像下载成功,但是启动容器失败,报错信息:
    在这里插入图片描述
    解决方法:
    执行如下命令
mkdir -p /etc/systemd/system/docker.service.d
vim /etc/systemd/system/docker.service.d/override.conf

大概率是新文件,填入如下内容:

[Service]
Environment="DOCKER_INSECURE_NO_IPTABLES_RAW=1"

当然要重启Docker:systemctl restart docker

  1. 设置pip源
    编辑文件:vim docker-compose.yaml,找到第二个配置,配置成清华源:https://pypi.tuna.tsinghua.edu.cn/simple

  2. S3
    编辑文件:vim .env,找到S3相关配置:

PLUGIN_S3_USE_AWS_MANAGED_IAM=false
PLUGIN_S3_USE_PATH_STYLE=false

简介

在这里插入图片描述

探索

功能概述
探索模块是 Dify 为用户提供的一个发现和学习平台,旨在帮助用户了解 Dify 的各项功能、使用技巧以及社区资源等。它是用户获取灵感、学习新知识、发现优秀应用案例的重要渠道。

内容详情

  • 功能介绍与教程:提供 Dify 平台各项功能的详细图文和视频教程,帮助用户从基础到高级逐步掌握平台的使用方法。无论是新手入门还是进阶提升,都能找到适合自己的学习资源;
  • 社区分享与案例:展示用户社区中优秀的作品、应用案例和经验分享,激发用户的创作灵感,促进用户之间的交流与学习。通过实际案例了解如何将 Dify 应用于不同领域和场景;
  • 最新动态与更新:及时发布 Dify 平台的最新功能更新、版本升级、活动公告等信息,让用户第一时间了解平台的发展动态,不错过任何新功能的体验机会。

使用场景

  • 新手用户:刚注册的用户可以通过探索模块快速了解 Dify 的基本功能和操作流程,找到适合自己的学习路径,快速上手平台的使用。
  • 进阶用户:已经有一定使用经验的用户可以通过探索模块深入学习高级功能和技巧,提升自己的开发能力和应用水平。
  • 社区互动:用户可以在这里浏览其他用户的分享和案例,与其他用户交流心得,共同进步。同时,也可以将自己的作品和经验分享到社区,帮助更多的人。

工作室

功能概述
工作室是 Dify 的核心区域,用户可以在这里创建、编辑和管理自己的 AI 应用。它是用户将创意转化为实际应用的工作空间,提供了丰富多样的功能和工具,满足不同用户的需求。

内容详情

  • 应用创建与选择:用户可以根据自己的需求选择合适的应用类型,如聊天助手、Agent、文本生成应用、Chatflow、工作流等,并进行自定义配置。每种应用类型都有其独特的功能和适用场景;
  • 应用配置与编辑:在工作室中,用户可以对应用进行详细的配置和编辑。包括设置应用的基本信息、选择和授权使用的语言模型、设计应用的交互逻辑、添加和编辑提示词等。还可以通过 DSL 文件导入和导出应用配置,方便在不同环境或团队间共享应用;
  • 工作流设计与编排:用户可以利用工作流功能,通过添加各种节点(如 LLM 模块、代码模块、搜索模块等)并进行连接和配置,实现复杂的业务逻辑和自动化流程。工作流的可视化编辑界面让用户能够直观地看到整个流程的结构和逻辑;
  • 应用测试与调试:在工作室中,用户可以方便地对应用进行测试和调试。通过输入测试数据,观察应用的输出结果,及时发现和解决应用中存在的问题。测试过程中可以实时查看和调整应用的配置和逻辑,确保应用的稳定性和准确性;
  • 应用发布与分享:当应用开发完成并经过充分测试后,用户可以在工作室中将应用发布上线,使其可供其他用户访问和使用。同时,也可以将应用分享给团队成员或社区用户,进行协作开发或展示成果。

使用场景

  • 个人开发者:个人用户可以在工作室中独立创建和开发自己的 AI 应用,实现自己的创意和想法。无论是用于个人项目、学习实践还是创业尝试,工作室都提供了完善的开发环境和工具支持;
  • 团队协作:团队成员可以在工作室中共同开发和管理一个应用。通过权限管理和协作功能,团队成员可以分工合作,共同完成应用的开发和优化工作,提高开发效率和质量;
  • 企业应用开发:企业用户可以利用工作室的强大功能快速构建生产级的 AI 应用,满足企业的业务需求。从简单的客服聊天机器人到复杂的业务流程自动化系统,工作室都能提供相应的支持和解决方案。

知识库

功能概述
知识库模块是 Dify 为用户提供的一种高效的知识管理和检索功能。它允许用户将各种格式的文档(如 PDF、PPT、Word 等)上传到平台,自动提取其中的文本内容,并通过向量化等技术手段实现知识的结构化存储和快速检索。结合 RAG(检索增强生成)功能,知识库可以与语言模型生成的内容相结合,提高回答的准确性和相关性。

内容详情

  • 文档上传与管理:用户可以方便地将本地的文档上传到知识库中,支持多种常见的文档格式。上传后的文档会自动进行解析和处理,提取出文本内容并进行存储。用户可以对知识库中的文档进行分类、标签、搜索等管理操作,方便快速定位和查找所需的知识;
  • 知识检索与查询:知识库提供了强大的检索功能,用户可以通过关键词、短语、文档标题等多种方式进行精确或模糊搜索。检索结果会以列表形式展示,包括文档的相关信息和匹配的内容片段,帮助用户快速找到所需的知识点。同时,检索结果还可以与语言模型的生成内容相结合,实现更智能的知识应用;
  • RAG 功能应用:结合 RAG 技术,知识库中的知识可以作为背景信息融入到语言模型的生成过程中。当用户提出问题时,系统会先从知识库中检索相关的知识内容,然后将这些知识作为上下文提供给语言模型,使其能够生成更准确、更符合用户需求的回答。这种功能在需要专业领域知识或特定背景信息的应用场景中非常有用;
  • 知识图谱与关联分析:知识库可以对上传的文档进行知识图谱构建和关联分析,挖掘文档之间的潜在关系和知识网络。通过可视化的方式展示知识之间的关联,帮助用户更全面地理解和掌握知识体系,发现知识之间的内在联系。

使用场景

  • 企业知识管理:企业可以将内部的文档资料、培训教材、业务流程等上传到知识库中,构建企业专属的知识库。员工可以通过知识库快速查找和获取所需的知识,提高工作效率和协作能力。同时,结合 RAG 功能,可以实现智能的企业知识问答系统,提升企业内部沟通和决策的效率;
  • 学术研究与学习:学术研究人员可以将大量的学术论文、研究报告等上传到知识库中,方便进行文献检索和知识梳理。在撰写论文或进行研究时,可以利用知识库快速获取相关领域的知识和研究成果,提高研究效率。学生也可以通过知识库整理和管理学习资料,实现个性化学习和知识复习;
  • 专业领域知识应用:对于需要特定专业领域知识的应用场景,如医疗、法律、金融等,知识库可以存储相关的专业文献和法规政策等。结合语言模型,可以开发出专业的智能助手,为用户提供准确、专业的咨询服务和解答。

工具

功能概述
工具模块是 Dify 提供的一系列实用工具和插件的集合,旨在丰富应用的功能和拓展平台的使用场景。这些工具涵盖了多种类型,包括但不限于搜索引擎、图像生成工具、代码执行工具等,用户可以直接在应用中调用这些工具,提升应用的实用性和多样性。

内容详情

  • 内置工具使用:Dify 平台内置了多种常用的工具,如搜索引擎工具、图像生成工具、代码执行工具等。用户在创建应用时,可以直接在工具模块中选择并添加这些工具到应用中。通过简单的配置和连接,就可以在应用中实现相应的功能,如在聊天应用中添加搜索引擎工具,实现智能问答与网页搜索的结合;
  • 自定义工具开发:除了内置工具外,用户还可以根据自己的需求开发自定义工具。通过 Dify 提供的工具开发接口和文档,用户可以将自己的业务逻辑或外部 API 集成到平台中,作为自定义工具使用。这使得 Dify 的功能得到了极大的扩展,能够满足更多个性化和特定场景的需求;
  • 工具插件市场:Dify 正式推出了 Marketplace 插件市场,汇聚了来自官方、社区及第三方开发者贡献的各类插件。用户可以在工具模块中访问插件市场,浏览和选择适合自己应用需求的插件。插件市场中的工具插件涵盖了模型、工具、Agent 策略等多个方面,丰富了应用的功能和可能性;
  • 工具管理与更新:用户可以在工具模块中对已添加的工具进行管理,包括查看工具的详细信息、配置工具的参数、更新工具的版本等。平台会定期对工具进行更新和维护,确保工具的稳定性和兼容性。用户也可以根据自己的需求手动更新工具或卸载不再需要的工具。

使用场景

  • 丰富应用功能:在开发 AI 应用时,用户可以通过工具模块添加各种实用工具,使应用具备更多的功能和特性。例如,在一个旅游推荐应用中,可以添加地图工具、天气查询工具等,提升应用的实用性和用户体验;
  • 拓展业务场景:通过自定义工具开发和插件市场,用户可以将 Dify 平台与自己的业务系统或外部服务进行整合,拓展应用的业务场景。例如,将企业内部的 CRM 系统集成到 Dify 应用中,实现智能客服与客户关系管理的结合;
  • 创新应用开发:工具模块为用户提供了更多的创作空间和可能性,激发用户的创新思维。用户可以结合不同的工具和插件,开发出具有独特功能和创新性的 AI 应用,满足特定领域或用户群体的需求。

创建应用

聊天助手、Agent、文本生成应用、Chatflow、工作流五种应用类型的详细对比

应用类型 核心功能 适用场景 特点 配置复杂度
聊天助手 基于 LLM 的对话助手,能够与用户进行自然语言交互,理解用户的问题、请求或指令,并给出相应的回答或执行相应的操作 客户服务、智能问答、对话机器人等 界面友好,易于上手,具备基本的对话交互能力 简单
Agent 不仅具备对话能力,还具备任务分解、推理、工具调用等高级能力。能够理解复杂的指令,将任务分解为多个子任务,并调用相应的工具或API来完成这些子任务 复杂任务自动化、智能助手等需要执行多步操作的场景 支持函数调用和ReAct推理框架,能够自主调用工具完成复杂任务 中等
文本生成应用 专注于各种文本生成任务,如撰写故事、新闻报道、文案、诗歌等创意写作,以及文本分类、翻译等任务 内容创作、文本翻译、文案撰写等 专注于文本生成,提供高质量的文本输出,但相比聊天助手和Agent,交互性较弱 中等
Chatflow 面向对话类情景,包括客户服务、语义搜索、以及其他需要在构建响应时进行多步逻辑的对话式应用程序 复杂对话流程管理,如多轮对话、需要记忆上下文的对话场景 提供问题理解类节点,支持对话历史、标注回复等功能,适合复杂的对话流程设计 复杂
工作流 根据用户定义的流程编排,灵活地组织和控制LLM的工作流程。用户可以自定义一系列的操作步骤和逻辑判断,让LLM按照预定的流程执行任务 自动化任务处理、批处理任务、数据处理等 提供丰富的逻辑节点,如代码节点、IF/ELSE节点等,支持定时和事件触发,适合自动化流程构建 复杂

聊天助手、Agent和文本生成应用

特性 聊天助手(Chat Assistant) Agent 文本生成应用(Text Generation Application)
定义 主要通过自然语言与用户进行互动,提供解答、建议或执行任务 执行指定任务的智能体,通常具有某种目标或任务管理功能 基于预训练模型生成符合需求的文本内容
应用场景 智能客服、对话式用户界面、问答系统等 自动化任务处理、虚拟助手、软件代理、智能客服等 内容创作、文章生成、摘要生成、代码生成等
核心功能 - 识别用户意图
- 提供对话反馈
- 执行简单任务或查询
- 执行特定任务或指令
- 自主决策
- 与外部系统交互
- 基于输入生成相关文本
- 文本创作和优化
- 回答问题
交互方式 用户与系统之间的自然语言对话 与用户或其他系统进行任务导向的交互,可能通过文本、API等 通常是与用户的单向交互,生成与输入相关的文本内容
目标 提高用户体验,提供实时的对话支持和服务 完成特定任务或目标,执行智能决策或任务自动化 生成流畅、相关且有意义的文本
智能程度 中等,依赖于自然语言处理和意图识别 高度智能,能够执行复杂任务并做出自主决策 基于大模型的预训练,智能程度依赖于模型质量和训练数据
任务处理能力 处理与对话相关的任务,如查询、建议、简单执行等 可执行各种任务,从简单到复杂的决策、任务自动化等 主要生成文本,无法主动执行任务,依赖于输入的指导
实时性 通常需要实时响应,适用于即时对话 可能实时执行任务,特别是与用户或系统的交互 生成文本通常是按需生成,不一定实时
输出类型 对话、回答、建议、指令等 任务结果、决策、执行反馈等 文章、段落、代码、摘要等
依赖性 依赖于自然语言处理、意图识别、对话管理等技术 依赖于任务管理、决策逻辑、外部接口等技术 依赖于大型语言模型、文本生成算法和数据
适用领域 客服支持、自动问答、个人助手等 虚拟助手、自动化代理、智能系统等 内容创作、写作助手、自动生成报告或摘要等
智能程度调优 需要不断优化对话策略和意图识别精度 需要优化任务执行能力和决策智能 通过模型微调、优化数据集来提升文本质量
适用对象 主要针对用户,通过交互提高体验 可以是用户、开发者、系统间的交互,更多侧重任务完成 主要是内容创作者或需要文本生成的领域
示例 Siri、Alexa、智能客服系统等 自动化客户支持代理、智能推荐系统等 GPT-3、ChatGPT、文章生成工具等

总结:

  • 聊天助手:是与用户进行对话并提供实时反馈的系统,主要关注与用户的自然语言交互;
  • Agent:是执行具体任务的智能体,可以是任务导向型的,具有自主决策和跨系统交互的能力,通常不专注于对话,而是专注于任务完成;
  • 文本生成应用:侧重于根据输入生成相关的文本,适用于内容创作、报告生成等领域,更多关注文本内容的生成而非与用户的互动。

ChatFlow和工作流

特性 ChatFlow Workflow
定义 用于设计和管理对话流程,处理用户输入和系统响应 自动化一系列任务的流程,涉及数据处理、任务执行和系统间的协作
应用场景 聊天机器人、智能客服、对话系统等 业务流程自动化、跨系统集成、任务调度、数据流转等
核心功能 - 设计多轮对话流
- 管理用户输入和系统响应
- 状态管理
- 任务的顺序执行与并行执行
- 跨系统协作
- API 调用和数据传输
交互方式 交互式对话,关注用户输入和系统反馈之间的流畅性 自动化处理,无需实时用户交互,关注任务和数据的处理
目标 提升对话的自然流畅和用户体验 提高工作效率、自动化业务操作、减少人工干预
触发机制 通过用户输入或预设条件触发对话的下一步 根据条件、时间或事件触发任务执行
复杂性 较低,主要关注对话的逻辑 较高,涉及多个任务、服务、系统的协调
任务管理 主要管理对话步骤和状态 管理多个任务的执行顺序、并行执行等
灵活性 灵活的对话设计,可以处理多轮对话的复杂性 灵活的工作流设计,可以处理复杂的自动化任务流
系统协作 主要关注用户和系统之间的互动,系统间的协作较少 强调跨系统的数据传递和操作执行
数据流转 数据流主要是用户输入和系统反馈 包含多个系统间的数据流转,可能包括数据库、API调用等
调试与监控 主要调试对话流程,监控对话的状态和响应 调试工作流中任务的执行,监控任务的成功与失败
依赖性 通常依赖于对话管理引擎 可能依赖多个系统、服务或API
示例 智能客服系统中,用户询问问题,系统给出相应的回答 企业的订单处理流程,自动生成发货单、调度物流等任务

总结:

  • ChatFlow:主要聚焦于用户与系统的对话交互,适用于对话型应用和聊天机器人开发;
  • Workflow:是一种更加全面的流程管理工具,适用于自动化任务管理和跨系统集成,涉及更多的业务逻辑和数据流。

添加本地模型

首先需要安装OpenAI-API-compatible插件
在这里插入图片描述
安装成功后,点击【添加模型】:
在这里插入图片描述
在这里插入图片描述
添加reranker小模型时写http://10.158.0.104:30012即可。最后的效果:
在这里插入图片描述
如上截图,有个WARNING标记,点击【系统模型设置】
在这里插入图片描述
文本转语音模型未设置,所以还是会有警告标记。

问题

安装OpenAI-API-compatible插件失败,控制台查看到接口请求报错如下:

{
    "code": "invalid_param",
    "message": "Reached maximum retries (3) for URL https://marketplace.dify.ai/api/v1/plugins/download?unique_identifier=langgenius/openai_api_compatible:0.0.16@d41b09aca46cdd3876f70b4c91d464c4588fc0bdc844ced6ee426283ead6ce8e",
    "status": 400
}

容器docker-plugin_daemon-1报错日志:
在这里插入图片描述
根因:Dify所在的服务器没有联网功能。

解决方法:配置路由器,固定WAN口,确保WAN口有线接入到Tenda无线扩张器(或其他设备)。

语音功能

麦克风未授权

解决方案:

  1. 首先排除电脑的麦克风权限是否可用,打开浏览器的麦克风权限。
    在线测试浏览器是否可以使用麦克风。使用链接在线测试。

  2. 浏览器的麦克风权限已经打开,但Dify发布的应用中麦克风还是不可以用。此处有两种情况:

    • 部署Dify时使用HTTPS协议;
    • 使用HTTP协议,Chrome浏览器中打开chrome://flags/#unsafely-treat-insecure-origin-as-secure页面后,将Insecure origins treated as secure设置为enabled,并将允许使用麦克风的网页的地址写入可访问列表,如http://ip:port”,重启浏览器后可用!

注:如果是Edge浏览器,也是地址栏打开edge://flags/#unsafely-treat-insecure-origin-as-secure地址。

语音接口报错

语音提问时报错:
在这里插入图片描述
问题的根源,目前已知有2类:

  • 未点击发布,点击【发布】即可解决问题:
    控制台看到message为:Credentials validation failed with status code 404。意思是找不到语音模型,检查是否配置好语音模型,最后记住需要点击【发布】。
    在这里插入图片描述
  • 参数不对:控制台看到message为:Speech to text is not enabledaudio-to-text接口报错:
{
    "code": "invalid_param",
    "message": "Speech to text is not enabled",
    "status": 400
}

解决方法:参考下面的连接PG。

连接PG

默认情况下,Dify对外(即本机IP除外)暴露的端口有:

  • 80:HTTP端口;
  • 443:HTTPS端口;
  • 5003:

在这里插入图片描述
如果想在局域网内连接上Dify使用的PG数据库,需要开放5432端口。

方法:编辑docker-compose.yaml文件,找到image: postgres:15-alpine,追加:

    ports:
      - '5432:5432'

重启Dify:docker compose down -v && docker compose up -d

默认用户名密码:postgres/difyai123456,使用DataGrip等客户端连接,修改表app_model_configsspeech_to_text字段解决问题。

Dify打开失败

通过docker compose成功部署Dify,docker ps正常输出
在这里插入图片描述
在GPU机器内执行curl http://localhost正常输出,总之一切正常,但是Chrome浏览器打开GPU主卡地址(即Dify部署节点)失败:
在这里插入图片描述
执行docker compose down -v && docker compose up -d,还是同样问题

解决方法:重启Dify所在的服务器,一般是Ubuntu系统。

跟防火墙啥的没有关系。Windows未遇到过这个问题。

API

Dify对外暴露的API:

  • 获取应用配置:GET http://localhost/console/api/apps/{app_id}

知识库

在这里插入图片描述
在这里插入图片描述
解读:
分段设置

  • 分段标识符:用于定义文本分段的规则,如按换行符\n\n\n分段。这有助于将长文本分割成更小的、易于处理的片段,方便后续的语义分析和检索;
  • 分段最大长度:设置每个分段的最大长度(以tokens为单位)。这可以防止单个分段过长,影响处理效率和模型的理解能力;
  • 分段重叠长度:设置分段之间的重叠长度(以tokens为单位)。重叠部分可以帮助保持上下文的连贯性,避免因分段而导致的信息割裂;
  • 文本预处理规则:包括去除连续的空格、换行符和制表符,以及去除所有URL和电子邮件地址。这些规则可以清理文本数据,减少噪声(在NLP或文本检索中,噪声(Noise)是指对核心信息或有价值内容无帮助的无效信息,它们会影响模型的理解和分析能力),提高文本质量和处理效率。

勾选【使用Q&A分段】:
在这里插入图片描述
启用此选项可以针对问答场景优化分段,使分段更符合问答的逻辑和需求。选择语言(如Chinese)可以针对特定语言的文本进行优化处理。

使用【高质量】索引方式:
在这里插入图片描述
【父子分段】使用父子模式时,子段借用父段的上下文:子段可以继承父段的上下文信息。这有助于在处理嵌套或层次化的文本结构时,保持各分段之间的语义关联和上下文连贯性。

索引方式

  • 经济:可节省计算资源和处理时间,但可能会牺牲一定的检索质量。适用场景:适用于对检索速度和资源消耗较为敏感的场景,如快速原型开发、资源受限的环境等;
  • 高质量:可提高检索的准确性和相关性,但可能会增加计算资源的消耗和处理时间。适用场景:适用于对检索结果质量要求较高的场景,如专业领域的知识问答、复杂问题的解答等。

检索设置

  • 混合检索:同时执行全文检索和向量检索,并应用重新排序步骤,从两类检索结果中选择匹配用户问题的最佳结果。用户可选择设置权重或配置重新排序模型,以优化检索结果的组合和排序。适用场景:适用于需要结合关键词检索和语义检索优势的复杂场景,可提高检索的全面性和准确性。
  • 全文检索:基于文本中的关键词进行检索,返回包含这些关键词的文本片段。简单直接,适用于基于关键词的检索需求。
  • 向量检索:通过生成查询向量并返回与其向量表示最相似的文本分段。可基于语义相似性进行检索,适用于语义搜索和复杂的文本匹配场景。

选项:
Rerank 模型:可选的重新排序模型,用于对初步检索结果进行重新排序,提高检索结果的相关性和准确性。
Top K:设置返回的最相似文本分段的数量,决定每次检索返回的结果数量。
Score 阈值:设置检索结果的分数阈值,只有分数高于阈值的结果才会被返回。这可过滤掉质量较低或相关性较低的结果。

在这里插入图片描述

添加文档

文档禁用和归档

  • 禁用:数据集支持将暂时不想被索引的文档或分段进行禁用,在数据集文档列表,点击禁用按钮,则文档被禁用;也可以在文档详情,点击禁用按钮,禁用整个文档或某个分段,禁用的文档将不会被索引。禁用的文档点击启用,可取消禁用。
  • 归档:一些不再使用的旧文档数据,如果不想删除可将它进行归档,归档后的数据就只能查看或删除,不可进行编辑。在数据集文档列表,点击归档按钮,则文档被归档;也可以在文档详情,归档文档。归档的文档将不会被索引。归档的文档也可点击撤销归档。

元数据管理

除了用于标记不同来源文档的元数据信息,例如网页数据的标题、网址、关键词、描述等。元数据将被用于知识库的分段召回过程中,作为结构化字段参与召回过滤或者显示引用来源。

文档分段

文档分段对于知识库应用的问答效果有明显影响,在将知识库与应用关联之前,建议人工检查分段质量。

通过字符长度、标识符或者 NLP 语义分段等机器自动化的分段方式虽然能够显著减少大规模文本分段的工作量,但分段质量与不同文档格式的文本结构、前后文的语义联系都有关系,通过人工检查和订正可以有效弥补机器分段在语义识别方面的缺点。

检查分段质量时,一般需要关注以下几种情况:

  • 过短的文本分段:导致语义缺失;
  • 过长的文本分段:导致语义噪音影响匹配准确性;
  • 明显的语义截断:在使用最大分段长度限制时会出现强制性的语义截断,导致召回时缺失内容;

添加文本分段
在分段列表内点击 「 添加分段 」 ,可在文档内自行添加一个或批量添加多个自定义分段。

批量添加分段时,你需要先下载CSV格式的分段上传模板,并按照模板格式在Excel内编辑所有的分段内容,再将CSV文件保存后上传。

在分段列表内,可对已添加的分段内容直接进行编辑修改。包括分段的文本内容和关键词。

Embedding模型,修改知识库的嵌入模型,修改Embedding模型将对知识库内的所有文档重新嵌入,原先的嵌入将会被删除。

API
Dify知识库提供整套标准API,开发者通过API调用对知识库内的文档、分段进行增删改查等日常管理维护操作,参考API文档

节点

节点名称 功能描述 应用场景 输入要求 输出结果
LLM 利用LLM处理文本生成、文本理解等任务 自然语言处理、文本分析、聊天机器人等 文本数据、问题描述、指令等 处理后的文本结果,如回答、生成的文本等
知识检索 在知识库中检索信息,提供基于查询的响应 问答系统、智能助手、数据检索等 查询关键词、问题描述等 检索结果,如相关信息、数据记录等
结束 表示工作流的结束,用于终止流程 任何需要定义结束点的工作流 无特定输入,或根据前序节点结果 流程结束,无输出
Agent 模拟智能体行为,执行决策和任务 模拟对话、自动化任务执行等 环境状态、任务指令等 行为结果,如决策输出、任务完成状态等
问题分类器 将输入的问题分类到预定义的类别中 客户服务、技术支持等需要问题分类的场景 问题描述、用户输入等 分类结果,如问题类型、优先级等
条件分支 根据条件判断执行不同的流程分支 决策树、工作流分支等 条件表达式、逻辑判断等 分支结果,决定下一个执行的节点
迭代 重复执行某个流程或任务,直到满足特定条件 数据处理、批量操作等需要重复执行的场景 迭代条件、循环次数等 迭代结果,如处理后的数据集、完成标志等
代码执行 执行代码块,运行脚本或程序代码 自动化脚本执行、数据处理等 代码块、脚本文件等 代码执行结果,如输出数据、状态码等
模板转换 将输入数据转换为特定格式或模板 数据格式化、报告生成等 输入数据、模板定义等 转换后的数据,如格式化后的文本、生成的报告等
变量聚合器 对多个变量进行聚合操作,如求和、平均等 数据分析、统计计算等 多个变量值、聚合函数等 聚合结果,如总和、平均值等
文档提取器从文档中提取特定信息 数据提取、信息检索等 文档内容、提取规则等 提取的信息,如关键数据、文本片段等
变量赋值 为变量分配值,设置变量状态 配置管理、初始化等 变量名、赋值等 赋值结果,更新后的变量状态
参数提取器 从输入中提取参数,供后续节点使用 参数解析、配置提取等 输入数据、提取规则等 提取的参数,如键值对等
HTTP请求 发送HTTP请求到指定的URL,处理网络请求 网络交互、API调用等 请求URL、请求方法、头信息等 请求结果,如响应数据、状态码等
列表操作 对列表数据进行操作,如添加、删除或修改列表中的元素 数据处理、列表管理等 列表数据、操作类型等 操作结果,如更新后的列表内容

添加Ollama

添加Ollama

在这里插入图片描述
在「基础URL中」,如果ollama和Dify是同机部署,并且Dify是通过Docker部署,那么填http://host.docker.internal:11434,其他情况填http://ollama的地址:11434,填完之后点击保存即可。

DeepSeek R1是一个推理模型,不支持函数调用,也就是说无法集成在DIfy的智能体中,但是DeepSeek V3可以。

版本

V1.4.0

新功能:

  • 深色模式;
  • 多模态输出:支持多模态输出,允许LLM在LLMNode中处理文本和图像。增强数据交互的丰富性并增强模型的功能。可使用Gemini 2.0 Flash Exp型号尝试这些新功能!这种集成可确保您的AI可以无缝处理和响应文本和视觉数据;
  • 问题编辑:允许在问题上线之前对其进行编辑。确保可以调整问题的清晰度和相关性;
  • 增强的Redis管理:支持Redis客户端缓存以优化数据处理(开箱即用),从而提高整体系统性能;
  • 强大的工作流程管理:解决工作流程中的许多不一致和错误,确保全面运营更顺畅、更可靠;

V1.4.1

新功能:

  • 可选请求日志记录:可以配置可选的请求和响应日志记录,以帮助进行调试和跟踪;
  • Web 媒体元素增强功能:添加了对具有属性的 和 元素的支持,从而在嵌入媒体时为您带来更大的灵活性;
  • 插件守护进程中的 Aliyun OSS 存储支持:新的插件存储类型现在支持 Aliyun OSS,以满足需要此云存储选项的用户;
  • 在 Opik Tracer 中跟踪对话:引入对通过Opik Tracer跟踪对话的支持,增强跟踪功能;
  • 简化应用程序创建:通过折叠基本应用程序类型简化应用程序创建体验,以实现更直观的设置;
  • 文档提取器增强功能:在文档提取器中实现chardet编码,以便更稳健地处理各种文本编码。

修复与改进:

  • 完全更新:将qdrant-client升级到v1.9.0,以确保环境安全并处于最新状态;
  • 溢出和布局修复:更正元数据条件名称溢出并改进对长机器人描述的处理;
  • 文件上传和导出:解决头像上传和自定义文件类型导出的问题,因此所有内容都可以在各自的拉取中顺利上传;
  • 性能优化:改进多个工作流程,包括OpsTraceManager中的验证逻辑和Markdown中的图表渲染,解决闪烁和循环问题;
  • 知识检索和工作流程增强功能:在知识检索工作中遇到的未初始化变量错误,并改进逻辑。

参考

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐