前面介绍了如何使用 OpenAI 的对话补全接口,并给出了 curl 和 python 的示例。可以看到,直接调用 HTTP API 接口,代码量比较大,需要处理很多细节。为此,LangChain 提供了大模型接口的封装,可以方便地调用大模型接口。
LangChain 是一个用于构建和部署多模态 AI 应用的框架。它提供了一系列的工具和组件,帮助开发者快速构建和部署 AI 应用,包括:大模型接口、提示词模板、链、代理、工具、回调函数等等。本文先介绍如何使用 LangChain 调用大模型接口。
安装
LangChain 的安装非常简单,只需使用 pip 安装即可:
1
2
|
pip install langchain
pip install langchain-openai
|
使用
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
from langchain_openai import ChatOpenAI
# 设置接口地址常量,这里使用的是阿里云的接口地址
OPENAI_BASE_URL = "https://dashscope.aliyuncs.com/compatible-mode/v1"
# 设置 API Key 常量(注意保密)
OPENAI_API_KEY = "sk-..."
llm = ChatOpenAI(
base_url=OPENAI_BASE_URL,
api_key=OPENAI_API_KEY,
model="deepseek-v3",
)
result = llm.invoke([
("system", "你是一个智能聊天机器人,名字叫小菜。"),
("user", "你好,小菜。")
])
print(result.content) # 输出:你好!很高兴见到你,有什么我可以帮你的吗?
|
智能聊天机器人
使用LangChain之后,调用大模型的代码得到极大简化。我们稍加修改,加上一个简单的命令行交互,就可以实现一个智能聊天机器人。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
from langchain_openai import ChatOpenAI
# 设置接口地址常量,这里使用的是阿里云的接口地址
OPENAI_BASE_URL = "https://dashscope.aliyuncs.com/compatible-mode/v1"
# 设置 API Key 常量(注意保密)
OPENAI_API_KEY = "sk-..."
# 创建大模型接口实例
llm = ChatOpenAI(
base_url=OPENAI_BASE_URL,
api_key=OPENAI_API_KEY,
model="deepseek-v3",
)
# 系统提示词
systemPrompts = [
("system", "你是一个智能聊天机器人,名字叫小菜。"),
]
# 对话历史,一开始是空的
history = []
while True:
# 获取用户输入
user_input = input("你:")
# 调用大模型接口
result = llm.invoke(systemPrompts + history + [("user", user_input)])
# 输出大模型接口的返回结果
print("小菜:", result.content)
# 更新对话历史(只保留最后10条,即5轮对话历史)
history.extend([
("user", user_input),
("assistant", result.content),
])
history = history[-10:]
|
程序跑起来后,我们就可以跟小菜聊天了,这是我调戏他的例子:

注意到,由于上下文大小的限制,小菜最多只能记住5轮对话(红框部分)。因此在对话的最后,他已经忘了我叫“小明”了。我们在开发AI应用时,需要充分考虑这一点。
大模型的上下文大小是有限的,我们不可能把全部对话历史都传过去。另一方面,对话历史也并非越多越好,过多的历史反而会影响大模型的表现。因此,需要根据具体场景选择合适的上下文大小。
总结
使用LangChain调用大模型接口,代码量大大减少,代码更易读。本文仅用短短几十行代码,就实现了一个智能聊天机器人。这是一个不错的起点,我们可以在此基础上,进一步构建更复杂的应用。
【小菜学AI】系列文章首发于公众号【小菜学编程】,敬请关注:
