萱仔大模型学习记录5-langchain实战

前面我的bert+lora微调已经跑出了不错的结果,我也学会了如何在bert上使用Lora进行微调,我后续会补充一个医疗意图识别的项目于这个系列,现在这个医疗意图识别代码还暂时不准备公开。我就继续按照我的计划学习一番LangChain。

LangChain是一个用于构建语言模型应用程序的框架。 LangChain提供了多个模块来简化开发和集成语言模型的过程。以下是 LangChain 的七个主要模块及其详细介绍:

1.

LLMs (Language Models)

  • 功能
    : 这个模块处理与各种语言模型的交互。你可以使用它来加载预训练的语言模型,或者自定义和训练自己的模型。
  • 核心组件
    :
    • LLM
      : 用于封装语言模型的基类。
    • OpenAI
      : 对接 OpenAI 的模型(如 GPT-3, GPT-4)。

2.

Prompts

  • 功能
    : 用于生成和管理提示(prompts),以便有效地与语言模型进行交互。提供了构建和优化提示的工具。
  • 核心组件
    :
    • PromptTemplate
      : 用于定义和格式化提示模板。
    • PromptChain
      : 用于管理多个提示的链式处理。

3.

Agents

  • 功能
    : 允许创建智能代理(agents),这些代理可以处理复杂的任务和对话,并决定如何调用不同的工具或模型。
  • 核心组件
    :
    • Agent
      : 处理任务和对话的智能代理。
    • AgentExecutor
      : 执行代理任务的类。

4.

Chains

  • 功能
    : 用于将多个组件(如提示、模型、数据)连接在一起,以实现更复杂的工作流和数据处理管道。
  • 核心组件
    :
    • Chain
      : 基类,用于创建链式工作流。
    • SequentialChain
      : 按顺序执行多个步骤的链。

5.

Memory

  • 功能
    : 用于管理和存储会话中的信息,以便在对话中保持上下文和状态。
  • 核心组件
    :
    • Memory
      : 用于存储和检索会话信息。
    • ConversationBufferMemory
      : 专门用于对话的缓冲记忆。

6.

Tools

  • 功能
    : 提供了一些工具和功能,用于扩展语言模型的能力,如数据检索、处理和转换。
  • 核心组件
    :
    • Tool
      : 基类,用于定义各种工具。
    • APITool
      : 对接外部API的工具。

7.

Callbacks

  • 功能
    : 提供了回调功能,用于在模型运行过程中进行日志记录、监控和其他自定义操作。
  • 核心组件
    :
    • CallbackHandler
      : 用于处理和管理回调操作。
    • Logger
      : 记录模型运行的日志信息。

LangChain的demo使用方法:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

from langchain_openai import ChatOpenAI
from langchain_core.messages import HumanMessage, SystemMessage

"""
api_key = ""
api_base = ""
model_name = ""
"""

chat = ChatOpenAI(
model="yi-spark",
temperature=0.3,
max_tokens=200,
api_key='',
base_url=""
)

messages = [
SystemMessage(content="你是一名精通 python 的专家"),
HumanMessage(content="写一个 python 的 hello world 程序"),
]

response = chat.invoke(messages)

print(response.content)

这是运行的结果: