从零构建 LangChain AI 应用 · 第 1 篇

安装、配置LangChain并实现单次聊天

1. LangChain的安装与API配置

1.1 环境搭建

首先,我们需要搭建项目所需用到的环境。在这里我使用了 python 3.12作为解释器,并采用 .venv 作为项目的基本环境。

在构建完基础环境之后,需要使用下方pip指令安装LangChain:

shell
pip install langchain_openai==1.7.0

静等pip指令安装完毕,基础环境就已经搭建完成。

1.2 API Key的配置

1.2.1 获取 DeepSeek 的 API Key

首先需要进入DeepSeek 开放平台,完成注册登陆之后点击「API Keys」,输入API Key对应的名称之后会得到对应的API Key。这个API Key后面会用到,可以先保存下来,且不可再二次查看key。

1.2.2 获取 Qwen 的 API Key

首先,需要进入千问AI平台。在注册与登陆之后,同样点击「API Keys」,随后点击「创建 API Key」并输入名称,即可得到Qwen的对应key。

2. 项目代码搭建

2.1 创建模型对象

LangChain帮我们封装了请求各家模型的ChatOpenAI方法,千问和DeepSeek模型均支持通过OpenAI的接口进行调用,因此我们只需要指定base_url与model就可以快捷的切换调用的模型。

python
from langchain_openai import ChatOpenAI

 # 1.2 节拿到的 Key
API_KEY = "sk-xxxxx"     
# DeepSeek 换成 https://api.deepseek.com                                      
BASE_URL = "https://dashscope.aliyuncs.com/compatible-mode/v1"
# DeepSeek 用 deepseek-chat
MODEL = "qwen3.7-plus"

llm = ChatOpenAI(model=MODEL, api_key=API_KEY, base_url=BASE_URL)

这里的llm只是最简易的配置参数,可以设定的常用参数如下:

参数用途
model模型名称,写错会在调用时报 404 或 model not found
api_key / base_url认证与接口地址,base_url 决定了请求发给谁
temperature0 到 2,越低回答越稳定,越高越发散,默认 1
max_tokens限制一次回答的最大长度

2.2 三种消息类型

之前我们只是申明了需要调用的模型的相关参数,现在我们需要通过引入消息来给模型提供上下文。在一般的Agent系统中,消息的来源主要分为系统消息、人发送的消息、模型回复的消息,为了方便区分消息来源,这三种消息在LangChain中分别对应为:

名称用处
SystemMessage给模型的人设与回答的规则,例如身份、语气、回答语言、禁止事项,用户看不到这些,但是模型的回答会受到规则与人设的约束。
HumanMessage用户实际输入的内容,也是我们要问的问题。
AIMessage模型的回答。通常通过 llm.invoke()的方式去获得。保存模型的回答,可以让他知道之前说过的话。
python
from langchain_core.messages import SystemMessage, HumanMessage, AIMessage

messages = [
    SystemMessage("你是一个高级的助手,需要友善地回答用户的问题。"),
    HumanMessage("你好,简单介绍下你自己吧"),
]

2.3 调用模型并读取结果

想要获取模型调用的结果,使用invoke即可拿到模型的全部返回内容。(逐词返回将在后续章节中介绍)

python
response = llm.invoke(messages)
print(response.content)

invoke 是 LangChain 里最基本的调用方式:传入消息列表,阻塞等待,返回一个 AIMessage。除了 content 以外,返回对象上还有几样有用的信息:

python
print(type(response).__name__)          # AIMessage
print(response.response_metadata)       # 模型名、结束原因等
print(response.usage_metadata)          # 本次输入 / 输出 token 数,用来估算费用

2.4 完整代码

python
from langchain_openai import ChatOpenAI
from langchain_core.messages import SystemMessage, HumanMessage

# 填入刚刚获取的sk开头的API KEY,注意不要用错了
API_KEY = "sk-xxxxx•••••••••••••••••••"
# 如果是DeepSeek,切换为 https://api.deepseek.com
BASE_URL = "https://dashscope.aliyuncs.com/compatible-mode/v1"
# qwen可选 qwen-plus, qwen3.7-max 等
# deepseek可选 deepseek-chat
MODEL = "qwen3.7-plus"

llm = ChatOpenAI(model=MODEL, api_key=API_KEY, base_url=BASE_URL)

user_messsage = input("输入以获取回答:")

messages = [
    SystemMessage("你是一个高级的助手,需要友善的回答用户的问题。"),
    HumanMessage(user_messsage),
]

response = llm.invoke(messages)
print(response.content)

示例输出:

text
输入以获取回答:你好,简单介绍下你自己吧
你好!很高兴和你交流。我是一个高级AI助手,随时准备为你提供专业、贴心且高效的帮助。

我的能力涵盖了很多方面,比如解答各类知识问题、协助文案创作、提供逻辑分析、制定计划,或者只是陪你聊聊天、分享日常。我致力于用准确的信息和友善的态度,成为你工作和生活中的得力伙伴。

请问今天有什么我可以为你效劳的吗?
这篇文章带给你什么?

无需登录,点一个表情告诉我。