关于使用NViDIA-NIM搭建一个RAG强化对话机器人和让他学会看图说话这件事

项目名称:AI-AGENT夏季训练营 — RAG智能对话机器人
报告日期:2024年8月18日
项目负责人:VanPCA

项目概述

随着AI领域的发展和信息量的爆炸性增长,人们通过自己处理庞大信息所需要付出的成本越来越高,而通过人工智能检索和处理信息便显得尤为重要。
然而目前的很多大语言模型会产生“幻觉”,导致针对自己数据库出发对问题的回答会出现错误。RAG的出现很好地解决了这个问题,支持通过自己输入相应地数据指导,改进对应的答案。
此外通过添加一些功能模块,可以实现不局限于对话和简单回答问题,在多模块领域如处理图像、制作表格等领域都可以做到一定程度的快速解决。

技术方案与实施步骤

模型选择

  • 首先为了搭建对话机器人,我们需要前往NVIDIA-NIM(https://build.nvidia.com)上挑选适合自己的模型。

在这里插入图片描述

  • 选择一个模型,例如 llama-3.1-405b-instruct。

在这里插入图片描述

  • 进入之后会显示在不同语言和环境下的使用说明,我们使用的是python,因此选择python的指导。

在这里插入图片描述

  • 我们使用模型时会需要用到NVIDIA账号的API Key,所以在这里我们点击Get API
    Key来获取。当然你也可以在构建时再来获取,但是注意每次获取API Key都会变化,所以需要注意在代码中更改。

在这里插入图片描述
之后我们就可以在自己的项目中使用这个模型了。

数据构建

  1. 读入所需的数据。
  2. 进行数据的清洗工作,保证数据的有效性。
  3. 将数据处理到 faiss vectorstore 并将其保存到磁盘形成向量库。

功能整合

在对话和检索的基础上,通过构建多模态的AI-agent实现对图片和表格的自动操作和按要求修改。通过使用Microsoft Phi 3 vision来实现解析图片数据。具体来说,我们会需要一些辅助函数来对对数据进行一些预处理,调整成模型可以接受的形式之后再进行一系列指导操作。

实施步骤

环境搭建

由于使用的是python,所以自然需要安装python的环境。

conda create --name ai_agent python=3.8
conda activate ai_agent
pip install langchain-nvidia-ai-endpoints  jupyterlab langchain_core langchain matplotlib faiss-cpu==1.7.2 openai

对于多模态内容,我们还需要安装额外的几个工具包:

  • langchain_nvidia_ai_endpoint: 用来调用nvidia nim的计算资源
  • langchain: 用来构建对话链,将智能体的各个组件串联起来
  • base64: 因为本实验是构建多模态的智能体, 需要base64来对图像进行编解码

对于一些其他的库,则是看缺什么就补什么。

代码实现

获取文本数据集并进行处理
import os
from tqdm import tqdm
from pathlib import Path

# Here we read in the text data and prepare them into vectorstore
ps = os.listdir("./zh_data/")
data = []
sources = []
for p in ps:
    if p.endswith('.txt'):
        path2file="./zh_data/"+p
        with open(path2file,encoding="utf-8") as f:
            lines=f.readlines()
            for line in lines:
                if len(line)>=1:
                    data.append(line)
   
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值