LangChain:构建下一代AI应用的开源框架
在人工智能的浪潮中,语言模型特别是大型语言模型(LLM)正变得越来越重要。它们在自然语言处理(NLP)任务中展现出了惊人的能力。但是,如何将这些模型应用到实际的问题中,构建出真正有用的AI应用程序呢?这就是LangChain框架的用武之地。
什么是LangChain?
LangChain是一个开源的AI工程开发框架,由哈佛大学的Harrison Chase发起,旨在帮助研究人员和开发人员更容易地构建、实验和部署以自然语言处理(NLP)为中心的应用程序。它提供了一系列的组件和工具,可以与最新的语言模型如大型Transformer模型等集成,并可以与Hugging Face等平台无缝配合。
LangChain的核心特性
1. 模块化组件
LangChain提供了一系列的模块化组件,包括:
- Models:支持多种语言模型。
- Prompts:用于构建与模型交互的提示。
- Indexes:帮助组织和检索信息。
- Memory:管理对话状态和历史。
- Chains:将多个组件连接起来处理复杂的工作流。
- Agents:自动化地执行任务和决策。
2. 用例特定的链
LangChain提供了用例特定的链,这些是为特定任务预配置的组件集合,可以大大简化开发过程。
3. 易于使用和集成
LangChain简化了开发流程,采用了模块化设计,并且可以轻松地与其他系统和数据源集成。
4. 开源社区支持
作为一个开源项目,LangChain拥有活跃的社区,不断有新的工具和插件被贡献出来。
如何开始使用LangChain?
使用LangChain的第一步是准备你的开发环境。你需要:
- Python环境:建议使用3.8版本以上。
- OpenAI API密钥:你需要有一个OpenAI的API密钥。
- 安装LangChain:通过pip安装LangChain库。
pip install langchain langchain-openai
注意
langchain版本变化迅速,每次更新都会有部分模块和代码的变迁,最终请以langchain官网的文档为标准,以下只是部分以GLM大模型的基础演示
实战讲解
1.基础语法
###1.设置API key,全局变量
import os
zhipuai_api_key = os.environ["ZHIPUAI_API_KEY"]
###2.定义模型的所需的代码,基本就这个写法会随模型厂商变化而变化
from langchain_community.chat_models import ChatZhipuAI ###community包是除了openai外的野鸡模型的所有模型
chat = ChatZhipuAI(
model="glm-4",
temperature=0.5,
)
###3.聊天message的对象设置
from langchain_core.messages import AIMessage, HumanMessage, SystemMessage
messages = [
AIMessage(content="Hi."),
SystemMessage(content="Your role is a poet."),
HumanMessage(content="Write a short poem about AI in four lines."),
]
###4.基本使用invoke
response = chat.invoke(messages)
print(response.content) # 打印出response对象中的content
###5.输出解析器,output_parser,strOutputParser将response中的string给解析出来
from langchain_core.output_parsers import StrOutputParser
StrOutputParser().invoke(response)
###6.链式调用
#上面的都用了invoke且一个个都有顺序使用,为了省代码,产生了链式调用的功能
parser = StrOutputParser()
chain = chat|parser
final_response = chain.invoke(message) #等于 StrOutputParser().invoke(chat.invoke(message))
print(final_response)
(待续)