LangChain介绍及相关代码详解 | 豆包MarsCode AI刷题

158 阅读3分钟

何谓 LangChain

定义

LangChain是一个基于大语言模型(LLMs)用于构建端到端语言模型应用的框架,它可以让开发者使用语言模型来实现各种复杂的任务,例如文本到图像的生成、文档问答、聊天机器人等。LangChain提供了一系列工具、套件和接口,可以简化创建由LLMs和聊天模型提供支持的应用程序的过程

什么是大语言模型

大语言模型是一种人工智能模型,通常使用深度学习技术,比如神经网络,来理解和生成人类语言。这些模型的“大”在于它们的参数数量非常多,可以达到数十亿甚至更多,这使得它们能够理解和生成高度复杂的语言模式

LangChain 是一个全方位的、基于大语言模型这种预测能力的应用开发工具

6大组件

LangChain中的具体组件包括:

  • 模型(Models) ,包含各大语言模型的LangChain接口和调用细节,以及输出解析机制。
  • 提示模板(Prompts) ,使提示工程流线化,进一步激发大语言模型的潜力。
  • 数据检索(Indexes) ,构建并操作文档的方法,接受用户的查询并返回最相关的文档,轻松搭建本地知识库。
  • 记忆(Memory) ,通过短时记忆和长时记忆,在对话过程中存储和检索数据,让ChatBot记住你是谁。
  • 链(Chains) ,是LangChain中的核心机制,以特定方式封装各种功能,并通过一系列的组合,自动而灵活地完成常见用例。
  • 代理(Agents) ,是另一个LangChain中的核心机制,通过“代理”让大模型自主调用外部工具和内部工具,使强大的“智能化”自主Agent成为可能!

设计目标

不仅仅在于能通过API调用语言模型,更重要的是能够具备以下两个特性:

  1. 数据感知: 能够将语言模型与其他数据源连接起来,从而实现对更丰富、更多样化数据的理解和利用。
  2. 具有代理性: 能够让语言模型与其环境进行交互,使得模型能够对其环境有更深入的理解,并能够进行有效的响应。

因此,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一起分析其中代码相关细节(还挺好用)