在第1章中,我们列出了检索增强生成(RAG)在人工智能应用中的几种实现方式,例如客户支持聊天机器人、自动报告、产品描述、知识库的可搜索性和实用性、创新侦察、内容个性化、产品推荐以及培训和教育。
在本章中,我们将涵盖以下主题:
- RAG在客户支持和聊天机器人中的应用
- RAG在自动报告中的应用
- RAG在电子商务支持中的应用
- 利用RAG提升知识库效能
- 创新侦察和趋势分析
- 媒体和内容平台的内容个性化
- 利用RAG进行个性化营销推荐
- 培训和教育
这些主题将提供关于RAG广泛应用和多功能性的全面理解。
本章中呈现的示例并不旨在穷尽所有可能,而是为了提供具体的、实际的场景,展示RAG的潜力,并激发你在特定企业环境中应用这一技术的创意。RAG的极大灵活性使其能够为广泛的行业和用例定制,许多具体的应用实例已经在各个组织中得到使用。通过分析这些示例,你将获得关于如何利用RAG增强现有流程、提高效率并推动创新的宝贵见解。
在本章的结尾,我们将展示一个代码示例,代表了许多应用中的常见做法:向响应中添加更多相关数据。这段代码将从第2章的代码继续,并添加一个有价值的步骤:在RAG响应中返回检索到的文档的来源。
我们首先讨论如何利用RAG和生成性人工智能(GenAI)显著增强聊天机器人的能力。
技术要求
本章的代码存放在以下GitHub仓库中:GitHub - Unlocking Data with Generative AI and RAG - Chapter 03
客户支持和聊天机器人与RAG
聊天机器人已经从简单的脚本响应发展到如今复杂的、由RAG驱动的对话代理。RAG为聊天机器人带来了下一波创新,将先进的问答系统融入聊天机器人的能力中,使其在用户交互时更加自然、对话性更强。RAG结合了两者的优势:从公司和客户的庞大数据集中检索信息的能力,以及生成连贯、上下文相关响应的能力。这在客户支持场景中展现出了显著的潜力,能够快速访问并利用公司特定数据(如过去的客户互动、常见问题解答和支持文档),极大地提升了客户服务质量。
RAG使得聊天机器人能够为用户查询提供个性化、高效且高度相关的响应,这远远超出了早期模型仅依赖于预编程响应或基本自然语言处理(NLP)的表现。考虑到这不仅仅是一个技术改进,聊天机器人所达到的水平代表了企业与客户互动方式的根本性转变。生成性人工智能(GenAI)使公司能够更深层次地利用他们对每个客户的所有数据,例如读取所有的PDF格式银行对账单,从而使真正的1对1服务定制成为可能。RAG增强型聊天机器人能够从大量数据中筛选出最相关的信息,有效回答用户可能提出的更多问题,确保响应准确且针对每次互动的具体情境进行量身定制。客户期望快速、相关且非常个性化的响应,而使用RAG无疑是提供这种服务的最有效方式。
需要记住的是,基于RAG的系统仍处于起步阶段。在短短几年内,基于RAG的聊天机器人将推动这一领域的进一步发展。你可能会看到能够处理最独特、最具体询问的对话式聊天机器人,且无需任何人工干预。它们的自然语言处理能力、处理多种语言的能力以及对海量内存和计算能力的访问将彻底改变公司与每个客户进行非常定制化和个人化交互的方式。
RAG在问答和聊天机器人中的应用已经渗透到多个行业,如技术支持、金融服务、医疗保健和电子商务。我们将简要介绍一些这些热门应用的例子,首先从技术支持开始。
技术支持
假设存在一个反复出现的技术问题。例如,很多用户向有线电视提供商咨询的技术问题是相同的。一个RAG增强型的聊天机器人可以根据以前的互动识别问题,并立即提供一组定制化的故障排除步骤,认同客户之前尝试解决问题的方式,并调整当前的响应。这不仅展示了对客户体验的理解,还能在支持过程中建立信任和信心。
金融服务
RAG增强型的金融服务聊天机器人也可以帮助处理账户查询、交易问题以及个性化的财务建议,利用客户的交易历史和账户信息。你上次尝试查询信用卡利率是什么时候?这个问题似乎很简单,但对于银行而言,通常并不容易为客户服务代理提供帮助,因为数据往往藏在数据库、PDF文档和安全措施后面。然而,一旦你在线验证身份,银行聊天机器人可以使用RAG访问你所有的金融文件,并迅速回答问题,例如:你的信用卡余额的利息已支付了21.9%,同时还可以提供相关信息,例如:在你成为客户期间,你仅支付了两次利息。如果你接着需要咨询关于房贷账户的问题,你也不需要转接给其他代理,因为RAG聊天机器人同样可以为你解答!它可以处理更复杂的问题,例如:“我的信用卡利率比我的房贷利率高多少?”此外,如果你提出一个后续问题,它能够理解整个对话的上下文,并以非常自然和人性化的方式与您就财务账户进行对话。这种支持水平可以显著提升客户体验,远超现有系统所能提供的支持,进而促进客户的忠诚度和对公司服务的信任。
医疗保健
在医疗保健领域,RAG驱动的聊天机器人可以通过访问患者的病历(在获得适当权限的情况下)提供个性化的健康建议或帮助安排预约。如果患者询问如何管理新诊断的糖尿病,聊天机器人可以分析他们的病史、药物治疗和近期的实验室结果,从而提供量身定制的生活方式、饮食和药物管理建议。聊天机器人甚至可以安排后续的就诊预约并发送提醒,从而创建更全面和更具互动性的患者支持体验。这种个性化的护理可以显著改善患者的健康结果,增强患者对医疗系统的信任,并减轻医疗专业人员的负担。
然而,RAG不仅仅是为聊天机器人而设。接下来,我们将讨论另一个应用领域:自动化报告生成在数据分析中的应用。
RAG在自动化报告中的应用
使用RAG结合数据分析和报告的公司,通过其自动化报告功能,显著提升了分析能力和报告生成的速度。RAG的这一创新应用架起了一个桥梁,将庞大的非结构化数据湖与企业每日需要用于决策和创新的可操作性洞察连接起来。通过利用RAG进行自动化报告,公司可以显著简化报告流程,提高准确性,并揭示隐藏在数据中的有价值的洞察。接下来,让我们看看如何在这个环境中使用RAG。
RAG如何在自动化报告中应用
虽然设置这种自动化报告的方式有无数种,但通常会集中在报告相对标准的领域,这样更容易在RAG环境中进行编排。通常情况下,你从已经存在的自动化报告开始,该报告已经从代码角度实现,但你可以应用生成性AI和/或类似RAG的技术,帮助使这一自动化更加高效。例如,可以将一组初步的分析问题输入到RAG系统中,无需用户输入,然后将其内容添加到初步报告中。这些初步分析不仅可以包括图表和图形,还可以加入来自大型语言模型(LLM)的评论,作为RAG管道中的初始组件。
在许多自动化报告场景中,自动化报告通常只是帮助决策者理解数据的第一步。决策者通常会根据看到的报告内容请求更多的分析。将自动化报告作为更大RAG系统的一部分,可以基本替代和/或加速在这些数据分析场景中的来回互动,帮助重要的决策者更快地获取关键数据分析,做出更有效的决策。你可以将报告数据及其生成的底层数据提供给RAG系统,从而让非技术人员可以在不需要数据分析师进行额外分析的情况下,向数据提出多个广泛的问题。还可以将其他数据源添加到RAG系统的可用源中,进一步加深讨论和分析,甚至可能远超单纯的自动化分析所能提供的内容。
这些数据很多是隐藏在非结构化数据中的,这类数据已经被证明是公司利用的难点。让我们谈谈RAG如何帮助处理非结构化数据,支持自动化报告。
将非结构化数据转化为可操作的洞察
如今,组织可用的绝大多数数据都是非结构化的,从文章和研究论文到社交媒体信息流和网页内容。正是这种非结构化的特性,使得通过传统数据分析方法来处理和分析这些数据变得非常具有挑战性。RAG作为一种强大的方法介入,通过解析这些数据,从传统上难以接触的数据中提取信息,创建初步草稿和摘要,甚至可以根据个人的角色或兴趣对这些内容进行定制,并突出显示最关键的信息。与直接使用LLM相比,RAG可以作为一个更复杂的工具,替代许多用户在与LLM互动时通常需要手动完成的任务。这个概念同样可以应用于数据分析和自动化报告的领域,在这些领域中,许多步骤可以在RAG系统中复制,从而提高速度和效率。这一过程不仅节省了时间,还确保决策者能够快速掌握数据的核心内容,而不会被数据的数量所困扰。
需要注意的是,在处理非结构化数据时,通常是在RAG的索引阶段,这些数据被转化为一种新的格式,使其对整个RAG系统更有帮助。例如,PDF可能会被提取为不同的元素,并按重要性级别进行排序。标题和小标题可能比段落更为重要。图像可能被识别为表格,并作为表格摘要被提取、向量化,并在后续的RAG系统中使用。正是这些步骤,使得非结构化数据更加易于访问,支持自动化报告。
在寻找你组织中适合进行自动化报告的领域时,可以从及时信息最为关键的领域开始。例如,在市场分析中,RAG可以迅速总结新闻文章、财务报告和竞争对手信息,为公司提供市场趋势和动态的精简视图。这种快速处理使得用户能够迅速应对市场变化,及时把握机会或减轻风险,从而帮助公司做出更快速的反应。
增强决策和战略规划
RAG的自动化报告和创新侦察功能显著提升了决策和战略规划过程。通过为高管和战略家提供简明的总结报告和行业趋势、技术进展及竞争态势的洞察,RAG使得决策更加科学和战略化。通过加入RAG式的能力,允许用户对生成这些报告的数据提出额外问题,这为用户带来的价值进一步提升。
RAG在这一领域的应用,依赖于其快速吸收和分析多样化数据集的能力。利用RAG的公司,能够采取更主动的策略制定方法。公司不再只是对行业变化作出反应,而是能够预见市场或技术的变化,并相应调整其战略,从而确保自己领先于竞争对手。
随着RAG驱动的自动化数据分析和报告的广泛应用,我们还看到另一个成长领域:在电子商务网站上动态生成产品描述和推荐,下一节将对此进行讨论。
电子商务支持
电子商务是一个能够从RAG应用中受益的关键领域。让我们回顾一下RAG可以应用的几个领域,从产品描述开始。
动态在线产品描述
RAG生成个性化产品描述的能力对于电子商务企业来说是一个颠覆性的改变。通过利用RAG的强大功能,公司可以创建高度针对性和具有说服力的产品描述,使其与个人客户产生共鸣,从而推动销售并促进品牌忠诚度。RAG可以根据用户的过去行为和偏好生成个性化的产品描述或突出特定功能,充分考虑到RAG分析大量客户数据的能力,包括浏览历史、过去购买记录,甚至社交媒体互动。
例如,假设Rylee是一个经常购买环保产品的用户。当Rylee浏览电商网站时,RAG可以突出产品的可持续性特征。这不仅能改善Rylee的用户体验,还能提高她购买该产品的可能性。再比如,假设Rylee以前购买过跑步鞋,并且经常浏览与马拉松训练相关的内容。当Rylee在一个由RAG支持的电商网站上浏览跑步鞋时,产品描述可以动态生成,强调鞋子的缓震性、稳定性和耐用性——这些都是长跑者非常看重的因素。描述中可能还会加入与Rylee兴趣相关的附加信息,例如这些跑步鞋已经通过马拉松选手的测试,或者设计上减少了常见跑步伤害的风险。
此外,RAG还可以用来分析客户评论和反馈,识别产品中最常提到的优缺点。这些信息可以被整合到产品描述中,向潜在买家提供更为全面、平衡的产品概述。通过解决常见问题或突出备受赞誉的特点,RAG生成的描述可以帮助客户做出更明智的购买决策,减少退货或负面评论的可能性。
RAG还可以用于生成多语言的产品描述,使企业更容易拓展国际市场。通过在多样化的语言数据上训练RAG,企业可以确保其产品描述具有文化适应性,并能在不同地区的客户中产生共鸣。
产品描述是电子商务中从RAG中受益的一个领域。接下来,我们还将讨论推荐引擎如何从中受益。
电子商务网站的产品推荐
推荐引擎是AI在商业世界中的一个重要应用。生成性AI和RAG有潜力使这些推荐引擎更加高效。使用RAG进行产品推荐的一个关键优势是其能够分析大量的客户数据,包括浏览历史、过去购买记录、搜索查询,甚至社交媒体互动。通过了解客户的独特兴趣、风格偏好和购物习惯,RAG能够生成不仅相关且高度吸引每个个体的产品推荐。RAG能够比以往任何方法更深入地识别模式和偏好,最终推荐用户最可能感兴趣的产品。RAG让我们能够超越传统推荐引擎,整合对个人用户偏好的更深层次理解,从而带来更加精准和个性化的推荐。
例如,假设Aubri是我们的VIP客户,她经常购买户外装备,最近也在我们的电商网站上浏览登山靴。RAG可以分析Aubri的数据,推荐最符合她偏好和过去购买记录的登山靴,同时推荐一些互补产品,比如登山袜、背包和登山杖。通过展示与Aubri兴趣对接的精选产品,RAG可以增加她多项商品购买的可能性,并增强整体购物体验。
此外,RAG还可以通过考虑除客户购买历史之外的其他因素,将产品推荐提升到一个新高度。例如,RAG可以分析客户的产品评论和评分,获取他们对之前购买商品的满意度。这些信息可以被用来优化未来的推荐,确保客户获得的产品不仅符合他们的兴趣,还满足他们的质量预期。
RAG在个性化产品推荐方面的应用不仅局限于电商网站。通过利用RAG的强大能力,企业可以在各种接触点(包括媒体、内容平台和数字营销活动)中提供高度定制和吸引人的体验。
随着电子商务的不断发展和演变,个性化和有吸引力的产品描述的重要性不言而喻。通过利用RAG的强大功能,企业不仅可以创造信息性强的描述,还可以使其具有说服力,最终推动销售并建立长期的客户关系。这一切都得益于RAG能够快速搜索大量数据的能力。接下来,我们将讨论如何利用这些搜索和数据访问能力,帮助企业更好地在内部使用知识。
利用知识库与RAG
RAG能够访问和利用知识库,无论它们是内部的还是外部的。让我们从内部知识库开始。
内部知识库的可搜索性和实用性
将先进的信息检索概念与最先进的LLM结合,RAG在内部搜索引擎领域带来了显著的进展。搜索与智能能力的结合正在通过使我们能够以更复杂的方式访问数据,从而更好地利用企业积累的大量数据,来改变企业运营。这项变革性技术不仅简化了信息检索,还提升了所呈现数据的质量,成为多个行业决策和运营效率的基石。
RAG显著增强了内部知识库的可搜索性和实用性,成为改善信息访问和管理的催化剂。内部知识库通常包含各种非结构化格式的文件(如PDF、Word、Google Docs、电子表格、幻灯片等),由于其庞大且提取难度较大,往往未得到充分利用。RAG通过多种先进方式提取和处理数据,可以解决这一挑战。例如,通过生成简洁的文档摘要,使员工能够快速掌握内容的要点,而不必逐字阅读整个文档。此外,RAG还能够通过分析这些资源的内容并利用LLM的生成能力,从埋藏在数百万页非结构化数据中的内容中提供连贯准确的答案。这种直接回答能力对于快速解决特定查询尤为有用,有潜力显著减少员工搜索信息的时间。
RAG在内部搜索引擎中的应用还促进了更有组织、更高效的知识管理方式。通过实现更好的信息分类和检索,员工可以更迅速地访问相关数据,从而使工作流程更加流畅。这对于那些时间至关重要、快速获取准确信息能够显著影响决策和项目结果的快节奏环境尤为重要。
虽然内部知识对大多数公司来说是一个关键的战略优势,但外部知识也在保持行业竞争力方面发挥着重要作用。接下来,让我们回顾一下RAG如何帮助公司更好地利用外部数据,供员工使用。
通过外部知识库扩展和增强私有数据
除了内部资源,RAG还将其优势扩展到一般的外部知识库,这对于需要实时了解法律、法规、行业标准、合规性、研发、医学领域、学术界以及专利相关行业至关重要。在这些领域,信息的数量不仅庞大,而且不断发布和变化,使得保持最新状态变得非常具有挑战性。RAG通过从这些广泛的数据库中检索和总结相关信息,简化了这一任务。例如,在法律和合规领域,RAG可以迅速筛选数千份文档,找到相关的案例法、法规和合规指南,显著减少法律专业人员和合规人员在研究上花费的时间。
类似地,在研发领域,RAG可以加速流程,通过为研究人员提供现有且最新的研究、专利和技术文档,帮助他们快速访问与自己工作相关的资料。这一能力对避免重复劳动和激发新创意至关重要,能够基于现有知识进行创新。在医疗领域,RAG能够快速调出相关的病例研究、研究论文和治疗指南,帮助医疗专业人员做出更明智的决策,进而改善患者护理。
使用像ChatGPT这样的LLM进行研究时的一个主要问题是,它们常常给出虚构但却令人信服的信息(被称为“幻觉”)。RAG是减少这些幻觉的一个有效方式,因为它将RAG管道中的LLM组件与真实数据相结合,从而减少了你在验证响应时需要花费的时间。你可以在RAG管道中添加多个LLM调用,这些调用不仅能够帮助解答你的研究问题,还能够在返回响应之前验证这些答案是否高度相关于原始问题。你还可以调整输出内容,提供所有支持文档和引用。
除了访问一般的知识库,RAG在外部数据利用方面还有其他选项。接下来,我们将讨论创新侦测的概念,以及组织如何利用RAG来推动创新,更快地发现行业趋势。
创新侦测与趋势分析
从各种优质来源扫描并总结信息,也可以在创新侦测和趋势分析中发挥重要作用。RAG帮助公司识别新兴趋势和潜在的创新领域,这些领域与公司的专业化方向高度契合。这在快速发展的行业中尤为重要,在这些行业中,保持领先地位对于维持竞争优势至关重要。
在技术行业,RAG可以分析专利、科技新闻和研究出版物,识别新兴技术和创新模式。这使得公司能够更有效地指导研发工作,专注于具有高增长潜力和市场颠覆性的领域。
在我目前所在的行业——制药行业,RAG正被用于加速识别新的研究发现和潜在的药物开发机会。通过持续分析医学期刊、临床试验报告和专利数据库的最新发布,RAG帮助加快了创新的步伐,并帮助制药公司更有效地分配研发预算和资源。
RAG的应用不仅限于创新侦测和趋势分析。另一个RAG取得显著进展的领域是内容个性化,特别是在媒体和内容平台中。在当今的数字化环境中,用户面临大量信息的轰炸,RAG提供了一个强大的解决方案,能够突破噪音,提供高度针对性和个性化的体验。
接下来,我们将讨论这种个性化的整体方法,如何促使客户忠诚度的提升、转化率的提高,最终实现更成功的商业运营。
利用RAG进行营销传播中的个性化推荐
RAG对于那些采用它来提升用户参与度和满意度的公司,尤其是在媒体、内容平台和数字营销活动中,代表了一个重要的进展。RAG可以根据客户的偏好,创建个性化的产品捆绑或集合,并将其广告化,纳入针对每个客户的数字营销活动中。通过分析客户数据并识别互补产品,RAG能够建议预组装的捆绑包,为客户提供便利和价值。
RAG还可以通过在营销传播中直接提供个性化的产品推荐,增强电子邮件营销活动的效果。通过分析客户的数据并根据其兴趣定制产品建议,电子商务网站可以创建高度针对性和引人注目的电子邮件内容,推动点击率(CTR)和转化率的提升。
随着营销的不断发展,企业寻求新的方式来吸引客户,RAG的潜力不仅仅局限于网站上的个性化产品推荐。RAG可以被用来在各种数字接触点上创建定制的体验,增强用户参与度并促进长期客户忠诚度。
接下来,让我们探讨RAG的能力如何应用于企业的另一个关键领域:员工培训和教育。
培训与教育
RAG可以被教育组织(如大学和中学)使用,也可以被企业内部培训项目采用,以确保员工跟上大量不断变化的概念,帮助他们了解所需的知识。RAG可以根据学习者的具体需求、知识水平和职能生成或定制学习材料。
RAG在企业环境中显现出了显著的潜力,可以显著提高学习和发展的效果。对于企业而言,保持员工的行业知识和技能更新往往是一个挑战,尤其是在今天许多行业变化迅速的背景下。RAG通过提供个性化的学习体验来解决这个问题,能够根据每个员工的个体需求、学习风格和进度进行调整,确保学习内容适应员工的节奏。
RAG可以分析员工的角色、经验水平和学习历史,策划一个定制化的学习路径,聚焦于与其特定职位最相关和最重要的技能。这种个性化的方法确保员工接受的培训直接促进他们的职业成长,并与公司的目标保持一致。
此外,RAG还可以生成互动学习材料,如测验、案例研究和模拟,针对每个员工的学习风格和进度量身定制。这种适应性学习方法保持了员工的参与感和动力,因为他们获得的内容在适当的难度水平上进行挑战,并且能够得到及时的反馈。
RAG快速总结并呈现来自广泛知识库的相关信息的能力,也使其成为工作中的宝贵学习工具和绩效支持工具。员工可以利用RAG系统迅速访问他们解决问题、做出决策和高效完成任务所需的信息。这种即时学习(JIT)方法减少了冗长、正式的培训课程的需求,赋予员工掌控自己学习和发展的权力。
除了个性化学习,RAG还促进了员工之间更有效的协作和知识分享。通过分析每个员工的知识和技能,RAG可以识别公司内的主题专家(SMEs),并促进员工之间的互学。这种内部知识流动有助于推动持续学习的文化,帮助组织保留并利用其集体的专业知识。
正如我们所见,RAG具有巨大的潜力,能够转变公司运营的多个方面,从个性化学习和员工发展,到客户参与和流程优化。然而,成功实施RAG需要一种战略方法,使其与公司的目标和优先事项保持一致。
许多RAG应用中,一个关键的方面是生成响应时要包括相关数据和来源。例如,当使用RAG抓取法律文档或科学研究论文时,必须引用来源,以确保信息的可信度和支持。接下来,让我们探索如何扩展第二章中的代码示例,以实现这一功能。
代码实验 3.1 – 向 RAG 添加数据来源
在前面提到的许多应用中,都涉及到在响应中添加更多数据。例如,如果你有一个 RAG 管道来抓取法律文档或科学研究论文,那么在“通过一般外部知识库扩展和增强私人数据”或“创新侦测与趋势分析”部分的工作中,你可能需要引用你的响应来源。
我们将继续使用第二章的代码,并添加一个重要的步骤,即在 RAG 响应中返回检索到的文档。
从第二章的代码开始,我们需要在这个代码中引入这些新元素。我将逐步讲解并解释发生了什么:
from langchain_core.runnables import RunnableParallel
这是一个新的导入:RunnableParallel
对象来自 LangChain 的 runnables
。这个概念引入了并行运行检索器和问题的功能。通过在问题处理的同时允许检索器提取上下文,性能可以得到提升:
rag_chain_from_docs = (
RunnablePassthrough.assign(context=(
lambda x: format_docs(x["context"])))
| prompt
| llm
| StrOutputParser()
)
rag_chain_with_source = RunnableParallel(
{"context": retriever,
"question": RunnablePassthrough()}
).assign(answer=rag_chain_from_docs)
与我们原来的 rag_chain
对象进行比较:
rag_chain = (
{"context": retriever | format_docs,
"question": RunnablePassthrough()}
| prompt
| llm
| StrOutputParser()
)
在原始代码中,rag_chain
是通过一个字典构建的,这个字典将 retriever
和 format_docs
函数组合为“上下文”部分,将 RunnablePassthrough()
用于“问题”部分。这个字典然后通过管道(|
)传递到 prompt
、llm
和 StrOutputParser()
。
在这个新版本中,名为 rag_chain_from_docs
,rag_chain
的构建被拆分为两个部分:
rag_chain_from_docs
链使用RunnablePassthrough.assign()
来格式化从上下文检索到的文档,然后将格式化后的上下文通过prompt
、llm
和StrOutputParser()
传递。rag_chain_with_source
链使用RunnableParallel()
来并行运行检索器和RunnablePassthrough()
,分别用于“上下文”和“问题”部分。结果通过rag_chain_from_docs
分配给“答案”。
这两种方法的主要功能区别在于,新的方法将上下文的检索与检索到的文档的格式化和处理分开。这为在将上下文传递给 prompt
、LLM 和输出解析器之前处理检索到的上下文提供了更多的灵活性。
最后,我们需要将用户查询传递给链的名称更改为新的链名称 rag_chain_with_source
。如我们之前所做,我们调用 invoke
方法,rag_chain_with_source.invoke()
,并将问题传递给它,这将触发检索器和问题的并行执行,接着使用 rag_chain_from_docs
对检索到的上下文进行格式化和处理,以生成最终的答案:
rag_chain_with_source.invoke(
"What are the Advantages of using RAG?")
输出看起来如下(为了适应书中的篇幅,我缩短了一些文本,但在运行代码时你应该能看到完整的输出):
{'context': [Document(page_content='Can you imagine what you could do with all of the benefits mentioned above…', metadata={'source': 'https://kbourne.github.io/chapter1.html'}),
Document(page_content='Maintaining this integration over time, especially as data sources evolve or expand…', metadata={'source': 'https://kbourne.github.io/chapter1.html'}),…}
这看起来比我们之前的最终输出更像代码,但它包含了你返回给用户的所有信息,指示你提供响应的来源。对于许多应用场景,材料的来源非常重要,有助于用户理解响应为何如此,进行事实核查,以及在他们有更多需要补充的内容时继续基于这些信息进行拓展。
请注意每个 page_content
实例后列出的 metadata source
,这是你提供的来源链接。在结果中如果有多个文档,这些来源可能会在检索步骤中返回的每个单独文档中有所不同,但在这里我们只用了一个文档。
总结
RAG 的实际应用广泛且具有深远影响,从增强聊天机器人和自动化报告,到个性化客户体验和彻底改变各个行业的支持服务。RAG 可以帮助你弥合结构化数据与可操作洞察之间的差距,提升决策和战略规划的能力。RAG 可以帮助你生成动态且个性化的产品描述和推荐,推动销售并促进品牌忠诚度。
RAG 能增强内部知识库的可搜索性和实用性,并通过外部通用知识扩展私有数据,这对于法律、合规、研发和医疗等行业至关重要。它可以帮助你进行创新侦测和趋势分析,并通过内容个性化为客户提供高度针对性和引人入胜的体验。RAG 还可以为公司提供个性化的学习体验,适应每个员工的需求和学习风格。
本章结束时,很明显,RAG 有潜力转变公司业务运营的各个方面,我们期待与你一起开始这段冒险!
在下一章中,我们将深入探讨构成 RAG 系统的技术组件,探索索引、检索和生成的复杂性,以及这些阶段如何结合起来提供我们在本章中讨论的强大功能。通过拆解每个组件,你将更详细地理解其内部工作原理及其如何协同作用,以产生更优的生成输出。