Day 1 详细展开:环境搭建、API 初体验与 Token 认知
欢迎来到 AI Agent 学习之旅的第一天!今天的目标非常明确:把工具准备好,跑通第一个大模型 API 调用,并理解 Token 这个概念。这是后续所有项目的地基,请务必亲手敲下每一行代码。

一、今日学习目标
二、详细实现步骤
步骤 1:准备 Python 环境
首先确保你的电脑上安装了 Python 3.9 或以上版本。在终端(命令行)输入以下命令检查:
python –version
# 或
python3 –version
如果未安装,请前往 python.org 下载安装。
为了避免污染全局环境,强烈建议使用虚拟环境。在你想存放项目的目录下执行:
# 创建项目文件夹
mkdir ai-agent-learning
cd ai-agent-learning
# 创建虚拟环境(Windows 下命令可能为 python -m venv venv)
python3 -m venv venv
# 激活虚拟环境
# macOS / Linux:
source venv/bin/activate
# Windows (cmd):
venv\\Scripts\\activate
# Windows (PowerShell):
venv\\Scripts\\Activate.ps1
激活成功后,命令行前面会出现 (venv) 标识。
步骤 2:安装必要库
在虚拟环境中执行:
pip install openai tiktoken python-dotenv
- openai:官方 Python SDK,兼容 OpenAI 及众多国产大模型 API。
- tiktoken:OpenAI 开源的 Token 计算工具,可用来估算 Token 数量。
- python-dotenv:用于管理环境变量,避免把密钥硬编码在代码里。
步骤 3:获取 API Key
由于 OpenAI 在国内访问不便且需要外币卡,推荐使用 DeepSeek(深度求索)的 API,它对中文支持极好,价格低廉,且完全兼容 OpenAI SDK 格式。
如果你有 OpenAI 官方 Key,也可以直接使用,只需修改 base_url 和模型名。
步骤 4:配置环境变量
在项目根目录下创建一个名为 .env 的文件(注意没有后缀),内容如下:
DEEPSEEK_API_KEY=你的_API_Key_粘贴在这里
再创建一个 .gitignore 文件(如果以后用 Git),添加一行:
.env
这样就不会把密钥提交到代码仓库。
步骤 5:编写第一个 API 调用脚本
新建一个 Python 文件,比如 hello_llm.py,写入以下代码:
import os
from dotenv import load_dotenv
from openai import OpenAI
# 加载 .env 文件中的环境变量
load_dotenv()
# 初始化客户端,指向 DeepSeek 的端点
client = OpenAI(
api_key=os.getenv("DEEPSEEK_API_KEY"),
base_url="https://api.deepseek.com" # 关键!DeepSeek 兼容 OpenAI 格式
)
# 发起一次对话请求
response = client.chat.completions.create(
model="deepseek-chat", # DeepSeek 的对话模型名称
messages=[
{"role": "system", "content": "你是一个乐于助人的助手。"},
{"role": "user", "content": "你好!请用一句话介绍你自己。"}
],
temperature=0.7,
max_tokens=100
)
# 打印模型的回复
print(response.choices[0].message.content)
代码解释:
- OpenAI(…) 初始化客户端,通过 base_url 参数指定 DeepSeek 的 API 地址,因此后续所有调用都会发送到 DeepSeek 的服务器。
- client.chat.completions.create 是 OpenAI 风格的对话补全接口。
- messages 是一个列表,包含 system(设定模型角色)和 user(用户输入)消息。
- temperature 控制随机性(0 最确定,1 更随机),max_tokens 限制回复长度。
运行脚本:
python hello_llm.py
如果一切顺利,你会看到模型返回的一句自我介绍。恭喜你,你已经迈出了 AI Agent 开发的第一步!
步骤 6:理解 Token 与计算 Token 数量
Token 是大语言模型处理文本的最小单元。模型并不是一个字母一个字母地阅读,而是把文本切分成一个个“词元”(Token)。理解 Token 至关重要,因为:
- 计费:API 按 Token 数量收费。
- 上下文窗口:模型一次能处理的总 Token 数有限(例如 DeepSeek-chat 支持 64K),输入+输出都不能超过这个限制。
- 性能:Token 数量直接影响请求速度和成本。
不同语言、不同模型的分词方式不同。一般来说,英文一个单词约等于 1~2 个 Token,而一个中文字符可能对应 1~2 个甚至更多 Token(取决于具体分词器)。我们来实际计算一下。
新建 token_demo.py:
import tiktoken
# 使用 cl100k_base 编码(GPT-3.5/4 使用的编码,DeepSeek 也采用类似 BPE 算法,可近似估算)
enc = tiktoken.get_encoding("cl100k_base")
text_en = "Hello, how are you today?"
text_zh = "你好,今天过得怎么样?"
tokens_en = enc.encode(text_en)
tokens_zh = enc.encode(text_zh)
print(f"英文文本: {text_en}")
print(f"Token 数量: {len(tokens_en)}")
print(f"Token 列表: {tokens_en}\\n")
print(f"中文文本: {text_zh}")
print(f"Token 数量: {len(tokens_zh)}")
print(f"Token 列表: {tokens_zh}\\n")
# 查看每个 Token 对应的文本片段(解码)
print("英文 Token 切分:", [enc.decode([t]) for t in tokens_en])
print("中文 Token 切分:", [enc.decode([t]) for t in tokens_zh])
运行后,你会看到类似输出:
英文文本: Hello, how are you today?
Token 数量: 8
Token 列表: [9906, 11, 1268, 527, 499, 3432, 30]
中文文本: 你好,今天过得怎么样?
Token 数量: 12
Token 列表: [57668, 53901, 3922, 17509, 104, 244, 111, 105, 56845, 220, 102, 239]
英文 Token 切分: ['Hello', ',', ' how', ' are', ' you', ' today', '?']
中文 Token 切分: ['你', '好', ',', '今天', '过得', '怎么', '样', '?']
观察与思考:
- 英文中,标点符号如逗号、问号可能是单独的 Token,单词被切分得较自然。
- 中文里,“今天”、“过得”这样的双字词会被合并成一个 Token,而单字“你”、“好”则是单独 Token。这说明分词器会学习常见的词汇组合。
- 这就是为什么有时候中文文本的 Token 数量比英文多,相同语义下成本可能稍高。
步骤 7:了解 Token 切分原理(BPE 简介)
Token 的切分采用 BPE(Byte Pair Encoding) 算法。简单理解:
因此,像“今天”这种高频出现的词会被合并成一个 Token,而低频词可能被拆成更小的子词甚至字符。这也解释了为什么模型能处理未登录词(OOV)——它能用子词组合表示新词。
三、常见问题与调试
Q1:运行脚本时提示 ModuleNotFoundError: No module named 'openai' → 说明库未安装成功,请确保在虚拟环境中执行了 pip install openai。
Q2:调用 API 时返回 401 或 403 错误 → 检查 .env 文件中的 API Key 是否正确,以及账户是否有余额。
Q3:中文输出乱码 → 确保你的 Python 文件编码为 UTF-8,终端也支持 UTF-8。通常在文件开头加 # -*- coding: utf-8 -*- 可避免。
Q4:tiktoken 对 DeepSeek 的 Token 计算准确吗? → 不完全精确,但 cl100k_base 与 DeepSeek 使用的分词器非常接近,日常估算足够了。DeepSeek 官方也推荐用 tiktoken 进行预估。
四、今日总结与作业
今天你完成了:
- ✅ 搭建了干净的 Python 虚拟环境
- ✅ 成功调用了 DeepSeek 大模型 API
- ✅ 理解了 Token 的概念及其重要性
- ✅ 学会了用 tiktoken 计算 Token 数量
- ✅ 初步了解了 BPE 分词原理
今日作业(必做):
明日预告: 我们将深入 Transformer 的核心——自注意力机制(Self-Attention),用直觉理解模型是如何“读懂”上下文的。
加油,有任何问题欢迎随时提问!





