欢迎光临
我们一直在努力

【三个月 AI Agent 实战学习】Day 1 详细展开:环境搭建、API 初体验与 Token 认知

Day 1 详细展开:环境搭建、API 初体验与 Token 认知

欢迎来到 AI Agent 学习之旅的第一天!今天的目标非常明确:把工具准备好,跑通第一个大模型 API 调用,并理解 Token 这个概念。这是后续所有项目的地基,请务必亲手敲下每一行代码。


在这里插入图片描述

一、今日学习目标

  • 安装并配置 Python 开发环境(推荐使用虚拟环境)。
  • 安装 openai SDK 和 tiktoken 库。
  • 获取一个国内可用的大模型 API Key(推荐 DeepSeek,便宜且兼容 OpenAI 格式;如有 OpenAI Key 也可)。
  • 编写并成功运行第一个 API 调用脚本,让模型说“你好”。
  • 理解什么是 Token,为什么它重要,并能计算中英文文本的 Token 数量差异。
  • 初步了解 Token 的切分原理(BPE 分词)。

  • 二、详细实现步骤

    步骤 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 格式。

  • 打开 DeepSeek 开放平台。
  • 注册/登录账号。
  • 在左侧菜单找到“API Keys”,点击“创建 API Key”,复制保存(只显示一次!)。
  • 给账户充值几块钱即可开始测试。
  • 如果你有 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) 算法。简单理解:

  • 先将所有文本拆成单个字符(或字节)。
  • 统计相邻字符对出现的频率,将最高频的组合合并成一个新的“词元”。
  • 不断重复合并,直到达到预设的词汇表大小(如 GPT 系列约为 10 万个词元)。
  • 因此,像“今天”这种高频出现的词会被合并成一个 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 分词原理

    今日作业(必做):

  • 修改 hello_llm.py,让模型用英语、法语、日语各说一句“你好”。
  • 尝试设置不同的 temperature 值(0, 0.5, 1.5),观察模型回答同一问题(例如“讲个笑话”)时的差异。
  • 自己写一段 100 字左右的中文和英文段落,用 tiktoken 计算 Token 数,感受差异。
  • 明日预告: 我们将深入 Transformer 的核心——自注意力机制(Self-Attention),用直觉理解模型是如何“读懂”上下文的。

    加油,有任何问题欢迎随时提问!

    赞(0)
    未经允许不得转载:171主机测评 » 【三个月 AI Agent 实战学习】Day 1 详细展开:环境搭建、API 初体验与 Token 认知
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址