总结之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": "明天的天气怎么样?"})
相关推荐
Csvn1 天前
🌟 LangChain 30 天保姆级教程 · Day 13|OutputParser 进阶!让 AI 输出自动转为结构化对象,并支持自动重试!
python·langchain
cch89181 天前
Python主流框架全解析
开发语言·python
sg_knight1 天前
设计模式实战:状态模式(State)
python·ui·设计模式·状态模式·state
好运的阿财1 天前
process 工具与子agent管理机制详解
网络·人工智能·python·程序人生·ai编程
张張4081 天前
(域格)环境搭建和编译
c语言·开发语言·python·ai
weixin_423533991 天前
【Windows11离线安装anaconda、python、vscode】
开发语言·vscode·python
Ricky111zzz1 天前
leetcode学python记录1
python·算法·leetcode·职场和发展
小白学大数据1 天前
Selenium+Python 爬虫:动态加载头条问答爬取
爬虫·python·selenium
Hui Baby1 天前
springboot读取配置文件
后端·python·flask
阿Y加油吧1 天前
回溯法经典难题:N 皇后问题 深度解析 + 二分查找入门(搜索插入位置)
开发语言·python