当前位置: 首页 > article >正文

Dify理论+部署+实战

概述

一个功能强大的开源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

  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和工作流

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

总结:

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

添加本地模型

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

语音功能

麦克风未授权

解决方案:
1、首先排除电脑的麦克风权限是否可用,具体可以在百度上搜索。然后打开浏览器的麦克风权限。

在线测试浏览器是否可以使用麦克风。使用链接在线测试。

2、浏览器的麦克风权限已经打开,但是dify发布的应用中麦克风还是不可以用。此处有两种方法,
2.1 部署dify时使用https协议,根据dify的官方的issue中反馈部署https协议版本的就可以解决这类问题。具体怎么部署https版本的,我没有仔细研究,若是后续有了解的话再更新此部分。
2.2 既然https协议中麦克风权限可以使用,那么http协议中也可以使用,只是需要设置一些东西,Chrome浏览器中打开
chrome://flags/#unsafely-treat-insecure-origin-as-secure页面后,将Insecure origins treated as secure设置为enabled,并将允许使用麦克风的网页的地址写入可访问列表,如http://ip:port”,重启浏览器后可用!

语音接口报错

语音提问时,audio-to-text 接口报错:

{"code": "invalid_param","message": "Speech to text is not enabled","status": 400
}

在这里插入图片描述

知识库

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

  • 分段标识符:用于定义文本分段的规则,如按换行符\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中的图表渲染,解决闪烁和循环问题;
  • 知识检索和工作流程增强功能:在知识检索工作中遇到的未初始化变量错误,并改进逻辑。

参考

  • 麦克风未授权

相关文章:

Dify理论+部署+实战

概述 一个功能强大的开源AI应用开发平台,融合后端即服务(Backend as Service)和LLMOps理念,使开发者能够快速搭建生产级的生成式AI应用。 核心优势 直观的用户界面:提供简洁明了的操作界面,使得用户能够…...

内网穿透系列五:自建SSH隧道实现内网穿透与端口转发,Docker快速部署

​以下是对这个自建SSH隧道工具的简单介绍: 一款基于OpenSSH构建的内网穿透与端口转发工具,通过SSH隧道技术实现支持所有TCP协议通信,包括SSH、HTTP、HTTPS等各类应用提供灵活部署方式,特别支持Docker容器化快速部署开源工具地址…...

桥梁进行3D建模时的数据采集、存储需求及技术参数

桥梁进行3D建模时的数据采集、存储需求及技术参数 1公里桥梁进行3D建模时的数据采集、存储需求及技术参数的详细分析 1. 照片数量估算 关键影响因素 桥梁类型:梁桥/拱桥/斜拉桥(结构复杂度不同) 建模精度:工程级(1-…...

Transformer架构技术学习笔记:从理论到实战的完整解析

引言:重新定义序列建模的里程碑 2017年,Vaswani等人在论文《Attention Is All You Need》中提出的Transformer架构,彻底改变了自然语言处理领域的游戏规则。与传统RNN/LSTM相比,Transformer具有三大革命性特征: 全注意…...

1、python代码实现与大模型的问答交互

一、基础知识 1.1导入库 torch 是一个深度学习框架,用于处理张量和神经网络。modelscope是由阿里巴巴达摩院推出的开源模型库。 AutoTokenizer 是ModelScope 库的类,分词器应用场景包括自然语言处理(NLP)中的文本分类、信息抽取…...

CPU服务器的主要功能有哪些?

服务器作为互联网社会中基础的网络设施,为企业提供了存储和传输文件的功能,而中央处理器作为服务器计算能力的核心部分,能够帮助企业进行十分复杂的科学计算任务,本文就主要来探索一下CPU服务器的主要功能都有哪些吧! …...

如何在 Vue.js 中集成 Three.js —— 创建一个旋转的 3D 立方体

在这篇文章中,我将向大家展示如何将 Three.js 与 Vue.js 结合,创建一个简单的 3D 场景,并展示一个旋转的立方体。通过这个简单的示例,你将学习到如何在 Vue 项目中集成 Three.js,以及如何创建动态的 3D 内容。 1. 安装…...

Java开发经验——阿里巴巴编码规范实践解析6

摘要 本文深入解析了阿里巴巴编码规范在数据库设计和Java开发中的实践应用。详细阐述了数据库字段命名、类型选择、索引命名等规范,以及Java POJO类的对应规范。强调了字段命名的重要性,如布尔字段命名规则、表名和字段名的命名禁忌等。同时&#xff0c…...

docker常见考点

一、基础概念类 Docker与虚拟机的区别 Docker基于容器化技术,共享宿主机内核,资源消耗更少;虚拟机通过Hypervisor虚拟化硬件,资源占用高。Docker启动速度更快(秒级),虚拟机需要启动完整操作系统…...

工业自动化实战:基于 VisionPro 与 C# 的机器视觉 PLC 集成方案

一、背景介绍 在智能制造领域,机器视觉检测与 PLC 控制的无缝集成是实现自动化生产线闭环控制的关键。本文将详细介绍如何使用 C# 开发上位机系统,实现 Cognex VisionPro 视觉系统与西门子 S7 PLC 的数据交互,打造高效、稳定的工业检测方案。…...

C++ —— B/类与对象(中)

🌈个人主页:慢了半拍 🔥 创作专栏:《史上最强算法分析》 | 《无味生》 |《史上最强C语言讲解》 | 《史上最强C练习解析》|《史上最强C讲解》 🏆我的格言:一切只是时间问题。 ​ 目录 一、类的6个默认成员…...

Java网络编程与Socket安全权限详解

Socket安全权限控制 Java通过java.net.SocketPermission类实现对网络套接字访问的细粒度控制。该权限管理机制通常在Java策略文件中配置,其标准授权语法格式如下: grant {permission java.net.SocketPermission"target", "actions"; };目标主机与端口规…...

AXI协议乱序传输机制解析:提升SoC性能的关键设计

AXI 协议 Out-of-Order 传输机制 概述 AXI (Advanced eXtensible Interface) 协议支持乱序传输 (Out-of-Order) 机制,这是一种重要的性能优化特性,允许数据传输不按照发起顺序完成,从而提高总线带宽利用率和系统整体性能。 基本原理 通道…...

Qt实现csv文件按行读取的方式

Qt实现csv文件按行读取的方式 场景:我有一个保存数据的csv文件,文件内保存的是按照行保存的数据,每行数据是以逗号为分隔符分割的文本数据。如下图所示: 现在,我需要按行把这些数据读取出来。 一、使用QTextStream文本流的方式读取 #include <QFile>void readfil…...

分库分表后的 ID 生成方案

分库分表后的 ID 生成方案 一、问题背景 在分布式系统中,当单表数据量超过千万级时,通常会采用分库分表策略。此时传统的自增ID方案会面临以下问题: 不同分片可能生成相同ID(冲突)单调递增特性被破坏全局唯一性难以保证关键结论:分库分表环境下,ID生成必须满足全局唯一…...

进行性核上性麻痹健康护理全指南:从症状管理到生活照护

进行性核上性麻痹&#xff08;PSP&#xff09;是一种罕见的神经退行性疾病&#xff0c;主要影响运动、平衡及眼球运动功能&#xff0c;常表现为步态不稳、吞咽困难、眼球上视受限、情绪改变等。由于目前尚无根治方法&#xff0c;科学的健康护理对延缓病情进展、提升患者生活质量…...

openFuyao开源发布,建设多样化算力集群开源软件生态

openFuyao 开源发布 随着 AI 技术的高速发展&#xff0c;算力需求呈爆发式增长&#xff0c;集群已成为主流生产方式。然而&#xff0c;当前集群软件生态发展滞后于硬件系统&#xff0c;面临多样化算力调度困难、超大规模集群软件支撑不足等挑战。这些问题的根源在于集群生产的…...

第四十五节:目标检测与跟踪-Meanshift/Camshift 算法

引言 在计算机视觉领域,目标跟踪是实时视频分析、自动驾驶、人机交互等应用的核心技术之一。Meanshift和Camshift算法作为经典的跟踪方法,以其高效性和实用性广受关注。本文将从原理推导、OpenCV实现到实际案例,全面解析这两种算法的核心思想与技术细节。 一、Meanshift算法…...

Docker Desktop无法在windows低版本进行安装

问题描述 因工作需要&#xff0c;现在一台低版本的window系统进行Docker Desktop的安装&#xff0c;但是安装过程当中出现了报错信息 系统版本配置 原因分析&#xff1a; 关于本机查看了系统的版本号&#xff0c;版本号如下为1909,但是docker Desktop要求的最低的win10版本…...

SQL Server 简介和与其它数据库对比

SQL Server 是微软&#xff08;Microsoft&#xff09;开发的一种 关系型数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;全称是 Microsoft SQL Server。 &#x1f50d; SQL Server 是什么&#xff1f; SQL Server 是一个功能强大、企业级的数据库平台&#xff0c;用…...

2025年- H56-Lc164--200.岛屿数量(图论,深搜)--Java版

1.题目描述 2.思路 &#xff08;1&#xff09;主函数&#xff0c;存储图结构 &#xff08;2&#xff09;主函数&#xff0c;visit数组表示已访问过的元素 &#xff08;3&#xff09;辅助函数&#xff0c;用递归&#xff08;深搜&#xff09;&#xff0c;遍历以已访问过的元素&…...

自证式推理训练:大模型告别第三方打分的新纪元

1. 传统验证体系的困境与技术跃迁的必然性 1.1 传统验证器的局限性 现有强化学习框架依赖显式验证器对答案进行二值化判定&#xff0c;这种模式在数学、代码等可验证领域表现优异。某厂内部数据显示&#xff0c;传统R1-Zero方法在代码生成任务中准确率达92%&#xff0c;但切换…...

vue2使用el-tree实现两棵树间节点的拖拽复制

原文链接&#xff1a;两棵el-tree的节点跨树拖拽实现 参照这篇文章&#xff0c;把它做成组件&#xff0c;新增左侧树&#xff08;可拖出&#xff09;被拖节点变灰提示&#xff1b; 拖拽中&#xff1a; 拖拽后&#xff1a; TreeDragComponent.vue <template><!-- …...

前端开发中 <> 符号解析问题全解:React、Vue 与 UniApp 场景分析与解决方案

前端开发中 <> 符号解析问题全解&#xff1a;React、Vue 与 UniApp 场景分析与解决方案 在前端开发中&#xff0c;<> 符号在 JSX/TSX 环境中常被错误解析为标签而非比较运算符或泛型&#xff0c;导致语法错误和逻辑异常。本文全面解析该问题在不同框架中的表现及解…...

封装一个Qt调用动态库的类

封装一个Qt调用动态库的类 由于我的操作系统Ubuntu系统,我就以Linux下的动态库.so为例了,其实windows上的dll库调用方式是一样的,如果你的Qt项目是windows的,这篇文章代码可以直接使用。 一般情况下我们对外输出都是以动态库的形式封装的,这样我们更新版本的时候就很方便…...

[python] 最大公约数 和 最小公倍数

在Python中&#xff0c;计算最大公约数&#xff08;GCD&#xff09;和最小公倍数&#xff08;LCM&#xff09;的库函数主要来自math模块&#xff1a; 最大公约数&#xff08;GCD&#xff09; 使用math.gcd(a, b)函数&#xff0c;支持两个整数参数&#xff08;Python 3.5&…...

如何在 Django 中集成 MCP Server

目录 背景说明第一步&#xff1a;使用 ASGI第二步&#xff1a;修改 asgi.py 中的应用第三步&#xff1a;Django 数据的异步查询 背景说明 有几个原因导致 Django 集成 MCP Server 比较麻烦 目前支持的 MCP 服务是 SSE 协议的&#xff0c;需要长连接&#xff0c;但一般来讲 Dj…...

从零开始的云计算生活——第十一天,知识延续,程序管理。

一故事背景 今日整体内容是第十天的剩余部分再加上程序管理的开头部分&#xff0c;详细可以回到第十天看新增加内容&#xff0c;现在开始讲解新内容。 二Linux程序与进程 1程序,进程,线程的概念 程序&#xff1a;‌是一段静态的代码&#xff0c;它是应用软件执行的蓝本。程序…...

React 事件处理与合成事件机制揭秘

引言 在现代前端开发的技术生态中&#xff0c;React凭借其高效的组件化设计和声明式编程范式&#xff0c;已成为构建交互式用户界面的首选框架之一。除了虚拟DOM和单向数据流等核心概念&#xff0c;React的事件处理系统也是其成功的关键因素。 这套系统通过"合成事件&qu…...

【React】jsx 从声明式语法变成命令式语法

在 React 中&#xff0c;JSX 是一种声明式的语法扩展&#xff0c;它使得开发者能够以类似 HTML 的方式描述用户界面。 然而&#xff0c;在某些情况下&#xff0c;可能希望将 JSX 转换为命令式语法&#xff0c;以获得更精细的控制或满足特定的需求。(ckeditor.com) JSX 到命令式…...