Skip to main content

LLMs

note

请前往Integrations查看与LLM提供商的内置集成的文档。

大型语言模型(LLMs)是LangChain的核心组件。LangChain不提供自己的LLMs,而是提供了一个标准接口,用于与许多不同的LLMs进行交互。

入门

有很多LLM提供商(OpenAI、Cohere、Hugging Face等)- LLM类旨在为所有这些提供商提供一个标准接口。

在本教程中,我们将使用OpenAI LLM包装器,尽管突出显示的功能对于所有LLM类型都是通用的。

设置

首先,我们需要安装OpenAI的Python包:

pip install openai

访问API需要一个API密钥,您可以通过创建一个账户并前往这里获取。一旦我们有了密钥,我们将通过运行以下命令将其设置为环境变量:

export OPENAI_API_KEY="..."

如果您不想设置环境变量,您可以在初始化OpenAI LLM类时直接通过openai_api_key命名参数传递密钥:

from langchain.llms import OpenAI

llm = OpenAI(openai_api_key="...")

否则,您可以不带任何参数进行初始化:

from langchain.llms import OpenAI

llm = OpenAI()

__call__: 输入字符串 -> 输出字符串

使用LLM的最简单方法是通过可调用函数:传入一个字符串,得到一个字符串的完成结果。

llm("Tell me a joke")

输出结果为:

'为什么鸡要过马路?\n\n为了到达另一边。'

generate: 批量调用,更丰富的输出

generate函数允许您使用一个字符串列表调用模型,返回比仅文本更完整的响应。这个完整的响应可以包括多个顶级响应和其他特定于LLM提供商的信息:

llm_result = llm.generate(["告诉我一个笑话", "念一首诗"]*15)  
len(llm_result.generations)  
30  
llm_result.generations[0]  
[Generation(text='\n\n为什么小鸡过马路?\n\n为了到达另一边!'),  
Generation(text='\n\n为什么小鸡过马路?\n\n为了到达另一边。')]
llm_result.generations[-1]  
[Generation(text="\n\n如果爱从未说话\n\n如果爱从未结束\n\n如果爱只是一种感觉\n\n我将永远不会知道这种爱\n\n它不是一种感觉\n\n但这就是我们彼此之间的爱\n\n我们只知道爱是一种强大的东西\n\n我们无法不快乐\n\n我们只是感受到了爱对我们来说是什么\n\n我们全心全意地相爱\n\n我们只是不知道如何\n\n它会怎样\n\n但我们知道爱是一种强大的东西\n\n我们将永远拥有彼此\n\n在我们的生活中。"),  
Generation(text='\n\n从前有一个纯洁而真实的爱\n\n它持续了几个世纪\n\n从未变得陈腐或干涸\n\n它是动态而活跃的\n\n而这种爱的心脏\n\n仍然强烈而真实地跳动着。')]

您还可以访问返回的特定于提供商的信息。这些信息在提供商之间不是标准化的。

llm_result.llm_output  
{'token_usage': {'completion_tokens': 3903,  
'total_tokens': 4023,
'prompt_tokens': 120}}