何谓 LangChain
定义
LangChain是一个基于大语言模型(LLMs)用于构建端到端语言模型应用的框架,它可以让开发者使用语言模型来实现各种复杂的任务,例如文本到图像的生成、文档问答、聊天机器人等。LangChain提供了一系列工具、套件和接口,可以简化创建由LLMs和聊天模型提供支持的应用程序的过程
什么是大语言模型
大语言模型是一种人工智能模型,通常使用深度学习技术,比如神经网络,来理解和生成人类语言。这些模型的“大”在于它们的参数数量非常多,可以达到数十亿甚至更多,这使得它们能够理解和生成高度复杂的语言模式
LangChain 是一个全方位的、基于大语言模型这种预测能力的应用开发工具
6大组件
LangChain中的具体组件包括:
- 模型(Models) ,包含各大语言模型的LangChain接口和调用细节,以及输出解析机制。
- 提示模板(Prompts) ,使提示工程流线化,进一步激发大语言模型的潜力。
- 数据检索(Indexes) ,构建并操作文档的方法,接受用户的查询并返回最相关的文档,轻松搭建本地知识库。
- 记忆(Memory) ,通过短时记忆和长时记忆,在对话过程中存储和检索数据,让ChatBot记住你是谁。
- 链(Chains) ,是LangChain中的核心机制,以特定方式封装各种功能,并通过一系列的组合,自动而灵活地完成常见用例。
- 代理(Agents) ,是另一个LangChain中的核心机制,通过“代理”让大模型自主调用外部工具和内部工具,使强大的“智能化”自主Agent成为可能!
设计目标
不仅仅在于能通过API调用语言模型,更重要的是能够具备以下两个特性:
- 数据感知: 能够将语言模型与其他数据源连接起来,从而实现对更丰富、更多样化数据的理解和利用。
- 具有代理性: 能够让语言模型与其环境进行交互,使得模型能够对其环境有更深入的理解,并能够进行有效的响应。
因此,LangChain框架的设计目标,是使这种AI类型的应用成为可能,并帮助我们最大限度地释放大语言模型的潜能。
学习路线
LangChain快速入门代码详解
ps: 项目已经不需要配置什么了,可以直接run,也可以自己走一遍配置流程
以04_ChatLongChain.py作示例
import os
from langchain_openai import ChatOpenAI
from langchain.schema import HumanMessage, SystemMessage
导入所需的python模块,特别的: HumanMessage, SystemMessage,LangChain中用于构建消息的类
chat = ChatOpenAI(model=os.environ.get("LLM_MODELEND"), temperature=0.8, max_tokens=600)
创建一个ChatOpenAI实例,model是指具体的哪个模型,temperature是控制生成文本的随机性,temperature越高,生成文本的随机性更高,差不多就是生成的答案不一样,max_tokens限制生成文本的最大长度。
messages = [
SystemMessage(content="你是一个很棒的智能助手"),
HumanMessage(content="请给我的花店起个名"),
]
SystemMessage:系统信息,HumanMessage:用户消息,系统信息是给模型提供一下上下文的信息,用户消息是需要回答的具体问题
如果没有系统消息,只有用户消息,运行的一般会慢点,回答可能也不够具体比较宽泛(我们可能并不需要花店名字的介绍):
response = chat(messages)
print(response)
消息进入模型得到响应response并打印
总结
(1)学习了LangChain相关的知识。了解到了目前的大模型及相关调用方法
(2)使用豆包MarsCode一起分析其中代码相关细节(还挺好用)