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

LangChain LLM基础模型


LLMs

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

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

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

LLM使用例子

LangChain封装了很多大模型接口 (例如:OpenAI, Cohere, Hugging Face等等) - LLM 基类就是面向各类模型接口的统一抽象,里面提供了一些基础的接口设计。

下面使用的OpenAI的模型进行演示。

安装配置

LangChain框架默认不会安装模型依赖包,需要手动安装,下面安装openai的依赖包

pip install openai

通过环境变量配置OpenAI的API KEY

export OPENAI_API_KEY="..."

你也可以通过代码配置API KEY,例如:通过OpenAI模型类的 openai_api_key 的参数配置

from langchain.llms import OpenAI

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

__call__: string in -> string out

下面是简单使用大模型的例子,输入一个问题,就可以得到答案

llm("给我讲个笑话")

返回:

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

generate: 批量调用模型

generate 允许我们一次批量给大模型传一组问题,然后返回批量返回结果:

# 模拟生成30个问题
llm_result = llm.generate(["给我讲个笑话", "告诉我一首诗"]*15)
# 打印模型返回结果数量
len(llm_result.generations)
30
# 打印结果
llm_result.generations[0]
[Generation(text='\n\nWhy did the chicken cross the road?\n\nTo get to the other side!'),
     Generation(text='\n\nWhy did the chicken cross the road?\n\nTo get to the other side.')]
# 打印结果
llm_result.generations[-1]
[Generation(text="\n\nWhat if love neverspeech\n\nWhat if love never ended\n\nWhat if love was only a feeling\n\nI'll never know this love\n\nIt's not a feeling\n\nBut it's what we have for each other\n\nWe just know that love is something strong\n\nAnd we can't help but be happy\n\nWe just feel what love is for us\n\nAnd we love each other with all our heart\n\nWe just don't know how\n\nHow it will go\n\nBut we know that love is something strong\n\nAnd we'll always have each other\n\nIn our lives."),
     Generation(text='\n\nOnce upon a time\n\nThere was a love so pure and true\n\nIt lasted for centuries\n\nAnd never became stale or dry\n\nIt was moving and alive\n\nAnd the heart of the love-ick\n\nIs still beating strong and true.')]

也可以访问返回结果的指定信息

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


关联主题