LangChain作为一个以大模型为引擎的全新应用开发框架,毫无疑问的拉近了最前沿的AI技术与实际落地应用之间的关系。在LangChain的启程篇,我们把目光聚焦在了解LangChain的特点,作用以及简单的实际应用上,在正式深入了解之前,启程篇给我们展示了LangChain可以带来的强大的未来图景。
本文将再次精简总结LangChain启程篇的重点内容,致力于让每一个学过知识的人能在最短时间内调动记忆,重新回顾。
本文内容将从以下两个方面展开:
-
- LangChain 是什么
-
- LangChain 支持的两大模型
LangChain是什么
LangChain是一个基于大语言模型(LLMs)用于构建端到端语言模型应用的框架,它可以让开发者使用语言模型来实现各种复杂的任务,例如文本到图像的生成、文档问答、聊天机器人等。
LangChain提供了一系列工具、套件和接口,可以简化创建由LLMs和聊天模型提供支持的应用程序的过程。
简单来说,通过LangChain的各种API接口,我们可以将AI各个部分的功能调用起来,组合形成强大的工具。
LangChain有两大重要特性:
- 数据感知: 能够将语言模型与其他数据源连接起来,从而实现对更丰富、更多样化数据的理解和利用。
- 具有代理性: 能够让语言模型与其环境进行交互,使得模型能够对其环境有更深入的理解,并能够进行有效的响应。
LangChain支持的两大模型
目前为止,LangChain支持的两大模型分别是Chat Model和Text Model
- Chat Model,聊天模型,用于产生人类和AI之间的对话,代表模型当然是gpt-3.5-turbo(也就是ChatGPT)和GPT-4。当然,OpenAI还提供其它的版本,gpt-3.5-turbo-0613代表ChatGPT在2023年6月13号的一个快照,而gpt-3.5-turbo-16k则代表这个模型可以接收16K长度的Token,而不是通常的4K。(注意了,gpt-3.5-turbo-16k并未开放给我们使用,而且你传输的字节越多,花钱也越多)
- Text Model,文本模型,在ChatGPT出来之前,大家都使用这种模型的API来调用GPT-3,文本模型的代表作是text-davinci-003(基于GPT3)。而在这个模型家族中,也有专门训练出来做文本嵌入的text-embedding-ada-002,也有专门做相似度比较的模型,如text-similarity-curie-001。
两大模型的实际代码实现:
Text Model:
ini
import os
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(
model=os.environ.get("LLM_MODELEND"),
temperature=0.8,
max_tokens=600,
)
response = llm.predict("请给我的花店起个名")
print(response)
Chat Model:
ini
import os
from langchain_openai import ChatOpenAI
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)
通过代码我们可以看出,langchain的重要作用在于它可以通过调用模型轻松将模型应用于各种场景,我们要想得到不同的回答只需要更改response内的内容,甚至我们对于chat/text model的选择也只需要更改response中输入模型的是message还是文本即可,这是其特有的独特特点,便于我们使用。
最后,关于调用模型内的参数,可以参考这张图片: