分享好友 最新动态首页 最新动态分类 切换频道
LangChain+ChatGPT三分钟实现基于pdf等文档问答应用
2024-12-26 11:43

LangChain是一个用于开发由语言模型驱动的应用程序的框架。它不仅可以通过API调用语言模型,还可以连接语言模型到其他数据源(数据感知),并允许语言模型与其环境进行交互(具有代理性)。LangChain提供了模块化的抽象组件,用于与语言模型一起工作,并为所有这些抽象提供了实现集合。此外,LangChain还提供了特定用例的链(Chains),可以将这些组件以特定方式组装在一起,以最好地完成特定用例。

也许这么讲,你可能一脸懵逼,这到底是个啥玩意,不急,下面就代理领略一下LangChain的风采。

要安装LangChain,您可以使用以下命令:

或者

安装完成后,您可能需要集成一个或多个模型提供商、数据存储、API等。例如,如果您要使用OpenAI的API,您需要先安装它们的SDK:

然后,您需要在终端中设置环境变量:

或者,您可以在Jupyter笔记本(或Python脚本)中执行此操作:

但是,我更加建议你下载这个仓库:

玩了之后,你可以在这个仓库中找到 .env文件,然后再里面配置你的OPENAI_API_KEY,是一样的道理。

在vscode上可以使用交互式的方式来一行一行的执行Python代码,快捷键shift+enter ,非常方便,当执行

就代表环境变量已经加载好了。

写一首诗试试,看起来很轻松,和调用openAI的api没啥区别呀,没看到神奇的地方啊,别着急,继续往下看。

我们可以使用Prompt Templates来管理LLM的提示。例如,您可以定义一个prompt模板,然后使用.format方法对其进行格式化:

此外,我们还可以使用链(Chains)将多个组件组合在一起,创建一个单一或者连贯的应用程序。例如,创建一个简单的链,它将用户输入格式化为prompt,然后将其发送到LLM:

早学早致富,LangChain是几分钟搭建一个基

这样,一个取名器就完成了,这就是一个小应用,你可以把他封装为一个微服务,提供给其他模块调用。

在LangChain中,我们可以创建一个链,它接受用户输入,使用它格式化提示,然后将其发送到LLM。例如,可以使用LLMChain,它结合了PromptTemplate和LLM。PromptTemplate可用于通过获取用户输入并构造提示来管理LLM的提示。

找到感觉了吗,是不是有点AgentGpt的味道了,LangChain提供额很多tools,不仅仅可以从维基百科查找,还可以通过google搜索,必应,都可以,这意味着,ChatGPT不限于他训练的知识,你可能很好奇,这个是如何实现的,其是实现原理也很简单。

1、通过你的prompt来调用openAI,分解出执行你这个目标所需要的步骤。

2、openAI推理出那些目标需要调用哪个tool,例如,我们demo中的“中国有多少所大学”这个需要分配到维基百科这个tool,而拿到的数据进行计算就交给llm-math这个tool。

3、链式执行的结果输出。

如果你理解了这个例子,下面基于文档,视频的内容问答,基本上也是这个原理,注意看:

这里只给出一个基于YouTube视频的问答的demo,实际上基于文档的问答 原理类似:

1、YouTube流里面解析出文本字幕,内容,保存为doc

2、使用text_splitter进行分割,因为openAI模型有token数限制,所以要分割

3、使用OpenAIEmbeddings进行embeddings操作。

4、基于用户的输入进行一个db.similarity_search,找到最接近的4个小docs,应该在token范围内(3.5是4096)。

5、然后通过chain = LLMChain(llm=llm, prompt=prompt) 这个chain来调用,chain.run(question=query, docs=docs_page_content),这里PromptTemplate威力体现出来了,这样,我们就可以基于每个query调出最相似的内容,然后在一起交给openAI提问了。

这个可以说是前端开发的福音,但是有能力,建议还是Python版本的,工具链会齐全不少。

最新文章
AI 的发展,从细节开始逐步削弱打工人的技能
大模型诞生之后,强悍的能力让不少职位受到剧烈的冲击,甚至有人喊出“用AI代替人”的口号。2年多过去,虽然担心没有成为显示,但一个趋势是:打工人的一个个技能,正在被AI所代替。AI 工具刚出来的时候,大家都说各种职业要失业了,但这两
dell m6400 设置完bios后怎么保存设置?
1,设置完成以后按F10,再选择Y就可以保存并退出了。2,机内主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,它可从CMOS中读写系统设置的具体信息。3,其主要功能是为计算机提供最
332期[小花苞]排列五单挑一注参考
24331期回顾:开奖球号:7122724331期形态回顾:2024331期体彩排5奖球形态:大小形态为大小小小大,大小比重为2:3,012路比重: 0:3:2,奇偶形态为奇奇偶偶奇,质合形态为质质质质质,质合比为:5:0,和值为19枚,和尾为9点,跨度为6。最大号:7,最
iOS 加载本地视频文件
H:/0917/01_多线程_ViewController.mH:/0917/02_GET_VideosViewController.mH:/0917/02_GET_ViewController.mH:/0917/03_POST_VideosViewController.mH:/0917/03_POST_ViewController.mH:/0917/04_AFN_ViewController.mH:/0917/05_下载_Vie
2021年还能用的13款完全免费的Office插件整理(含功能详细介绍)
本篇文章含较多大图,知乎无法实现左右滑动查看,可以来获取更佳阅读体验 前不久在那期文章下面的留言区做了承诺,收集整理一下 Office 相关插件考虑到以上情况,一篇文章必然是无法全然介绍的这篇文章着实有点枯燥,但也着实都是干货,做
Axure8.0移动元件库分享下载 出自设计师之手必属精品
很多同学觉得用Axure做移动原型设计很费劲,其实是因为你没有一套元件库!这个组件库来自有着多年经验的中梦科技设计总监@姚岁岁 ,从设计师的角度设计组件库,相信能让你的原型发挥出不一样的光彩。本文转载自人人都是产品经理,原文地址
BeyondClick飞书点跃2024全球化新锐品牌数字营销峰会将于12月19日在深圳召开
【亿邦原创】全球化时代,出海成为越来越多中国企业的“必选项”。然而伴随市场竞争加剧,野蛮生长的周期已经过去,耐心经营成为全球化品牌回归商业本质的新常态。如何着眼全球发现新机会,如何塑造差异化保持持续增长,如何构建品牌多维竞
AI写作:免费一键生成,哪个软件好及使用方法
在数字时代的浪潮中,人工智能()已经渗透到了咱们生活的方方面面,其中写作软件的兴起,为众多写作爱好者、专业人士提供了极大的便利。想象一下,只需一键点击,就能迅速生成一篇内容丰富、结构严谨的文章,这无疑大大增强了写作效率。那
2024年香港正版资料免费直播|最新答案解释落实
  随着信息技术的迅速发展,香港作为一个国际大都市,在资料共享和信息传播方面也有了长足的进步。2024年香港正版资料免费直播|最新答案解释落实这一概念,充分展示了香港在数字化转型方面的积极努力。本文将从多角度探讨这一现象,以及
2024年度,美国《科学》杂志公布了十大科学突破,其中中国科学家发现的最古老多细胞真核生物成功入选。这一发现不仅推动了生物学领域的研究进展,也为了解多细胞生命的起源提供了新的视角。研究表明,这一古老的
此次发现的最古老多细胞真核生物,揭示了多细胞生物如何从单细胞生物演化而来的过程。这一发现的重要性在于,科学界此前一直认为多细胞生物的起源可能较晚,而这项研究证明,早在16亿年前,多细胞生物已经存在,并且在生物演化中扮演了重要
相关文章
推荐文章
发表评论
0评