LangChain 小白入门:10 分钟写出你的第一个 AI 程序
2026/9/7 8:19:28 网站建设 项目流程

最近很多人在学 AI Agent、RAG、MCP,但如果你刚接触这些东西,我不建议一上来就研究特别复杂的框架。

先把最基础的东西跑起来。

这一篇我们只做几件事:

安装 LangChain ↓ 调用一次大模型 ↓ 给 AI 设置一个角色 ↓ 传递变量 ↓ 最后让 AI 调用一个简单工具

不讲复杂架构。

不讲向量数据库。

也不讲多 Agent。

只要你会一点 Python,基本就可以跟着做。


一、LangChain 是干什么的?

先用一句话理解:

LangChain 是一个帮助我们开发大模型应用的 Python 框架。

比如以前调用 AI:

Python ↓ 大模型 API ↓ 回答

LangChain 可以帮我们慢慢变成:

用户 ↓ LangChain ↓ 大模型 ↓ 工具 ↓ 数据库 ↓ 搜索 ↓ 最终回答

不过这些都是后面的事情。

今天我们先解决第一个问题:

怎么让 Python 通过 LangChain 调用大模型?

二、准备 Python

首先电脑需要安装 Python。

终端输入:

python--version

或者:

python3--version

如果看到:

Python 3.11.9

类似这样的内容,就说明 Python 已经安装好了。

建议使用:

Python 3.11+

三、创建项目

新建一个目录:

mkdirlangchain-demo

进入目录:

cdlangchain-demo

我们的项目暂时非常简单:

langchain-demo │ ├── main.py │ └── .env

就两个文件。


四、创建虚拟环境

虽然不是必须的,但建议养成习惯。

执行:

python3-mvenv .venv

目录会变成:

langchain-demo │ ├── .venv ├── main.py └── .env

Mac / Linux 激活:

source.venv/bin/activate

Windows:

.venv\Scripts\activate

成功以后,终端前面一般会出现:

(.venv)

五、安装 LangChain

执行:

pipinstall-Ulangchain langchain-openai

再安装读取环境变量的工具:

pipinstallpython-dotenv

一共就这几个:

langchain langchain-openai python-dotenv

现在开发环境就准备好了。


六、准备 API Key

接下来需要一个可以调用大模型的 API。

比如使用兼容 OpenAI API 的模型服务,一般会有:

API Key Base URL 模型名称

创建:

.env

写入:

OPENAI_API_KEY=sk-xxxxxxxx OPENAI_BASE_URL=https://你的接口地址/v1 MODEL_NAME=你的模型名称

比如:

OPENAI_API_KEY=sk-123456 OPENAI_BASE_URL=https://example.com/v1 MODEL_NAME=your-model

这里不要直接把 Key 写到 Python 代码里面。

因为以后代码传到 GitHub,非常容易泄露。


七、第一个 LangChain 程序

打开:

main.py

写入:

importosfromdotenvimportload_dotenvfromlangchain_openaiimportChatOpenAI# 读取 .envload_dotenv()# 创建大模型llm=ChatOpenAI(model=os.getenv("MODEL_NAME"),api_key=os.getenv("OPENAI_API_KEY"),base_url=os.getenv("OPENAI_BASE_URL"),)# 给模型发送问题response=llm.invoke("什么是 LangChain?请用一句话解释。")# 输出回答print(response.content)

然后运行:

python main.py

如果一切正常,你应该能看到类似:

LangChain 是一个用于构建大模型应用和 AI Agent 的开发框架。

到这里,其实你的第一个 LangChain 程序已经完成了。


八、这几行代码到底是什么意思?

代码不长,我们拆开看。

首先:

fromlangchain_openaiimportChatOpenAI

表示:

从 langchain_openai 导入 ChatOpenAI

它负责帮助我们调用聊天模型。

然后:

llm=ChatOpenAI(model=os.getenv("MODEL_NAME"),api_key=os.getenv("OPENAI_API_KEY"),base_url=os.getenv("OPENAI_BASE_URL"),)

相当于告诉 LangChain:

我要使用哪个模型? API Key 是什么? API 地址在哪里?

然后最关键的是:

response=llm.invoke("什么是 LangChain?")

invoke可以简单理解成:

调用

也就是:

调用大模型

最后:

print(response.content)

把模型回答打印出来。

所以整个程序本质就是:

创建模型 ↓ 发送问题 ↓ 获取回答

非常简单。


九、试着换一个问题

我们修改:

response=llm.invoke("给我写一个 Python Hello World")

完整代码:

importosfromdotenvimportload_dotenvfromlangchain_openaiimportChatOpenAI load_dotenv()llm=ChatOpenAI(model=os.getenv("MODEL_NAME"),api_key=os.getenv("OPENAI_API_KEY"),base_url=os.getenv("OPENAI_BASE_URL"),)response=llm.invoke("给我写一个 Python Hello World")print(response.content)

可能返回:

print("Hello World")

再换一个:

response=llm.invoke("用小白能理解的方式解释 Redis")

你会发现:

LangChain 本身并没有创造一个新的 AI。

真正负责回答问题的依然是大模型。

LangChain 更像是:

把我们写的 Python 程序 和大模型连接起来。

十、让用户自己输入问题

现在不要把问题写死。

改成:

question=input("请输入你的问题:")

完整代码:

importosfromdotenvimportload_dotenvfromlangchain_openaiimportChatOpenAI load_dotenv()llm=ChatOpenAI(model=os.getenv("MODEL_NAME"),api_key=os.getenv("OPENAI_API_KEY"),base_url=os.getenv("OPENAI_BASE_URL"),)question=input("请输入你的问题:")response=llm.invoke(question)print("\nAI:")print(response.content)

运行:

python main.py

终端:

请输入你的问题:

你输入:

Docker 是干什么的?

AI 就会回答。

再运行一次:

请输入你的问题:

输入:

Python 和 Java 有什么区别?

AI 又会回答。

这时候你已经做出了一个最简单的:

AI 问答程序

十一、让程序可以一直聊天

刚才有个问题。

每次问完一次:

程序就结束了。

可以增加:

whileTrue:

完整代码:

importosfromdotenvimportload_dotenvfromlangchain_openaiimportChatOpenAI load_dotenv()llm=ChatOpenAI(model=os.getenv("MODEL_NAME"),api_key=os.getenv("OPENAI_API_KEY"),base_url=os.getenv("OPENAI_BASE_URL"),)whileTrue:question=input("\n你:")ifquestion=="exit":breakresponse=llm.invoke(question)print("\nAI:",response.content)

运行:

python main.py

现在可以一直聊天:

你:什么是 MySQL? AI:MySQL 是一个关系型数据库…… 你:什么是 Redis? AI:Redis 是一个高性能的键值数据库…… 你:exit

输入:

exit

程序退出。

现在这个程序已经有点像最简单的 ChatGPT 了。


十二、给 AI 设置一个角色

接下来增加一点 LangChain 的味道。

比如我们希望 AI 永远是一名:

Python 老师

可以使用消息。

代码:

importosfromdotenvimportload_dotenvfromlangchain_openaiimportChatOpenAIfromlangchain_core.messagesimport(SystemMessage,HumanMessage,)load_dotenv()llm=ChatOpenAI(model=os.getenv("MODEL_NAME"),api_key=os.getenv("OPENAI_API_KEY"),base_url=os.getenv("OPENAI_BASE_URL"),)messages=[SystemMessage(content=""" 你是一名 Python 入门老师。 用户都是第一次学习编程的小白。 回答要求: 1. 尽量简单 2. 不要使用复杂术语 3. 多给简单例子 4. 每次代码不要太长 """),HumanMessage(content="什么是变量?"),]response=llm.invoke(messages)print(response.content)

这里多出了两个东西:

SystemMessage HumanMessage

非常好理解。


十三、SystemMessage 是什么?

例如:

SystemMessage(content=""" 你是一名 Python 入门老师。 """)

它主要用于告诉 AI:

你是谁? 你应该怎么回答? 你需要遵守什么规则?

比如:

SystemMessage(content=""" 你是一名 Java 老师。 回答所有问题都必须: 1. 使用 Java 2. 给代码示例 3. 用中文回答 """)

这样用户问:

怎么遍历数组?

AI 就更倾向于使用 Java。


十四、HumanMessage 是什么?

这个就更简单了。

HumanMessage(content="什么是变量?")

就是:

用户说的话。

所以:

messages=[SystemMessage(content="你是一名 Python 老师"),HumanMessage(content="什么是变量?"),]

可以理解成:

系统: 你是一名 Python 老师 用户: 什么是变量?

然后发送给大模型。


十五、做一个简单的编程老师

我们把前面的代码组合起来。

importosfromdotenvimportload_dotenvfromlangchain_openaiimportChatOpenAIfromlangchain_core.messagesimport(SystemMessage,HumanMessage,)load_dotenv()llm=ChatOpenAI(model=os.getenv("MODEL_NAME"),api_key=os.getenv("OPENAI_API_KEY"),base_url=os.getenv("OPENAI_BASE_URL"),)whileTrue:question=input("\n你:")ifquestion=="exit":breakmessages=[SystemMessage(content=""" 你是一名非常有耐心的编程老师。 用户是编程小白。 回答规则: 1. 使用中文 2. 尽量简单 3. 多举例子 4. 涉及代码时给出代码 5. 不要一次讲太复杂 """),HumanMessage(content=question),]response=llm.invoke(messages)print("\nAI老师:")print(response.content)

现在运行:

python main.py

输入:

什么是 Python 函数?

然后:

什么是 for 循环?

再输入:

给我写一个最简单的计算器。

这已经可以作为一个简单的小项目了:

AI 编程老师

十六、什么是 Prompt?

学 LangChain 一定会看到一个词:

Prompt

不要把它想复杂。

Prompt 就是:

给 AI 的提示词。

比如:

请给我介绍 Python。

这就是 Prompt。

再复杂一点:

你是一名 Python 老师。 请面向第一次学习编程的人, 解释什么是 Python 变量。 要求: 1. 语言简单 2. 给一个代码示例 3. 控制在 300 字以内

这也是 Prompt。

简单理解:

Prompt = 你告诉 AI 应该干什么。

十七、使用 PromptTemplate

假设我们要做一个:

代码解释器

每次 Prompt 都差不多:

请使用小白能理解的方式解释下面代码: XXX

只有:

XXX

会变化。

这时候就可以使用模板。

fromlangchain_core.promptsimport(ChatPromptTemplate)prompt=ChatPromptTemplate.from_messages([("system",""" 你是一名编程老师。 请使用最简单的语言解释代码。 """),("human",""" 请解释下面这段代码: {code} """),])

注意:

{code}

就是变量。

例如:

messages=prompt.invoke({"code":""" for i in range(10): print(i) """})

完整代码:

importosfromdotenvimportload_dotenvfromlangchain_openaiimportChatOpenAIfromlangchain_core.promptsimport(ChatPromptTemplate)load_dotenv()llm=ChatOpenAI(model=os.getenv("MODEL_NAME"),api_key=os.getenv("OPENAI_API_KEY"),base_url=os.getenv("OPENAI_BASE_URL"),)prompt=ChatPromptTemplate.from_messages([("system",""" 你是一名编程老师。 用户是初学者。 请用最简单的语言解释代码。 """),("human",""" 请解释下面这段代码: {code} """),])messages=prompt.invoke({"code":""" for i in range(10): print(i) """})response=llm.invoke(messages)print(response.content)

现在只需要修改:

"code":""" 这里放代码 """

就可以重复使用 Prompt。


十八、Chain 是什么?

接下来会看到另外一个词:

Chain

翻译过来就是:

比如我们刚才做的是:

用户数据 ↓ Prompt ↓ 大模型 ↓ 回答

LangChain 可以直接写:

chain=prompt|llm

这里的:

|

可以简单理解成:

然后

也就是:

先执行 Prompt 然后执行 LLM

代码:

chain=prompt|llm

调用:

response=chain.invoke({"code":""" for i in range(10): print(i) """})

完整代码:

importosfromdotenvimportload_dotenvfromlangchain_openaiimportChatOpenAIfromlangchain_core.promptsimport(ChatPromptTemplate)load_dotenv()llm=ChatOpenAI(model=os.getenv("MODEL_NAME"),api_key=os.getenv("OPENAI_API_KEY"),base_url=os.getenv("OPENAI_BASE_URL"),)prompt=ChatPromptTemplate.from_messages([("system",""" 你是一名编程老师。 请使用最简单的语言解释代码。 """),("human",""" 解释下面代码: {code} """),])chain=prompt|llm response=chain.invoke({"code":""" def add(a, b): return a + b print(add(1, 2)) """})print(response.content)

这里已经出现了 LangChain 一个非常重要的思想:

把多个步骤连接起来。

十九、LangChain 为什么叫 Chain?

现在你应该能理解这个名字了。

比如:

Prompt ↓ LLM

是一条 Chain。

以后可能是:

用户问题 ↓ Prompt ↓ 搜索知识库 ↓ LLM ↓ 回答

也可以是一条 Chain。

甚至:

用户 ↓ Agent ↓ 搜索 ↓ 数据库 ↓ 计算器 ↓ LLM ↓ 回答

所以 LangChain 很多能力,本质都是:

把多个组件连接起来。

二十、再体验一个最简单的 Tool

如果只是:

Prompt + LLM

其实还不太能感受到 Agent 的有趣之处。

所以最后我们只体验一个非常简单的工具。

创建一个函数:

defget_weather(city:str)->str:returnf"{city}今天晴天,温度 26 度"

这只是模拟天气接口。

真实项目里可能会调用真正的天气 API。


二十一、让 Agent 调用天气工具

现在使用:

create_agent

代码:

importosfromdotenvimportload_dotenvfromlangchain_openaiimportChatOpenAIfromlangchain.agentsimport(create_agent)load_dotenv()llm=ChatOpenAI(model=os.getenv("MODEL_NAME"),api_key=os.getenv("OPENAI_API_KEY"),base_url=os.getenv("OPENAI_BASE_URL"),)defget_weather(city:str)->str:""" 查询城市天气。 """return(f"{city}今天晴天,"f"温度26度。")agent=create_agent(model=llm,tools=[get_weather],system_prompt=""" 你是一个生活助手。 如果用户询问天气, 请使用天气查询工具。 """)result=agent.invoke({"messages":[{"role":"user","content":"北京今天天气怎么样?"}]})print(result["messages"][-1].content)

运行以后,Agent 会发现:

用户在问天气。

然后:

调用 get_weather

得到:

北京今天晴天,温度26度。

然后再告诉用户结果。


二十二、这里发生了什么?

普通大模型:

用户 ↓ LLM ↓ 回答

现在:

用户 ↓ Agent ↓ 发现需要查天气 ↓ get_weather() ↓ 获得天气 ↓ LLM ↓ 最终回答

区别就在这里。

以前 AI 只能:

聊天。

现在 AI 可以:

调用函数。

以后这个函数可以换成:

查询 MySQL

或者:

查询 Redis

或者:

调用天气 API

或者:

搜索网页

或者:

读取文件

甚至:

操作服务器

于是:

大模型 + 工具

就开始慢慢变成:

Agent

二十三、小白暂时不用学什么?

如果你刚刚学 LangChain,到这里就够了。

暂时不要急着研究:

LangGraph Multi-Agent 复杂 RAG 长期 Memory Middleware Human in the Loop MCP 向量数据库 多模态 Agent

这些都可以以后再学。

现在只需要真正搞懂四个东西:

1. LLM 2. Prompt 3. Chain 4. Tool

二十四、用一句话理解这四个东西

LLM

就是:

大模型。

代码:

llm=ChatOpenAI(...)

Prompt

就是:

告诉大模型应该做什么。

例如:

你是一名 Python 老师, 请给小白解释什么是函数。

Chain

就是:

把多个步骤连接起来。

例如:

chain=prompt|llm

相当于:

Prompt ↓ LLM

Tool

就是:

给 AI 一个可以调用的函数。

例如:

defget_weather(city):...

于是 AI 不只是回答问题。

它还可以:

真正去做事情。

二十五、最简单的学习路线

如果你今天第一次学习 LangChain,可以按照这个顺序。

第一天:

ChatOpenAI ↓ llm.invoke()

先保证:

Python 可以调用大模型。

第二步:

SystemMessage HumanMessage

理解:

系统提示词 用户消息

第三步:

PromptTemplate

学会使用:

{变量}

第四步:

prompt|llm

理解 Chain。

第五步:

Tool

最后再学习:

Agent

这就够了。


二十六、最后做一个最小练习

如果你跟着做到这里,可以自己写一个:

AI Java 老师

需求非常简单。

用户输入:

什么是 HashMap?

AI 使用:

Java 小白能理解的方式

回答。

你只需要修改:

SystemMessage(content=""" 你是一名 Java 入门老师。 用户都是 Java 初学者。 要求: 1. 使用中文 2. 尽量简单 3. 多给 Java 代码 4. 不要一次解释太多概念 """)

然后运行:

python main.py

输入:

什么是 ArrayList?

或者:

什么是 HashMap?

或者:

接口和抽象类有什么区别?

你就已经做出了自己的:

AI Java 学习助手。

总结

如果只记住今天这篇文章的一句话:

LangChain 就是帮助我们把大模型和程序里的各种能力连接起来。

最简单的时候:

Python ↓ LangChain ↓ LLM

再进一步:

Prompt ↓ LLM

再进一步:

Prompt ↓ LLM ↓ Tool

最后慢慢发展成:

用户 ↓ Agent ↓ LLM ↓ Tool ↓ 数据库 / API / 搜索 / 文件 ↓ 最终完成任务

但对于第一次学习 LangChain 的人来说,真的不用一次学这么多。

先把下面这几行代码跑起来:

fromlangchain_openaiimportChatOpenAI llm=ChatOpenAI(model="your-model",api_key="your-api-key",base_url="https://example.com/v1",)response=llm.invoke("你好,LangChain!")print(response.content)

只要这一段成功了:

你的 LangChain 学习就已经正式开始了。

后面的 Prompt、Tool、RAG、Agent,本质上都只是在这个基础上,一点一点给 AI 增加新的能力。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询