首页 > 其他分享 >一文彻底搞懂大模型 - Dify(Agent + RAG)

一文彻底搞懂大模型 - Dify(Agent + RAG)

时间:2024-10-09 11:46:37浏览次数:3  
标签:RAG Dify AI 模型 知识库 模式 搞懂 助理

**Dify 是一个用于构建 AI 应用程序的开源平台。****Dify融合了后端即服务(Backend as Service)和LLMOps理念。它支持多种大型语言模型,如Claude3、OpenAI等,并与多个模型供应商合作,确保开发者能根据需求选择最适合的模型。**Dify通过提供强大的数据集管理功能、可视化的Prompt编排以及应用运营工具,大大降低了AI应用开发的复杂度。
在这里插入图片描述

图片

*什么是Dify(Define & Modify)?Dify是一个开源的大语言模型(LLM)应用开发平台,旨在简化和加速生成式AI应用的创建和部署。该平台结合了后端即服务(Backend as Service, BaaS)和LLMOps的理念,为开发者提供了一个用户友好的界面和一系列强大的工具*,使他们能够快速搭建生产级的AI应用。**

图片

  1. 低代码/无代码开发:Dify通过可视化的方式允许开发者轻松定义Prompt、上下文和插件等,无需深入底层技术细节。
  2. 模块化设计:Dify采用模块化的设计,每个模块都有清晰的功能和接口,开发者可以根据需求选择性地使用这些模块来构建自己的AI应用。
  3. 丰富的功能组件:平台提供了包括AI工作流、RAG管道、Agent、模型管理等丰富功能组件,帮助开发者从原型到生产的全过程。
  4. 支持多种大语言模型:Dify已支持主流的模型,开发者能够根据自己的需求选择最适合的模型来构建AI应用。

图片

Dify提供四种基于LLM构建的应用程序,可以针对不同的应用场景和需求进行优化和定制。

图片

  1. 聊天助手(Chat Assistant):

    • 基于LLM的对话助手,能够与用户进行自然语言交互,理解用户的问题、请求或指令,并给出相应的回答或执行相应的操作。
  2. 文本生成(Text Generation):

    • 专注于各种文本生成任务,如撰写故事、新闻报道、文案、诗歌等创意写作,以及文本分类、翻译等任务。
  3. Agent(智能代理):

    • 这种助手不仅具备对话能力,还具备任务分解、推理、工具调用等高级能力。它能够理解复杂的指令,将任务分解为多个子任务,并调用相应的工具或API来完成这些子任务。
  4. 工作流程(Workflow):

    • 根据用户定义的流程编排,灵活地组织和控制LLM的工作流程。用户可以自定义一系列的操作步骤和逻辑判断,让LLM按照预定的流程执行任务。

图片

**二、Dify + RAG****

如何将文档上传到Dify知识库构建RAG?将文档上传到Dify知识库的过程涉及多个步骤,从文件选择、预处理、索引模式选择到检索设置**,旨在构建一个高效、智能的知识检索系统。**

1. 创建知识库:Dify主导航栏中的“知识”,在此页面可以看到已有的知识库。

  • 创建新知识库:拖放或选择要上传的文件,支持批量上传,但数量受订阅计划限制。
  • 空知识库选项:如果尚未准备文档,可选择创建空知识库。
  • 外部数据源:使用外部数据源(如Notion或网站同步)时,知识库类型将固定,建议为每个数据源创建单独知识库。

图片

2. 文本预处理与清理:内容上传到知识库之后,需要进行分块和数据清洗,这个阶段可以理解为内容的预处理和结构化。

  • 自动模式:Dify自动分割和清理内容,简化文档准备流程。

图片

  • 自定义模式:对于需要更精细控制的情况,可选择自定义模式进行手动调整。

图片

3. 索引模式:根据应用场景选择合适的索引模式,如高质量模式、经济模式或问答模式。

  • 高质量模式:利用Embedding模型将文本转换为数值向量,支持向量检索、全文检索和混合检索。

图片

  • 经济模式:采用离线向量引擎和关键字索引,虽然准确率有所降低,但省去了额外的 token 消耗和相关成本。

图片

  • **问答模式:**系统会进行文本分词,并通过摘要的方式,为每段生成QA问答对。

图片

4. 检索设置:

(1)在高质量索引模式下,Dify 提供三种检索设置:向量搜索、全文搜索、混合搜索

  • 向量搜索:将查询向量化,计算与知识库中文本向量的距离,识别最接近的文本块。

图片

  • 全文搜索:基于关键字匹配进行搜索。

图片

  • 混合搜索:结合向量搜索和全文搜索的优势。

图片

  • Rerank模型:对检索结果进行语义重排序,优化排序结果。

(2)在经济索引模式下,Dify 提供单一检索设置:倒排索引和TopK

  • 倒排索引:一种为快速检索文档中的关键字而设计的索引结构。
  • TopK和分数阈值:设置检索结果的数量和相似度阈值。

图片

**三、******Dify + Agent**********

****如何在Dify平台搭建Agent**?****在Dify平台上,通过选择模型、编写提示、添加工具与知识库、配置推理模式及对话开启器,最后进行调试预览并发布为Webapp,实现Agent的创建与部署。

1. 探索与集成应用模板

Dify平台提供了丰富的“探索”(Explore)部分,其中包含多个代理助理的应用模板。用户可以直接将这些模板集成到自己的工作区中,快速开始使用。同时还允许用户创建自定义代理助理,以满足特定的个人或组织需求。

图片

2. 选择推理模型

代理助理的任务完成能力很大程度上取决于所选LLM模型的推理能力。建议使用如GPT-4等更强大的模型系列,以获得更稳定、更精确的任务完成结果。

图片

3. 编写提示与设置流程

在“说明”(Instructions)部分,用户可以详细编写代理助理的任务目标、工作流程、所需资源和限制条件等提示信息。这些信息将帮助代理助理更好地理解并执行任务。

图片

4. 添加工具与知识库
  • 工具集成:在“工具”(Tools)部分,用户可以添加各种内置或自定义工具,以增强代理助理的功能。这些工具可以包括互联网搜索、科学计算、图像创建等,帮助代理助理与现实世界进行更丰富的交互。
  • 知识库:在“上下文”(Context)部分,用户可以整合知识库工具,为代理助理提供外部背景知识和信息检索能力。

图片

5. 推理模式设置

Dify支持两种推理模式:Function Calling和ReAct。

图片

  • Function Calling:对于支持该模式的模型(如GPT-3.5、GPT-4),建议使用此模式以获得更好更稳定的性能。
  • ReAct:对于不支持Function Calling的模型系列,Dify提供了ReAct推理框架作为替代方案,以实现类似的功能。
6. 配置对话开启器

用户可以为代理助理设置对话开场白和初始问题,以便在用户首次与代理助理交互时,展示其可以执行的任务类型和可以提出的问题示例。

图片

7. 调试与预览

在将代理助理发布为应用程序之前,用户可以在Dify平台上进行调试和预览,以评估其完成任务的有效性和准确性。

图片

8. 应用程序发布

一旦代理助理配置完成并经过调试,用户就可以将其发布为Web应用程序(Webapp),供更多人使用。这将使得代理助理的功能和服务能够跨平台、跨设备地提供给更广泛的用户群体。

图片

最后如果您也对AI大模型感兴趣想学习却苦于没有方向

标签:RAG,Dify,AI,模型,知识库,模式,搞懂,助理
From: https://blog.csdn.net/2401_86435672/article/details/142783156

相关文章

  • 【RAG论文精读3】RAG论文综述1(2312.10997)-第1部分
    收录于我的专栏:AI修炼之路简介论文中英文名Retrieval-AugmentedGenerationforLargeLanguageModels:ASurvey面向大型语言模型的检索增强生成:综述论文地址arxiv地址:https://arxiv.org/abs/2312.10997精读理由这篇综述论文对RAG在大型语言模型中的应用进行了......
  • 大模型2-初试大模型+RAG
    任务使用大模型+RAG技术,缓解大模型幻觉问题。RAG介绍在实际业务场景中,通用的基础大模型可能存在无法满足我们需求的情况,主要有以下几方面原因:知识局限性:大模型的知识来源于训练数据,而这些数据主要来自于互联网上已经公开的资源,对于一些实时性的或者非公开的,由于大模型......
  • RAG系统评测实践详细版:Coze及相关产品评测对比,以及下一代RAG技术
    AIRAG系统评测实践:Coze及相关产品评测对比RAG(检索增强生成)是一种AI框架,它将传统信息检索系统(例如数据库)的优势与生成式大语言模型(LLM)的功能结合在一起,通过将这些额外的知识与自己的语言技能相结合,AI可以撰写更准确、更具时效性且更贴合您的具体需求的文字。RAG通过几个......
  • 文盘rust--使用 Rust 构建RAG
    作者:京东科技贾世闻RAG(Retrieval-AugmentedGeneration)技术在AI生态系统中扮演着至关重要的角色,特别是在提升大型语言模型(LLMs)的准确性和应用范围方面。RAG通过结合检索技术与LLM提示,从各种数据源检索相关信息,并将其与用户的问题结合,生成准确且丰富的回答。这一机制特别适用于需......
  • 彻底搞懂【Python】切片操作
    在利用Python解决各种实际问题的过程中,经常会遇到从某个对象中抽取部分值的情况,切片操作正是专门用于完成这一操作的有力武器。理论上而言,只要条件表达式得当,可以通过单次或多次切片操作实现任意切取目标值。切片操作的基本语法比较简单,但如果不彻底搞清楚内在逻辑,也极容易产生......
  • Chromium 中Window.localStorage对象c++实现分析
    一、前端定义Window.localStorage只读的localStorage 属性允许你访问一个Document 源(origin)的对象 Storage;存储的数据将保存在浏览器会话中。localStorage 类似 sessionStorage,但其区别在于:存储在 localStorage 的数据可以长期保留;而当页面会话结束——也就是说,当页面......
  • 大模型学习----什么是RAG
    大模型快速定制的RAG(Retrieval-AugmentedGeneration)方法一、什么是RAGRAG(Retrieval-AugmentedGeneration)即检索增强生成,它是一种结合了检索和语言生成的技术,旨在利用外部知识源来增强大型语言模型的输出。通过在生成过程中引入检索步骤,可以为模型提供更准确、更相关的信......
  • RAG-Multi-Modal-Generative-AI-Agent
    RAG-Multi-Modal-Generative-AI-Agenthttps://github.com/ganeshnehru/RAG-Multi-Modal-Generative-AI-Agent/tree/mainrouter->eachagents.AmultimodalRAG-basedgenerativeAIdigitalassistantthatcombinestextgeneration,visionQA,andcodegeneratio......
  • Average
    二分答案转化为判定,这样我们就只关心最大的和是否大于0,而不关心除以区间长度的干扰了赛场上阴差阳错地写对了斜率优化,但是想不明白原理,几经周折查找资料,终于明白了:弹出队头决策的确会导致当前解未必最优,但一定不会干扰全局最优解;如果需要查找当前最优解,则需要二分下凸壳在DP的......
  • 一文搞懂SentencePiece的使用
    目录1.什么是SentencePiece?2.SentencePiece基础概念2.1SentencePiece的工作原理2.2SentencePiece的优点3.SentencePiece的使用3.1安装SentencePiece3.2训练模型与加载模型3.3encode(高频)3.4decode(高频)3.5设置相关选项(不常用)4.Trainer的使用5.大小写相......