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

本文涉及的产品
阿里云百炼推荐规格 ADB PostgreSQL,4核16GB 100GB 1个月
NLP自然语言处理_高级版,每接口累计50万次
NLP 自学习平台,3个模型定制额度 1个月
简介: 本文介绍了如何使用LangChain库和FAISS工具在本地部署一个基于chatGPT的实时文档和表格数据助手,详细阐述了项目原理、搭建步骤、环境配置、代码修改和运行流程,以及如何在自己的数据上构建和使用chatGPT。

【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
相关实践学习
AnalyticDB PostgreSQL 企业智能数据中台:一站式管理数据服务资产
企业在数据仓库之上可构建丰富的数据服务用以支持数据应用及业务场景;ADB PG推出全新企业智能数据平台,用以帮助用户一站式的管理企业数据服务资产,包括创建, 管理,探索, 监控等; 助力企业在现有平台之上快速构建起数据服务资产体系
目录
相关文章
|
2月前
|
人工智能 缓存 监控
使用LangChain4j构建Java AI智能体:让大模型学会使用工具
AI智能体是大模型技术的重要演进方向,它使模型能够主动使用工具、与环境交互,以完成复杂任务。本文详细介绍如何在Java应用中,借助LangChain4j框架构建一个具备工具使用能力的AI智能体。我们将创建一个能够进行数学计算和实时信息查询的智能体,涵盖工具定义、智能体组装、记忆管理以及Spring Boot集成等关键步骤,并展示如何通过简单的对话界面与智能体交互。
934 1
|
2月前
|
人工智能 Java API
构建基于Java的AI智能体:使用LangChain4j与Spring AI实现RAG应用
当大模型需要处理私有、实时的数据时,检索增强生成(RAG)技术成为了核心解决方案。本文深入探讨如何在Java生态中构建具备RAG能力的AI智能体。我们将介绍新兴的Spring AI项目与成熟的LangChain4j框架,详细演示如何从零开始构建一个能够查询私有知识库的智能问答系统。内容涵盖文档加载与分块、向量数据库集成、语义检索以及与大模型的最终合成,并提供完整的代码实现,为Java开发者开启构建复杂AI智能体的大门。
1437 58
存储 人工智能 机器人
104 0
|
2月前
|
人工智能 安全 数据库
构建可扩展的 AI 应用:LangChain 与 MCP 服务的集成模式
本文以LangChain和文件系统服务器为例,详细介绍了MCP的配置、工具创建及调用流程,展现了其“即插即用”的模块化优势,为构建复杂AI应用提供了强大支持。
|
3月前
|
机器学习/深度学习 算法 大数据
构建数据中台,为什么“湖仓一体”成了大厂标配?
在大数据时代,数据湖与数据仓库各具优势,但单一架构难以应对复杂业务需求。湖仓一体通过融合数据湖的灵活性与数据仓的规范性,实现数据分层治理、统一调度,既能承载海量多源数据,又能支撑高效分析决策,成为企业构建数据中台、推动智能化转型的关键路径。
|
4月前
|
数据采集 存储 分布式计算
一文读懂数据中台架构,高效构建企业数据价值
在数字化时代,企业面临数据分散、难以统一管理的问题。数据中台架构通过整合、清洗和管理数据,打破信息孤岛,提升决策效率。本文详解其核心组成、搭建步骤及常见挑战,助力企业高效用数。
1727 24
|
6月前
|
SQL 存储 OLAP
数据外置提速革命:轻量级开源SPL如何用文件存储实现MPP级性能?
传统交易型数据库在分析计算中常遇性能瓶颈,将数据迁至OLAP数据仓库虽可缓解,但成本高、架构复杂。SPL通过轻量级列存文件存储历史数据,提供强大计算能力,大幅简化架构并提升性能。它优化了列式存储、数据压缩与多线程并行处理,在常规及复杂计算场景中均表现优异,甚至单机性能超越集群。实际案例中,SPL在250亿行数据的时空碰撞问题上,仅用6分钟完成ClickHouse集群30分钟的任务。
数据外置提速革命:轻量级开源SPL如何用文件存储实现MPP级性能?
|
6月前
|
SQL 机器学习/深度学习 监控
构建数据中枢:数据中台指标体系如何赋能企业运营
杭州奥零数据科技有限公司成立于2023年,专注于数据中台业务,维护开源项目AllData并提供商业版解决方案。AllData提供数据集成、存储、开发、治理及BI展示等一站式服务,支持AI大模型应用,助力企业高效利用数据价值。
|
6月前
|
存储 机器学习/深度学习 人工智能
使用 LangChain + Higress + Elasticsearch 构建 RAG 应用
本文介绍了如何利用LangChain、Higress和Elasticsearch快速构建RAG(检索增强生成)应用,实现企业知识的智能检索与问答。首先通过LangChain解析Markdown文档并写入Elasticsearch,接着部署Higress AI网关并配置ai-search插件以整合私有知识库与在线搜索功能。最后,通过实际案例展示了RAG查询流程及结果更新机制,确保内容准确性和时效性。文章还提供了相关参考资料以便进一步学习。
715 38

热门文章

最新文章