【LangChain】如何本地部署基于chatGPT的实时文档和表格数据的助手,在自己的数据上构建chatGPT?

news2024/10/6 1:36:35

【LangChain】如何本地部署基于chatGPT的实时文档和表格数据的助手,在自己的数据上构建chatGPT

1 相关技术

(1)LangChain 是一个用于自然语言处理的 Python 库,它的目标是尝试简化自然语言处理任务,提高处理效率和准确性。

该库提供了一组易于使用的函数和工具,可以帮助你实现各种自然语言处理任务,例如语句分割、分词、词性标注、命名实体识别、情感分析等。与其它自然语言处理库相比,LangChain 更注重处理速度和准确性,并且支持多种自然语言的处理(包括中文、英文、日文等)。

(2)FAISS 是LangChain工具箱中的一个用于高效相似度搜索的 Python 库,它基于压缩和向量量化的算法实现了非常快速的相似度搜索。它特别适用于处理高维向量集合,例如图像、音频和自然语言处理中的向量表示等。

2 项目原理

首先读取pdf或者csv文件,使用LangChain的方法嵌入和矢量存储起来,称为Vectorstore。当用户提问新问题时,将当前新问题和之前的对话内容(上下文内容)整合成一个新的问题(Stanalone Question),利用chatGPT中查找答案得到文本1,同时使用相似度匹配方法,从Vectorstore中获取相似的文本内容,得到文本2。最终是将文本1和文本2,再用chatGPT总结,得出最终的答案。

在这里插入图片描述

3 项目搭建

(1)安装环境

conda create -n chat python=3.9

(2)安装包

pip install streamlit streamlit_chat langchain openai faiss-cpu tiktoken -i https://pypi.tuna.tsinghua.edu.cn/simple

(3)下载源码

git clone https://github.com/yvann-hub/Robby-chatbot.git

(4)安装依赖,如果报错,某个包有依赖问题,请先卸载这个包,重新安装一遍就可以。

cd Robby-chatbot

pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

(5)配置OPENAI_API_KEY全局变量(非必要,可以在界面输入,配置后就不需要再界面输入)

Mac os或者LInux环境下,在~./bash_profile配置文件中配置

vim ~/.bash_profile

输入并保存退出,注意,“OPENAI_API_KEY=”中的 字母和等号之间是没有空格的。

export OPENAI_API_KEY= “你的key,从OenAI官网获取”

刷新配置生效

source ~./bash_profile

为了让以上变量永久生效,在~/.zshrc中配置以下内容

vim ~/.zshrc

在最后一行填入:source ~./bash_profile,再刷新文件

source ~/.zshrc

(6)修改源码中的部分代码

打开src/modules/utils.py中的

if os.path.exists(“.env”) and os.environ.get(“OPENAI_API_KEY”) is not None:

改为

if os.environ.get(“OPENAI_API_KEY”) is not None:

(6)运行项目

streamlit run src/robby_chatbot.py

在这里插入图片描述

此时加载自己的数据文件,就可以实现对当前数据集的数据进行提问。

目前的体验,相似度算法、token限制等问题,相似度匹配返回的文本再丢给GPT时,这过程中,是一个传统的相似度匹配算法过程,能力有限,并不能有效的去替代真正的用数据训练过的GPT。当提出的问题,在向量库中没有找到相似的内容时,最终的答案是无(有就是有,没有就是没有),不会像原始GPT一样,无论如何都会给出一个答案(甚至编造)。

4 参考资料

  1. https://betterprogramming.pub/build-a-chatbot-on-your-csv-data-with-langchain-and-openai-ed121f85f0cd

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/503126.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

渲染对电脑伤害大吗_如何减少渲染伤机?

虽然说摄影穷三代,但想要自己的本地配置跟上自己的创作速度,高昂的硬件配置支出也可以让自己穷一段时间。CG制作过程中,渲染是必不可少的一步,而且这一步也是很吃“机器”的,那很多人也会担心,如果经常用自…

如何构建产品帮助中心?

据研究表明超过50%的互联网用户,更愿意使用网站中的自助服务支持去解决产品使用中的问题。那么这个时候在线帮助中心(即在线帮助页面),就满足了用户这个需求。 在线帮助中心是一个丰富的知识库,可以指导企业的潜在客户…

asp.net+sqlserver漫画绘本借阅管理系统

摘 要1 第1章 系统概述5 1.1 研究背景5 1.2 研究的意义5 1.3 主要研究内容5 第2章 系统开发环境7 2.1 ASP.NET概述7 2.2 动态网站技术介绍8 2.3 数据库技术8 第3章 需求分析9 3.1 需求分析9 3.1.1 功能需求9 3.2 可行性分析9 3.2.1 可行性分析9 3.2.2 技术可行性9 3.2.3 运行可…

OpenCV4 学习指导1 —— Mat:最基本的图像容器

Mat: CV基本的数据结构 1、认识数字图像2、CV的发展历程3、Mat的基本结构3.1、Mat—浅拷贝3.2、Mat—深拷贝 4、颜色的表示方法5、创建Mat对象方法集合5.1、Mat类的常用成员函数5.2、Mat类的成员函数举例 6、Mat的输出样式7、Point 数据存储结构8、参考资源 1、认识数字图像 我…

Yolov8改进---注意力机制:Polarized Self-Attention,效果秒杀CBAM、SE

1. Polarized Self-Attention 论文:https://export.arxiv.org/pdf/2107.00782.pdf Polarized self-attention是一种改进的自注意力机制,旨在提高自注意力模型的效率和准确性。传统的自注意力机制通常需要计算所有位置对所有位置的注意力,这会导致计算复杂度的增加和模型的训…

君子签:助力高校毕业、就业协议电子签,打通就业最后一公里

据介绍,2023届全国普通高校毕业生规模预计达1158万人,同比增加82万人。毕业季即将来临,全国各大高校毕业、就业材料签署压力大,盖章需求激增,如何快捷、高效地处理各类毕业、就业材料签署问题呢? 在教育部…

间隔损失函数

度量损失: Contrastive Loss 核心含义:同类的样本要更近,不同类的样本要更远 正样本不用管,把负样本分开就行,最小化损失函数就是最大化决策边界和负样本的距离 Triplet Loss Triplet Loss是一种用于训练深度学习中…

7-2 哈利·波特的考试

哈利波特要考试了,他需要你的帮助。这门课学的是用魔咒将一种动物变成另一种动物的本事。例如将猫变成老鼠的魔咒是haha,将老鼠变成鱼的魔咒是hehe等等。反方向变化的魔咒就是简单地将原来的魔咒倒过来念,例如ahah可以将老鼠变成猫。另外&…

git的学习2

文章目录 一、Git 创建仓库二、Git 基本操作1总结 一、Git 创建仓库 git init Git 使用 git init 命令来初始化一个 Git 仓库,Git 的很多命令都需要在 Git 的仓库中运行,所以 git init 是使用 Git 的第一个命令。 在执行完成 git init 命令后&#xf…

Opencascad开发(C#)-建模-反向片体(SheetBody)的法向矢量

文章目录 1、前言2、在UG NX中构建一个片体3、在UG NX中查看片体的法向矢量4、采用UFun函数来实现法向反向5、代码实现6、测试效果1、前言 在UG NX中,一张曲面获取其所属的片体(SheetBody)对象,其在构建时有默认的法向矢量,有时处于功能的需求,比如加工时工件的材料去除方…

根据IP获取地理位置信息 — Golang

根据IP获取地理位置信息 — Golang 1 介绍1.1 ip2region1.2 geoip2-golang1.3 总结 2 使用2.1 ip2region2.2 geoip2-golang 1 介绍 1 ip2region 2 geoip2-golang 1.1 ip2region ip2region 是一个离线IP地址定位库和IP定位数据管理框架,10微秒级别的查询效率&…

ipad密码忘了怎么解锁?教你40秒轻松移除!

无论是手机还是平板,相信大部分都会去给它们设上密码,来保证自己的隐私安全。同理,无论是苹果设备还是安卓设备,一旦设了锁屏密码,就会遇到密码忘记的情况,多次输入错误密码还会导致设备被停用。 近日&…

上海亚商投顾:沪指放量上涨创年内新高 中字头个股掀涨停潮

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 市场情绪 沪指今日高开高走,盘中一度涨近2%,站上3400点关口,深成指、创业板指走势较弱。…

openssl一套证书-配置文件和证书签发

dn-param 和 extend 配置文件 CA的dn-param 和 extend CA的dn-param 和 extend CI-csr.cnf 的内容如下: #openssl x509 extfile params extensions extend # This prevent the user to be prompted for values prompt nodistinguished_name dn-param [dn-param…

【C++】-对于自定义类型的输入输出运算符重载

&#x1f496;作者&#xff1a;小树苗渴望变成参天大树 ❤️‍&#x1fa79;作者宣言&#xff1a;认真写好每一篇博客 &#x1f4a8;作者gitee:gitee &#x1f49e;作者专栏&#xff1a;C语言,数据结构初阶,Linux,C 文章目录 前言一、案例引入二、<<的重载三、>>的…

智慧城市3d可视化管理大屏系统有效提高服务质量和效率

随着新一代信息技术飞速融入传统产业&#xff0c;农业数字化、网络化、智能化逐步成为农业现代化发展的基石。实现农业生产环境的智能感知、智能预警、智能决策、智能分析等功能&#xff0c;为农业生产提供精准化保障、高质量运营水平、智能化决策支撑。 3D可视化智慧管理 1&am…

在docker上安装运行Python文件

目录 一、在docker中安装python 1.1 输入镜像拉取命令 1.2 查看镜像 1.3 运行 1.4 查看是否成功 1.5 查看python版本 二、运行py文件 2.1准备运行所需文件 2.2 准备文件夹 2.3 大概是这幅模样 2.4 打包上传到服务器上 2.5 构建镜像示例 2.6 查看镜像 2.7 优化镜像的…

微星GT77HX-13VI2023原厂Windows11重建F3一键恢复

MSI微星系列原厂预装正版系统恢复镜像有原机所有驱动&#xff0c;主题&#xff0c;Logo 安装后自动重建f3 msirestore功能 系统带所有驱动以及msi center小红龙 恢复至出厂状态 文件地址https://pan.baidu.com/s/1snKOsH3OMl3GZLqeAf-GLA?pwd8888 其他型号: 微星 GE76-12代…

lua | 数组与迭代器的使用

目录 一、数组 一维数组 多维数组 二、迭代器 泛型for迭代器 无状态的迭代器 多状态的迭代器 本文章为笔者学习分享 学习网站&#xff1a;Lua 基本语法 | 菜鸟教程 一、数组 数组&#xff1a;相同数据类型的元素按一定顺序排列的集合&#xff0c;可以是一维数组和多维数…

就业Android倒数第二,IOS稳居倒数第一

在如今的互联网大环境下&#xff0c;相信有很多人都在为找工作而感到焦虑&#xff0c;每一投上十几份简历&#xff0c;收到的面试通知也就那么一两家&#xff0c;而且收到面试通知的都是一些小企业&#xff0c;工资低就不是很想去&#xff0c;工资高的岗位看了一下要求感觉自己…