5分钟掌握AKShare:免费获取全市场金融数据的完整指南
2026/7/1 1:15:50
LangChain是一个开发框架,提供基础抽象和LangChain表达式语言(LCEL),通过管道符简化了组装链的过程,提升了代码的表达性。它不只是一个框架,而是一个完整的生态系统,包括社区生态和扩展生态。
LangChain的核心抽象包括ChatModel、PromptTemplate和OutputParser,它们是构建大模型应用的核心部分,分别处理模型调用、输入和输出。
invoke()方法stream()方法ainvoke()等异步方法langchain-openai包中StrOutputParser:将输出解析为字符串JsonOutputParser:将输出解析为JSON格式# -*- coding: utf-8 -*-""" @Time : 2026/01/02 09:39 @Author : zuozewei @File : 2.LangChain的核心抽象.py @Desc : LangChain的核心抽象 """importosimportdotenvfromlangchain_core.output_parsersimportStrOutputParserfromlangchain_core.promptsimportChatPromptTemplatefromlangchain_openaiimportChatOpenAI# 加载环境变量dotenv.load_dotenv()# ChatModel: 对于大模型的抽象llm=ChatOpenAI(openai_api_key=os.getenv("OPENAI_API_KEY"),openai_api_base=os.getenv("OPENAI_API_BASE"),model_name=os.getenv("AI_MODEL","deepseek-chat"),)# PromptTemplate: 负责编排提示词prompt=ChatPromptTemplate.from_messages([("system","请将下面的内容翻译成英文:"),("user","{text}"),])# OutputParser: 负责解析LLM的生成结果parser=StrOutputParser()# 构造Chain# Chain中组件的声明顺序,就是其实际的执行顺序chain=prompt|llm|parser# 调用Chain,获取执行结果# 采用流式响应# 流式响应返回的是一个Token的Iterator,可以通过for循环遍历stream=chain.stream({"text":"床前明月光,疑似地上霜"})forchunkinstream:print(chunk,flush=True,end="")print()Before my bed, there is bright moonlight, It seems like frost on the ground.示例展示了LangChain框架的三大核心抽象组件:ChatModel、PromptTemplate和OutputParser,并演示了如何使用管道操作符|将这些组件串联起来形成一个完整的处理链。
1. 导入依赖库2. 加载环境变量3. 初始化ChatModel4. 创建PromptTemplate5. 定义OutputParser6. 构造处理Chain7. 调用Chain并处理流式响应# ChatModel: 对于大模型的抽象llm=ChatOpenAI(openai_api_key=os.getenv("OPENAI_API_KEY"),openai_api_base=os.getenv("OPENAI_API_BASE"),model_name=os.getenv("AI_MODEL","deepseek-chat"),)# PromptTemplate: 负责编排提示词prompt=ChatPromptTemplate.from_messages([("system","请将下面的内容翻译成英文:"),("user","{text}"),])# OutputParser: 负责解析LLM的生成结果parser=StrOutputParser()# 构造Chain# Chain中组件的声明顺序,就是其实际的执行顺序chain=prompt|llm|parser|串联组件,形成数据处理流程# 调用Chain,获取执行结果# 采用流式响应# 流式响应返回的是一个Token的Iterator,可以通过for循环遍历stream=chain.stream({"text":"床前明月光,疑似地上霜"})forchunkinstream:print(chunk,flush=True,end="")print()stream()方法获取流式响应flush=True和end=""实现实时输出效果# -*- coding: utf-8 -*-""" @Time : 2026/01/02 09:39 @Author : zuozewei @File : 2.LangChain的核心抽象.py @Desc : LangChain的核心抽象 - 情感分析示例 """importosimportdotenvfromlangchain_core.promptsimportChatPromptTemplatefromlangchain_core.output_parsersimportStrOutputParserfromlangchain_openaiimportChatOpenAI# 加载环境变量dotenv.load_dotenv()# 定义情感分析提示词prompt=ChatPromptTemplate.from_messages([("system","请分析用户输入的情感倾向,返回'积极'、'消极'或'中性'。"),("user","{text}"),])# 初始化组件llm=ChatOpenAI(model_name=os.getenv("AI_MODEL","deepseek-chat"))parser=StrOutputParser()# 构造并执行Chainchain=prompt|llm|parser result=chain.invoke({"text":"今天天气真好,心情非常愉快!"})print(f"情感分析结果:{result}")情感分析结果: 积极LangChain框架通过ChatModel、PromptTemplate和OutputParser三大核心抽象,为大模型应用开发提供了标准化的接口和灵活的组合方式。使用管道操作符|可以轻松串联这些组件,形成完整的处理链,简化了代码结构,提升了开发效率。
本文通过详细的代码示例和解析,展示了如何使用LangChain的核心组件构建实际应用,包括基本的翻译功能和情感分析功能。同时,本文还介绍了LangChain的生态系统和使用建议,帮助开发者更好地理解和应用这一框架。
最终,是否选择LangChain应基于个人或团队的具体需求评估,权衡其优势与局限性,充分利用其生态系统的价值,为大模型应用开发赋能。