一架梯子,一头程序猿,仰望星空!
LangChain教程(Python版本) > 内容正文

LangChain LLM基础模型


1. LLMs 介绍

大语言模型(LLMs)是LangChain的核心组件,LangChain本身不提供大语言模型能力,LangChain封装了各种常见的大语言模型,提供一套操作大语言模型的标准接口,方便开发者。

目前LangChain封装不少大语言模型,也支持自定义模型,开发者可以自己封装新的模型接口。

  • 提示:目前开源大模型和商业大模型有很多,考虑到成本&模型能力的差异,大家会有不同的选择,同时也可能会经常换模型,但是换模型又不想改动太多业务代码,这个时候LangCain的价值就体现出来了。

2. 设置

2.1 安装

要在LangChain中使用OpenAI LLM,用户需要通过运行以下命令来安装OpenAI Python包:

pip install openai

2.2 API密钥设置

访问OpenAI API需要一个API密钥,可以通过在OpenAI平台上创建账户来获取。一旦获得API密钥,可以通过以下命令将其设置为环境变量:

export OPENAI_API_KEY="your-api-key"

另外,如果不希望设置环境变量,也可以在初始化OpenAI LLM类时直接传递API密钥,示例如下:

from langchain_openai import OpenAI

llm = OpenAI(openai_api_key="your-api-key")

3. LCEL 实现

在LangChain中,LLMs实现了LangChain表达式语言(LCEL)的可运行接口。这意味着它们支持各种函数调用,如invokestreambatch等。

LLMs接受字符串输入或可以强制转换为字符串提示的对象,包括List[BaseMessage]PromptValue

4. LLM使用示例

$ 4.1 调用

要使用特定提示词(prompt)调用LLM,可以使用invoke函数,示例如下:

llm.invoke("在这里为LLM提供提示(prompt)")

4.2 流式处理

从LLMs中实时获取并处理文本输出的方法称为流式处理。以下是使用LLM进行流式处理的示例:

for chunk in llm.stream("在这里为LLM流处理提供提示(prompt)"):
    print(chunk, end="", flush=True)

4.3 批处理

批处理能够实现对LLMs的多个输入进行并行处理。您可以像这样处理一批提示(prompt):

llm.batch(["prompt 1", "prompt 2", "prompt 3"])

4.4 异步操作

为了提高效率,可以使用异步操作与LLMs一起工作。异步操作如ainvokeastreamabatchastream_log可以实现异步执行。以下是使用LLM进行异步流处理的示例:

async for chunk in llm.astream("在这里提供异步LLM流处理的提示(prompt)"):
    print(chunk, end="", flush=True)

这些示例展示了在LangChain框架中利用LLMs进行自然语言处理任务的多样化方式。



关联主题