LangChain教程:构建基于GPT的应用程序

ChatGPT和GPT-4的成功表明,通过使用强化学习训练的大型语言模型,可以构建可扩展且功能强大的自然语言处理应用程序。

然而,响应的有用性取决于提示信息,这导致用户探索了提示工程领域。此外,大多数现实世界的自然语言处理用例需要比单个ChatGPT会话更复杂的功能。这就是像LangChain这样的库可以发挥作用的地方!

LangChain是一个Python库,帮助您利用大型语言模型构建定制的自然语言处理应用程序。

在本指南中,我们将探讨LangChain是什么,以及您可以使用它构建什么。我们还将通过使用LangChain构建一个简单的问答应用程序来入门。

让我们开始吧!

LangChain是什么?

LangChain是由Harrison Chase创建的Python库,提供了开箱即用的支持,用于使用LLM(Large Language Models)构建自然语言处理应用程序。您可以连接到各种数据和计算源,并构建在特定领域数据源、私有存储库等上执行自然语言处理任务的应用程序。

截至撰写本文时(2023年3月),LangChain的GitHub存储库拥有超过14,000颗星星,并有来自世界各地的270多名贡献者。

使用LangChain可以构建的有趣应用程序包括(但不限于):

  • 聊天机器人

  • 针对特定领域的摘要和问答

  • 查询数据库以获取信息并进行处理的应用程序

  • 解决数学和推理谜题等特定任务的代理程序

LangChain模块概述

接下来,让我们看一下LangChain中的一些模块:

LLM(Large Language Models)

LLM是LangChain的基本组件。它实际上是围绕大型语言模型的封装,可以利用特定大型语言模型的功能和能力。

Chains(链式调用)

如前所述,LLM是LangChain中的基本单元。然而,正如LangChain的名字所暗示的那样,您可以根据特定任务来链式调用LLM。

例如,您可能需要从特定URL获取数据,对返回的文本进行

摘要,并使用生成的摘要回答问题。

链式调用也可以很简单。您可能需要读取用户输入,然后用它构建提示信息。然后可以用该提示信息生成响应。

提示(Prompts)

提示是任何自然语言处理应用程序的核心。即使在ChatGPT会话中,答案的帮助程度也取决于提示信息。为此,LangChain提供了可以用来格式化输入和执行其他实用功能的提示模板。

文档加载器和工具(Document Loaders and Utils)

LangChain的文档加载器和工具模块方便连接到数据源和计算源。

假设您有一个大型经济学文本语料库,希望构建一个自然语言处理应用程序。您的语料库可能包含各种文本文件、PDF文档、HTML网页、图像等。目前,文档加载器利用Python库Unstructured将这些原始数据源转换为可以进行处理的文本。

工具模块提供了Bash和Python解释器会话等功能。这对于需要直接与底层系统进行交互的应用程序很有用。或者在需要计算特定数学量或解决问题时,需要代码片段,而不是仅计算一次答案。

代理程序(Agents)

我们提到“链式调用”可以帮助将一系列LLM调用链接在一起。然而,在某些任务中,调用的顺序通常不确定。下一步很可能取决于用户输入和先前步骤的响应。

对于这种类型的应用程序,LangChain库提供了“代理程序”,可以根据沿途的输入采取动作,而不是固定的确定性顺序。

除上述之外,LangChain还提供与向量数据库的集成,并具有在LLM调用之间保持状态的内存功能等等。

使用LangChain构建问答应用程序

现在我们对LangChain有了一定的了解,让我们使用LangChain构建一个问答应用程序,以下是五个简单步骤:

第1步 - 设置开发环境

在编码之前,让我们设置开发环境。我假设您已经在工作环境中安装了Python。

您可以使用pip安装LangChain库:

pip install langchain


由于我们将使用OpenAI的语言模型,我们还需要安装OpenAI SDK:

pip install openai


第2步 - 将OPENAI_API_KEY设置为环境变量

接下来,登录您的OpenAI帐户。导航到帐户设置 > 查看API密钥。生成一个密钥并复制它。

在您的Python脚本中,使用os模块并利用环境变量字典os.environ。将"OPENAI_API_KEY"设置为您刚刚复制的密钥:

import osos.environ["OPENAI_API_KEY"] = "your-api-key-here"


第3步 - 使用LangChain进行简单的LLM调用

现在我们已经安装了所需的库,让我们看看如何使用LangChain进行简单的LLM调用。

为此,让我们导入OpenAI包装器。在本例中,我们将使用text-davinci-003模型:

from langchain.llms import OpenAIllm = OpenAI(model_name="text-davinci-003")


“text-davinci-003:具有更好的质量、更长的输出和一致的指令遵循性,可以执行任何语言任务,优于curie、babbage或ada模型。还支持在文本中插入补全。” - OpenAI文档

让我们定义一个问题字符串并生成一个回答:

question = "2023年学习的最佳编程语言是什么?"print(llm(question))


输出 >>很难预测2023年最受欢迎的编程语言是哪个。然而,当今最受欢迎的编程语言是JavaScript、Python、Java、C++和C#,所以它们很可能在可预见的未来保持受欢迎。此外,像Rust、Go和TypeScript等较新的语言正在赢得关注,可能在未来成为受欢迎的选择。


第4步 - 创建提示模板

让我们提出另一个问题,关于学习一门新编程语言的顶级资源,比如Golang:

question = "2023年学习Golang的前4个资源是什么?"print(llm(question))


输出 >>1. The Go Programming Language by Alan A. A. Donovan and Brian W. Kernighan2. Go in Action by William Kennedy, Brian Ketelsen and Erik St. Martin3. Learn Go Programming by John Hoover4. Introducing Go: Build Reliable, Scalable Programs by Caleb Doxsey


虽然这对初学者来说效果不错,

但是当我们试图整理一份学习多种编程语言和技术栈的资源清单时,它很快变得重复。

这就是提示模板发挥作用的地方。您可以创建一个模板,可以使用一个或多个输入变量进行格式化。

我们可以创建一个简单的模板来获取学习任何技术栈的前k个资源。在这里,我们使用"k"和"this"作为输入变量:

from langchain import PromptTemplatetemplate = "2023年学习{k}的前{k}个资源是什么?"prompt = PromptTemplate(template=template, input_variables=['k', 'this'])


第5步 - 运行我们的第一个LLM链

现在我们有了一个LLM和一个可以在多个LLM调用中重复使用的提示模板。

llm = OpenAI(model_name="text-davinci-003")prompt = PromptTemplate(template=template, input_variables=['k', 'this'])


让我们继续创建一个LLMChain:

from langchain import LLMChainchain = LLMChain(llm=llm, prompt=prompt)


现在,您可以将输入作为字典传入,并运行LLM链,如下所示:

input = {'k': 3, 'this': 'Rust'}print(chain.run(input))


输出 >>1. Rust By Example - Rust By Example是学习Rust的一份很好的资源,它提供了一系列交互式练习,教你如何使用该语言及其特性。2. Rust Book - 官方的Rust Book是该语言的全面指南,从基础知识到更高级的主题。3. Rustlings - Rustlings是快速学习Rust的好方法,它提供一系列小练习,帮助你逐步学习该语言。


总结

这就是全部内容!您现在知道如何使用LangChain构建一个简单的问答应用程序。希望您对LangChain的功能有了初步了解。作为下一步,尝试探索LangChain以构建更有趣的应用程序。祝编码愉快!

如何学习AI大模型?

作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

img

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img

四、AI大模型商业化落地方案

img

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

本文转自 https://blog.csdn.net/python122_/article/details/140316829?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522449063DE-A598-4B8E-A1D7-0576279CC2E9%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=449063DE-A598-4B8E-A1D7-0576279CC2E9&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_ecpm_v1~rank_v31_ecpm-15-140316829-null-null.142v100pc_search_result_base1&utm_term=%E7%9F%A5%E4%B8%96%E4%B8%8D%E6%98%AF%E8%8A%9D%E5%A3%AB&spm=1018.2226.3001.4187,如有侵权,请联系删除。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值