Day 1环境搭建、API 初体验与 Token 认知欢迎来到 AI Agent 学习之旅的第一天今天的目标非常明确把工具准备好跑通第一个大模型 API 调用并理解 Token 这个概念。这是后续所有项目的地基请务必亲手敲下每一行代码。一、今日学习目标安装并配置 Python 开发环境推荐使用虚拟环境。安装openaiSDK 和tiktoken库。获取一个国内可用的大模型 API Key推荐 DeepSeek便宜且兼容 OpenAI 格式如有 OpenAI Key 也可。编写并成功运行第一个 API 调用脚本让模型说“你好”。理解什么是 Token为什么它重要并能计算中英文文本的 Token 数量差异。初步了解 Token 的切分原理BPE 分词。二、详细实现步骤步骤 1准备 Python 环境首先确保你的电脑上安装了 Python 3.9 或以上版本。在终端命令行输入以下命令检查python--version# 或python3--version如果未安装请前往 python.org 下载安装。为了避免污染全局环境强烈建议使用虚拟环境。在你想存放项目的目录下执行# 创建项目文件夹mkdirai-agent-learningcdai-agent-learning# 创建虚拟环境Windows 下命令可能为 python -m venv venvpython3-mvenv venv# 激活虚拟环境# macOS / Linux:sourcevenv/bin/activate# Windows (cmd):venv\Scripts\activate# Windows (PowerShell):venv\Scripts\Activate.ps1激活成功后命令行前面会出现(venv)标识。步骤 2安装必要库在虚拟环境中执行pipinstallopenai tiktoken python-dotenvopenai官方 Python SDK兼容 OpenAI 及众多国产大模型 API。tiktokenOpenAI 开源的 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写入以下代码importosfromdotenvimportload_dotenvfromopenaiimportOpenAI# 加载 .env 文件中的环境变量load_dotenv()# 初始化客户端指向 DeepSeek 的端点clientOpenAI(api_keyos.getenv(DEEPSEEK_API_KEY),base_urlhttps://api.deepseek.com# 关键DeepSeek 兼容 OpenAI 格式)# 发起一次对话请求responseclient.chat.completions.create(modeldeepseek-chat,# DeepSeek 的对话模型名称messages[{role:system,content:你是一个乐于助人的助手。},{role:user,content:你好请用一句话介绍你自己。}],temperature0.7,max_tokens100)# 打印模型的回复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.pyimporttiktoken# 使用 cl100k_base 编码GPT-3.5/4 使用的编码DeepSeek 也采用类似 BPE 算法可近似估算enctiktoken.get_encoding(cl100k_base)text_enHello, how are you today?text_zh你好今天过得怎么样tokens_enenc.encode(text_en)tokens_zhenc.encode(text_zh)print(f英文文本:{text_en})print(fToken 数量:{len(tokens_en)})print(fToken 列表:{tokens_en}\n)print(f中文文本:{text_zh})print(fToken 数量:{len(tokens_zh)})print(fToken 列表:{tokens_zh}\n)# 查看每个 Token 对应的文本片段解码print(英文 Token 切分,[enc.decode([t])fortintokens_en])print(中文 Token 切分,[enc.decode([t])fortintokens_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 的切分采用BPEByte 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 -*-可避免。Q4tiktoken对 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用直觉理解模型是如何“读懂”上下文的。加油有任何问题欢迎随时提问
企业数字化 ERP 产品动态
相关推荐
Mem Reduct 内存清理实战与自动化配置全解 Mem Reduct 内存清理实战与自动化配置全解 【免费下载链接】memreduct Lightweight real-time memory management application to monitor and clean system memory on your computer. 项目地址: https://gitcode.com/gh_mirrors/me/memreduct
Mem Reduct 是一款体积仅几… · 2026/11/6 6:25:12
明日方舟日常自动化:MAA 助手从安装到跑通的完整指南 明日方舟日常自动化:MAA 助手从安装到跑通的完整指南 【免费下载链接】MaaAssistantArknights 《明日方舟》小助手,全日常一键长草!| A one-click tool for the daily tasks of Arknights, supporting all clients. 项目地址: https://gitc… · 2026/11/6 6:25:12
18GB显存重建16张图!ReconViaGen低显存模式与显存优化实战指南 【免费下载链接】ReconViaGen (ICLR2026) ReconViaGen: Towards Accurate Multi-view 3D Object Reconstruction via Generation 项目地址: https://gitcode.com/gh_mirrors/re/ReconViaGen 点击查看 免费下载 ReconViaGen 是 ICLR 2026 提出的多视角 3D 物体重建模… · 2026/11/6 6:25:12
兴城哪里能办电工证真实经历告诉你怎么报名 兴城哪里能办电工证真实经历告诉你怎么报名 学历不高怕报不上名,这是很多想考电工证的朋友最担心的问题。我自己就是从零基础开始考的,当时也怕自己文化程度不够,后来才知道,只要符合基本条件,都能报名。今天我就来聊聊【兴城哪里能办电工证】这个话题,… · 2026/11/7 10:43:10
低压电工证可以替考吗含金量怎么体现 低压电工证可以替考吗含金量怎么体现 急需特种作业证才能上岗找工作,特别是低压电工证,是很多刚入行的朋友最头疼的问题。很多人以为考个证就能进工地、进工厂,但其实背后还有不少细节需要了解,比如低压电工证可以替考吗?含金量到底体现在哪里?今天咱们… · 2026/11/7 10:43:10
呼市在哪里办电工证,全国通用怎么考才不白花钱 呼市在哪里办电工证,全国通用怎么考才不白花钱 怕考不过白交培训费?呼市电工证报考坑多,选对机构是关键。很多人在呼市办理电工证时,因为不了解流程、培训机构良莠不齐,结果钱花了,证没拿到,甚至耽误了工作安排。其实,只要掌握正确的方法,避开常见误… · 2026/11/7 10:43:10
电工证怎么改电话?含金量高的证书怎么申请?别等上岗了才慌 电工证怎么改电话?含金量高的证书怎么申请?别等上岗了才慌 你是不是也像我一样,手头一份电工证,结果发现电话号码写错了,现在找工作、上岗都卡在了这一步?别急,今天我就从全省房建工程从业者的角度,给你说清楚 电工证怎么改电话… · 2026/11/7 10:43:10
电工证抵税有效期怎么算?外省证能转吗?考前押题攻略来了 电工证抵税有效期怎么算?外省证能转吗?考前押题攻略来了 之前考的证在外省能不能转过来?这个问题我听得太多了。特别是河南劳务班组的负责人,每年都会遇到工人拿着外地考的电工证,问能不能在当地用、能不能抵税、有没有有效期限制。今天就围绕【电工证抵… · 2026/11/7 10:43:10
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:27:59
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:28:03
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 10:29:23
澳洲水电工证考试:证书过期了不知道怎么复审延期?电子证书怎么弄? 澳洲水电工证考试:证书过期了不知道怎么复审延期?电子证书怎么弄? 证书过期了不知道怎么复审延期?别慌,很多人在拿到【澳洲水电工证考试】的电子证书后,一不小心就忽略了复审时间,结果证书失效,工作受阻,甚至被单位追责。今天就从【澳洲水电工证考试… · 2026/11/7 0:00:41
电工作业提示版通过率揭秘:怎么考才能一次过? 电工作业提示版通过率揭秘:怎么考才能一次过? 怕考不过白交培训费?别急,今天我就从驻马店应届工程类毕业生的视角,带你全面了解电工作业提示版的考试流程、备考要点和真实通过率,帮你少走弯路、提高一次通过率。… · 2026/11/7 0:00:41
电工证年审报名千万别踩坑 外省证转过来要搞清这几点 电工证年审报名千万别踩坑 外省证转过来要搞清这几点 之前考的证在外省能不能转过来?这个问题是很多电工从业者最关心的,特别是像你这样在商丘从事公路工程的人员,经常需要跨省流动,证书的 有效性 和 可迁移性… · 2026/11/7 0:00:41
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:27:59
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:28:03
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 10:29:23