准备环境
你将学会: 装好依赖、放好密钥、用一句话解释模型 / token / 工具 / Agent。
不需要: 任何机器学习基础。
先搞懂四个词
| 词 | 人话 |
|---|---|
| 模型 | 一个远程函数:你给文字,它吐文字。本教程用 DeepSeek。 |
| token | 计费和长度的单位,大约是「一块文字」,不是「一个汉字」。上下文窗口 = 一次请求里能塞下的 token 上限。 |
| 工具 | 你写的普通 Python 函数。模型不能真的访问天气/数据库,它只能请求调用工具,由你的程序执行后再把结果喂回去。 |
| Agent | 一个循环:模型看消息 → 决定「回答」或「调工具」→ 调完再看 → 直到它认为做完。 |
聊天机器人 = 只调用一次模型。
Agent = 可能调用很多次模型,中间夹着工具。
后面会碰到的三层(现在只需混个眼熟):
- LangChain
create_agent:把上面的循环写好了,你填模型和工具。 - LangGraph:你自己规定循环怎么走(图画节点)。
- Deep Agents:循环 + 文件系统 + 子代理,适合干很久的任务。
L02 跑通后再正式选。
安装
终端里(PowerShell 也可以):
python --version
应看到 3.10 或更高。然后在仓库根目录:
pip install -r requirements.txt
密钥
- 打开 DeepSeek 开放平台 创建 API key。
- 在仓库根目录新建文件
.env(注意前面有点):
DEEPSEEK_API_KEY=sk-替换成你的
不要把 .env 提交到 git。
程序用 python-dotenv 的 load_dotenv() 读取。你必须在仓库根目录运行脚本,否则找不到 .env。
验证环境(完整可运行,不花模型钱)
复制到仓库根目录 scratch.py:
import os
import sys
from dotenv import load_dotenv
load_dotenv()
print("Python =>", sys.version.split()[0])
if tuple(map(int, sys.version.split()[0].split(".")[:2])) < (3, 10):
raise SystemExit("需要 Python 3.10+")
key = os.environ.get("DEEPSEEK_API_KEY", "")
print("DEEPSEEK_API_KEY =>", "已设置" if key.startswith("sk-") else "缺失或格式不对")
try:
import langchain
import langgraph
from langchain.chat_models import init_chat_model
from langchain.agents import create_agent
print("langchain / langgraph / create_agent => OK")
except ImportError as e:
raise SystemExit(f"依赖没装全: {e}\n请在仓库根目录执行 pip install -r requirements.txt")
if not key.startswith("sk-"):
raise SystemExit("请在仓库根目录 .env 写入 DEEPSEEK_API_KEY=sk-...")
print("环境检查通过,可以进入 L01。")
python scratch.py
常见翻车
| 现象 | 处理 |
|---|---|
python 不是命令 | Windows 试 py --version,或把 Python 加入 PATH |
找不到 .env | 先 cd 到仓库根目录再运行 |
No module named langchain | 装依赖的 Python 和运行用的不是同一个,用 python -m pip install -r requirements.txt |
| key 无效 | 平台复制完整 sk- 开头,不要多空格、不要用引号包一层(.env 里一般不用引号) |
练习
- 把
.env里的 key 故意写错再跑上面的脚本,确认它会报「缺失或格式不对」。改回来。 - 用一句话向自己解释:工具是谁执行的?模型还是你的 Python 进程?
本章验收
-
python scratch.py打印「环境检查通过」 - 能口头区分:模型、工具、Agent
对照仓库(选修):01-快速入门/Install安装.py(概念笔记)
下一课:第一次调用模型
JavaWeb
Spring
MyBatis
linux
消息队列
JavaSE
工具
片段
AI
搜索
dy