搭建RAG智能问答机器人

一、项目概述

       大语言模型 (LLM) 驱动智能体的检索能力,在通过使用工具、查看文件和规划信息交互的过程中表现尤为卓越,通过与各种工具和文档交互,形成有效对话。检索增强生成(RAG)作为一种提升性能的技术,其受欢迎程度呈爆炸式增长。从高度准确问答AI聊天机器人到代码生成副驾驶,各行各业的组织都在探索 RAG如何帮助优化流程。

       NVIDIA搭建开源LLM NVIDIA AI基础模型,可直访问应用程序,并使用LangChain连接器简化开发。本项目是参加NVIDIA举办的AI-AGENT夏季训练营后,搭建RAG智能问答机器人,对电影文本信息进行提取,并对文本与图表进行多模态转换,和通过Gradio搭建前端界面进行用户交互。

二、技术方案与实施步骤

1、模型选择:

      RAG应用程序含四个组件:自定义数据加载器、文本嵌入模型、向量数据库、大语言模型。


2、数据的构建(必写): 说明数据构建过程、向量化处理方法及其优势。

(1)生成 API 密钥后,NGC 构建聊天用户界面并添加自定义数据连接器。

(2)使用 API 调用访问文本嵌入模型。

(3)将向量数据库部署到索引嵌入中,创建或加载向量存储,并使用 FAISS 库存储数据块。

(4)使用开源框架 Streamlit 将 RAG 工作流连接在一起。

3、环境搭建

     先安装Miniconda,然后按照下列步骤配置环境,配置好在终端输入jupyter-lab进入实验环境。


三、项目成果与展示

1、场景一:让RAG机器人学习2024年8月新上映的“电影《逆行人生》的导演(徐峥)”文本信息

(1)申请llama-3.1-405b-instruct大模型的API Key(vapi开头的所有内容,点击复制)。

(2)将自己的API Key填入jupyter-lab,输出奇怪的结果“张一白”,与真实结果“徐峥”不符。

        (分析原因猜测:openAI大模型还没能及时学习到2024年8月新上映的中文电影信息)

(3)使用 phi-3-small-128k-instruct初始化SLM(结果分析:结果不正确,而且胡说八道)。

(4)在子文件夹zh_data里(新增关于电影《逆行人生》的相关信息的txt文件)

(5)进行删除空行等预处理。

(6)将文档处理到faiss vectorstore,并将其保存到磁盘。

(7)基于phi-3-small-128k-instruct模型进行RAG检索,提出问题(修改invoke内容)

        (结果分析:得到正确答案,说明RAG已经学习到奥本海默电影信息)

(8)通过Gradio搭建前端界面,给这个智能体添加一个UI界面,形成智能问答交互页面

     (自定义函数,将上述invoke的文本输入和result的文本输出,传递给Gradio接口)

———————————————————————————————————————————

———————————————————————————————————————————

2、场景二:让RAG机器人学习“电影奥本海默”百度百科在线网址的Oppenheimer文本信息

(1)加载库与API Key(复制粘贴vapi)

(2)定义html_document_loader网络文档数据加载器:进行文档解析返回文档内容

(3)定义index_docs函数作为构建向量储存和文档检索工具

(4)定义数据向量化工具(修改urls里的内容为“Oppenheimer电影的百度词条”的网址)

(5)使用定义好的相关函数和工具执行文档嵌入Embeddings的生成

(6)未使用RAG的llm输出输出效果(修改llm.invoke里的内容为“输出Oppenheimer的信息”)

        结果只有Oppenheimer的个人信息,欠缺Oppenheimer的电影信息。

(7)采用langchain结合NIM实现LLM-RAG检索(修改query内容为“输出Oppenheimer信息”)

        结果里既有奥本海默的个人信息,也有电影信息,说明RAG已经学习到奥本海默电影信息。

(8)通过Gradio搭建前端界面,给这个智能体添加一个UI界面,形成智能问答交互页面

     (自定义函数,将上述query的文本输入和result的文本输出,传递给Gradio接口)

———————————————————————————————————————————

———————————————————————————————————————————

3、场景三:让RAG机器人学习“电影票房”的柱状图信息,转化成统计表和饼图信息

 (1)导入工具库

(2)利用Microsoft Phi 3 vision来解析图片数据

        结果中从统计图里提取电影及其票房信息

(3)定义多模态数据分析Agent(功能为从统计图里提取电影及票房信息,转化成统计表形式)

(4)执行上面构建好的智能体(实现从统计图里提取电影及其票房信息,并转化成统计表形式)

(5)通过大模型用python语言绘制图表(将统计表里的票房信息以饼图形式展示)

(6)通过Gradio搭建前端界面,给这个智能体添加一个UI界面,形成智能问答交互页面

     (功能为输入柱状图形式的图片,传递给Gradio接口,转换成饼图形式)

———————————————————————————————————————————

———————————————————————————————————————————

四、问题与解决方案

        在场景二让RAG机器人学习在线文本信息时,出现无法学习中文信息的问题。


       本想在线学习电影逆行人生的信息,无法正确显示,改为学习外语电影Oppenheimer的信息。


五、项目总结与展望

       本项目通过搭建RAG机器人进行文本与图表多模态信息处理,并通过Gradio搭建UI交互界面。

       未来研究在NVIDIA NIM上使用 Phi-3构建语音机器人,并通过处理pdf文件进行多模态分析。


六、附件与参考资料

        2024 NVIDIA开发者社区夏令营环境配置指南(Win & Mac)

        NVIDIA举办的AI-AGENT夏季训练营的资料、讲解、答疑。

        最后十分感谢NVIDIA各位老师的热心帮助和用心分享。

  • 25
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值