什么是LangChain
LangChain是一个基于大语言模型(LLMs)用于构建端到端语言模型应用的框架,它可以让开发者使用语言模型来实现各种复杂的任务,例如文本到图像的生成、文档问答、聊天机器人等。LangChain提供了一系列工具、套件和接口,可以简化创建由LLMs和聊天模型提供支持的应用程序的过程。
感受LangChain的强大之处
LangChain究竟有多强大,接下来我们来通过一个例子来感受一下。
import os
os.environ["OPENAI_API_KEY"] = '你的OpenAI Key'
from langchain_openai import OpenAI
llm = OpenAI(model_name="gpt-3.5-turbo-instruct",max_tokens=200)
text = llm.invoke("请给我写一句生日祝福语")
print(text)
具体效果如下:
使用LangChain
使用的前提自然是安装,借助命令
pip install langchain
LangChain 是需要与各种模型、数据存储库集成的,因此可能还需要安装 openai 等。
使用 Text 模型
import os
os.environ["OPENAI_API_KEY"] = '你的Open API Key'
from langchain.llms import OpenAI
llm = ChatOpenAI(
model=os.environ.get("LLM_MODELEND"),
temperature=0.8,
max_tokens=600,
)
response = llm.predict("请给我的蛋糕店起个名")
print(response)
上方是对OpenAI API的简单封装:先从langchain库的llms模块中导入OpenAI类,创建一个LLM(大语言模型)对象,指定使用的模型和一些生成参数。调用predict方法,传入提示“请给我的蛋糕店起个名”,以生成蛋糕店的名字。最后,打印出模型生成的文本响应。
得到的结果如下:
使用 Chat 模型
import os os.environ["OPENAI_API_KEY"] = '你的Open API Key' from langchain.chat_models import ChatOpenAI chat = ChatOpenAI(model="gpt-4", temperature=0.8, max_tokens=60) from langchain.schema import ( HumanMessage, SystemMessage )
chat = ChatOpenAI(model=os.environ.get("LLM_MODELEND"), temperature=0.8, max_tokens=600)
messages = [
SystemMessage(content="你是一个很棒的智能助手"),
HumanMessage(content="请给我的蛋糕店起个名"),
]
response = chat(messages)
print(response.content)
得到的结果如下:
response包含的内容
| 字段名 | 含义 |
|---|---|
| content | 响应内容 |
| additional_kwargs | 额外的响应信息 |
| response_metadata | 响应元数据 |
| id | 响应的唯一标识符 |
| usage_metadata | 使用元数据,包含请求资源使用的信息,如令牌数和费用 |
同样是输出 response,Chat 模型会输出 content、additional_kwargs、response_metadata、id、usage_metadata;而 Text 模型输出的会相对简洁些,仅输出文本内容。
小结
Text模型,是以文本字符串作为输入,并返回文本字符串作为输出的模型。
Chat模型是语言模型的一种变体,使用聊天消息作为输入,并返回聊天消息作为输出,与纯文本输入输出不同。
Text模型处理的是纯文本输入和输出,而Chat模型则处理结构化的聊天消息,支持更丰富的功能,如工具调用和结构化输出。Chat模型更适合于需要模拟对话或交互式应用的场景。