目录

一.LangChain软件包安装

二.LangChain能力详解

1.本章节环境说明

2.目标与内容

三.详细过程

1.步骤1:

a.申请API key并配置环境变量

b.配置环境变量

步骤2:定义大模型

a.安装OpenAI包

b.定义大模型

步骤3:定义消息列表

步骤4:调用大模型

步骤5:输出解析

步骤6:链式执行

四.引出LangChain相关概念

1.Runnable接口

2.LangChain Expression Language


一.LangChain软件包安装

pip install langchain

pip install langchain-core

pip install langchain-openai

pip install langchain-community

pip install langgraph

pip install langsmith

二.LangChain能力详解

1.本章节环境说明

2.目标与内容

三.详细过程

1.步骤1:

a.申请API key并配置环境变量

官网地址:https://platform.openai.com/login

b.配置环境变量

步骤2:定义大模型

a.安装OpenAI包

pip install -U langchain-openai

b.定义大模型

from langchain_openai import ChatOpenAI
model = ChatOpenAI(model="gpt-5-mini") 

步骤3:定义消息列表

from langchain_core.messages import HumanMessage, SystemMessage
messages = [
 SystemMessage(content="Translate the following from English into Chinese"),
 HumanMessage(content="hi!"),
]

步骤4:调用大模型

result = model.invoke(messages)
print(result)

在调用之前还是那句话(记得开代理)

但是,这个openAI可能需要钱(或者海外账户进行充值)这里我们可以采用对应的国内的AI(豆包,千问等大模型)

https://bigmodel.cn/

我们可以使用智谱进行调用

我们在进行配置环境变量的时候,要将其改成ZHIPUAI_API_KEY(这样就能进行远程调用了)

from langchain_core.messages import HumanMessage, SystemMessage
from langchain_community.chat_models import ChatZhipuAI  # 换成国内模型

# 1. 定义模型(和你风格完全一样)
model = ChatZhipuAI(
    model="glm-4"
)

# 2. 定义消息(完全和你一样)
messages = [
    SystemMessage(content="请帮我进行翻译,由英文翻译成为中文!"),
    HumanMessage(content="hi!I am Tom")
]

# 3. 调用大模型(完全和你一样)
result = model.invoke(messages)
print(result.content)

这边不建议将我们的API_key进行硬编码到代码中

content='我的名字是小明。' additional_kwargs={} response_metadata={'token_usage': {'completion_tokens': 6, 'prompt_tokens': 28, 'total_tokens': 34}, 'model_name': 'glm-4', 'finish_reason': 'stop'} id='run--019d4c74-c039-7063-8cd2-986056b1700a-0'

这就是我们接收到的字段

步骤5:输出解析

#4. 定义输出解析
parser = StrOutputParser()
print(parser.invoke(result))

这个输出解析器,只将我们对应的正文进行打印

步骤6:链式执行

# 定义⼤模型 
model = ChatOpenAI(model="gpt-5-mini")
# 定义消息列表 
messages = [
 SystemMessage(content="Translate the following from English into Chinese"),
 HumanMessage(content="hi!"),
]
# 定义输出解析器 
parser = StrOutputParser()
# 定义链 
chain = model | parser
# 执⾏链 
result = chain.invoke(messages)
print(result)

from langchain_core.messages import HumanMessage, SystemMessage
from langchain_community.chat_models import ChatZhipuAI  # 换成国内模型
from langchain_core.output_parsers import StrOutputParser

# 1. 定义模型(和你风格完全一样)
#默认从系统环境读取ZHIPU_API_KEY(要提前配置环境变量)
model = ChatZhipuAI(
    model="glm-4"
)

# 2. 定义消息(完全和你一样)
#用户消息 HumanMessage
#系统提示消息 SystemMessage -> 通常作为第一条消息
#AI消息   AIMessage
messages = [
    SystemMessage(content="请帮我进行翻译,由英文翻译成为中文!"),
    HumanMessage(content="my name is xiaoming")
]

# 3. 调用大模型(完全和你一样)
# result = model.invoke(messages)
# print(result)
# print(result.content)


#4. 定义输出解析(组件)
parser = StrOutputParser()
# print(parser.invoke(result))

#5. 定义链
#执行链
chain = model | parser
print(chain.invoke(messages))

四.引出LangChain相关概念

1.Runnable接口

所有能力参考:https://docs.langchain.com/oss/python/langchain/overview#invoke-runnables-in-parallel

# 语⾔模型(model)

model = ChatOpenAI(model="gpt-5-mini")

result = model.invoke(messages) # 语⾔模型是 Runnable 接⼝实例,允许invoke调⽤ # 输出解析器(StrOutputParser)

parser = StrOutputParser()

parser.invoke(result) # 输出解析器是 Runnable 接⼝实例,允许invoke调用

2.LangChain Expression Language

#5. 定义链
#执行链
# chain = model | parser
# chain = RunnableSequence(first=model,last=parser)
chain = model.pipe(parser)
print(chain.invoke(messages))

这个和我们对应的linux中的进程间通信类似的

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐