总结之LangChain(一)—— 简单使用LangChain

LangChain介绍

LangChain官网:https://python.langchain.com/v0.2/docs/introduction/

LangChain 是一个基于大型语言模型(LLM)开发应用程序的框架。

LangChain 简化了LLM应用程序生命周期的每个阶段:

  • 开发:使用 LangChain 的开源构建模块和组件构建应用程序。使用第三方集成(opens in a new tab)和模板(opens
    in a new tab)快速上手。
  • 生产化:使用LangSmith检查、监控和评估你的链条,以便你可以持续优化和自信地部署。
  • 部署:使用LangServe(opens in a new tab)将任何链条转变为 API。

该框架由以下开源库组成:

  • langchain-core:基本抽象和 LangChain 表达式语言。
  • langchain-community:第三方集成。 合作伙伴包(例如
    langchain-openai,langchain-anthropic 等):某些集成已进一步拆分为仅依赖于
    langchain-core 的轻量级包。
  • langchain:构成应用程序认知架构的链条、代理和检索策略。
  • langgraph(opens in a new
    tab):通过将步骤建模为图中的边缘和节点,使用LLMs构建强大且有状态的多角色应用程序。
  • langserve(opens in a new tab):将 LangChain 链条部署为 REST API。

使用LangChain

使用的方法我们可以参考官网

How-to guides:https://python.langchain.com/v0.2/docs/how_to/

第一步 引包
powershell 复制代码
pip install langchain

使用API提供的模型,如OpenAI

powershell 复制代码
pip install langchain-openai
第二步 获取访问API

访问openai网址,注册后生成个人API-KEY

讲key设置为环境变量

powershell 复制代码
export OPENAI_API_KEY="..."
第三步 初始化模型
python 复制代码
from langchain_openai import ChatOpenAI
 
llm = ChatOpenAI()

或者不设置环境变量的话,通过参数形式写入

python 复制代码
from langchain_openai import ChatOpenAI
 
llm = ChatOpenAI(api_key="...")
第四步 通过LangChain使用LLM
python 复制代码
llm.invoke("明天的天气怎么样?")

我们还可以使用提示模板来指导其回答。 提示模板将原始用户输入转换为更好的输入以供LLM使用。

python 复制代码
from langchain_core.prompts import ChatPromptTemplate
prompt = ChatPromptTemplate.from_messages([
    ("system", "你是一个专业的天气播报员"),
    ("user", "{input}")
])

组合成一个简单的LLM链

python 复制代码
chain = prompt | llm 

这样我在次提问,AI回答的方向和语境更倾向于天气播报员了

python 复制代码
chain.invoke({"input": "明天的天气怎么样?"})

ChatModel的输出(因此,也是这个链的输出)是一个消息。然而,使用字符串更方便。让我们添加一个简单的输出解析器将聊天消息转换为字符串。

python 复制代码
from langchain_core.output_parsers import StrOutputParser
 
output_parser = StrOutputParser()

将其添加到之前的链中

python 复制代码
chain = prompt | llm | output_parser

现在,我们可以调用它并问相同的问题。答案现在将是一个字符串(而不是ChatMessage)。

python 复制代码
chain.invoke({"input": "明天的天气怎么样?"})
相关推荐
站大爷IP4 分钟前
Python文本序列的类型
python
千千寰宇20 分钟前
[Java/Python] Java 基于命令行调用 Python
python·java se-jdk/jvm
yvestine1 小时前
自然语言处理——文本表示
人工智能·python·算法·自然语言处理·文本表示
zzc9211 小时前
MATLAB仿真生成无线通信网络拓扑推理数据集
开发语言·网络·数据库·人工智能·python·深度学习·matlab
威化饼的一隅1 小时前
【大模型LLM学习】function call/agent学习记录
langchain·agent·function call·工具调用·意图识别
编程有点难2 小时前
Python训练打卡Day43
开发语言·python·深度学习
2301_805054562 小时前
Python训练营打卡Day48(2025.6.8)
pytorch·python·深度学习
LjQ20402 小时前
网络爬虫一课一得
开发语言·数据库·python·网络爬虫
哆啦A梦的口袋呀2 小时前
基于Python学习《Head First设计模式》第九章 迭代器和组合模式
python·学习·设计模式
千|寻2 小时前
【画江湖】langchain4j - Java1.8下spring boot集成ollama调用本地大模型之问道系列(第一问)
java·spring boot·后端·langchain