LangChain学习之路
何谓 LangChain?释放大语言模型潜能的利器
作为一种专为开发基于语言模型的应用而设计的框架,通过LangChain,我们不仅可以通过API调用如 ChatGPT、GPT-4、Llama 2 等大型语言模型,还可以实现更高级的功能。
我们相信,真正有潜力且具有创新性的应用,不仅仅在于能通过API调用语言模型,更重要的是能够具备以下两个特性:
- 数据感知: 能够将语言模型与其他数据源连接起来,从而实现对更丰富、更多样化数据的理解和利用。
- 具有代理性: 能够让语言模型与其环境进行交互,使得模型能够对其环境有更深入的理解,并能够进行有效的响应。
现在你应该已经知道,LangChain是一个基于大语言模型(LLMs)用于构建端到端语言模型应用的框架,它可以让开发者使用语言模型来实现各种复杂的任务,例如文本到图像的生成、文档问答、聊天机器人等。LangChain提供了一系列工具、套件和接口,可以简化创建由LLMs和聊天模型提供支持的应用程序的过程。
打通 LangChain 从原理到应用的最后一公里
LangChain中的具体组件包括:
- 模型(Models),包含各大语言模型的LangChain接口和调用细节,以及输出解析机制。
- 提示模板(Prompts),使提示工程流线化,进一步激发大语言模型的潜力。
- 数据检索(Indexes),构建并操作文档的方法,接受用户的查询并返回最相关的文档,轻松搭建本地知识库。
- 记忆(Memory),通过短时记忆和长时记忆,在对话过程中存储和检索数据,让ChatBot记住你是谁。
- 链(Chains),是LangChain中的核心机制,以特定方式封装各种功能,并通过一系列的组合,自动而灵活地完成常见用例。
- 代理(Agents),是另一个LangChain中的核心机制,通过“代理”让大模型自主调用外部工具和内部工具,使强大的“智能化”自主Agent成为可能!你的 App 将产生自驱力!
这些组件是LangChain的基石,是赋予其智慧和灵魂的核心要素,它们相互协作,形成一个强大而灵活的系统。在基础篇中,我们将深入探索这些组件的工作原理和使用方法,并给出大量用例,夯实你对这些组件的理解和应用能力。
应用 1:情人节玫瑰宣传语
情人节到啦,你的花店需要推销红色玫瑰,那么咱们让大语言模型做的第一个应用,就是给咱们生成简短的宣传语。
这个需求极为简单,你直接去ChatGPT网站,或者用文心一言、星火认知等大模型,都做得到。不过,怎样通过LangChain来用程序的方式实现呢?也很容易。
第一步是安装三个包,通过 pip install langchain
来安装LangChain,
pip install langchain
然后在终端输入查看是否安装成功:
pip show langchain
通过 pip install openai
来安装OpenAI,
pip install openai
然后会输入Successfully installed colorama-0.4.6 distro-1.9.0 jiter-0.7.0 openai-1.53.0 tqdm-4.66.6就是成功了
还需要通过 pip install langchain-openai
以便在 LangChain 中使用 OpenAI 模型。
pip install langchain-openai
然后输出Successfully installed langchain-openai-0.2.5 regex-2024.9.11 tiktoken-0.8.0ss说明安装成功。
第二步,你还需要在OpenAI网站注册属于自己的OpenAI Key。(当然,LangChain也支持其他的开源大语言模型,但是推理效果没有GPT那么好)
完成了上面两个步骤,就可以写代码了。
import os
os.environ["OPENAI_API_KEY"] = ''
from langchain_openai import OpenAI
llm = OpenAI(model_name="gpt-3.5-turbo-instruct",max_tokens=200)
text = llm.invoke("请给我写一句情人节红玫瑰的中文宣传语")
print(text)
在掘金的运行结果如下:
(shims) ➜ LangChain-shizhanke COMMAND="cd /cloudide/workspace/LangChain-shizhanke/00_开篇词_奇 点时刻 && export PYTHONPATH="/cloudide/workspace/.cloudide/extensions/ms-python.debugpy-2024.0.0
-linux-x64/bundled/libs:$PYTHONPATH"; python3 /cloudide/workspace/LangChain-shizhanke/00_开篇词_奇点时刻/01_SimpleTextGeneration.py" marscode-dev
/cloudide/workspace/LangChain-shizhanke/00_开篇词_奇点时刻/01_SimpleTextGeneration.py:11: LangChainDeprecationWarning: The method `BaseChatModel.predict` was deprecated in langchain-core 0.1.7 and will be removed in 1.0. Use invoke instead.text = llm.predict("请给我写一句情人节红玫瑰的中文宣传语")
以下是一些关于情人节红玫瑰的中文宣传语,供你参考:1. 情人节,红玫瑰,传递你的浓情爱意。
2. 红玫瑰,情人节的浪漫象征,让爱永恒。
3. 情人节,送她红玫瑰,表达你的深深眷恋。
4. 红玫瑰,情人节的最佳礼物,诉说你的真情。
5. 情人节,用红玫瑰点燃爱的火焰,温暖彼此的心。
6. 红玫瑰,代表着热烈的爱情,在情人节绽放。
7. 情人节,红玫瑰相伴,让爱情更加甜蜜。
8. 送红玫瑰,过情人节,让爱成为永恒的主题。
9. 红玫瑰,情人节的必备元素,为爱情增添色彩。
10. 情人节,红玫瑰的芬芳,弥漫着爱的气息。
11. 用红玫瑰庆祝情人节,让爱情之花永远盛开。
12. 红玫瑰,情人节的浪漫使者,传递爱的信息。
13. 情人节,与红玫瑰一起,谱写爱的篇章。
14. 红玫瑰,见证情人节的美好时刻,留下难忘的回忆。
15. 情人节,红玫瑰的爱意,让你们的爱情更加坚定。
(shims) ➜ LangChain-shizhanke