--- title: "2.1 AI 编程的经济学" description: "理解 Token 机制与成本优化" chapter: "第二章" priority: "🔴" --- # 2.1 AI 编程的经济学 🔴 > **阅读完本节后,你将会收获:** > > - 理解 Token 是 AI 模型的计价单位,掌握输入/输出 Token 的计费机制 > - 建立成本意识,学会通过精准提示词控制 AI 上下文范围来优化成本 > - 掌握提示词优化的核心原则:指定路径、明确范围、删除客套话 > - 理解上下文大小与花费的关系,学会避免不必要的 Token 消耗 > 序言中提到的"模型决定代码能力的速度和上限",以及成本意识在 AI 开发中的重要性。**Token 就是钱**,每次调用模型都在消耗真实的费用。 > 工具安装与配置详见:[1.6 模型与工具](../01-environment-setup/06-models-and-tools.md) ## 前置知识 ::: tip 什么是 LLM LLM(Large Language Model,大语言模型)是基于海量文本训练的 AI 模型,能够理解和生成人类语言、代码等。 ::: ::: tip 什么是 Token Token 是 AI 模型的计价单位,也是模型处理文本的基本单元。 **换算关系**: - 1 个汉字 ≈ 1 Token - 1 个英文单词 ≈ 0.75 Token - 1 行代码 ≈ 5-15 Token 模型按照输入(Prompt)和输出(Completion)的 Token 数量计费。 ::: **试试 Token 计算器,直观感受文本和 Token 的关系:** ::: tip 什么是 输入/输出 Token **输入 Token(Input)**:你发送给模型的内容(提示词、代码、上下文) **输出 Token(Output)**:模型生成的内容(代码、解释、回答) **花费怎么算**:输入和输出的 Token 数量都会计费,输出通常比输入贵一些。 但作为用户,你不需要记住具体单价——工具会显示每次调用的花费,用完了充值即可。重要的是理解:**上下文越大,花费越高**。 ::: ::: tip 什么是 Context Window Context Window 是模型能处理的上下文长度上限,以 Token 为单位。GLM 支持 200K 上下文,足够处理完整的大型文件和长对话。 **超出上限会自动压缩**:当上下文接近或超出限制时,模型会自动压缩早期的对话内容,保留最新和最相关的信息。这可能导致部分历史细节被简化或忽略。 ::: ## 核心概念 ### 花费从哪里来 ```mermaid graph LR A[你的请求] --> B[AI 读取上下文] B --> C[模型处理] C --> D[生成回答] B --> E[输入 Token
项目文件 + 代码 + 历史对话] D --> F[输出 Token
生成的代码 + 解释] style E fill:#e1f5fe style F fill:#fff3e0 ``` **核心理解**: - 单次调用很便宜,但累积起来也是钱 - **上下文越大 = 花费越高**:读取整个项目 vs 只读一个文件,差异是数量级的 - 频繁调试时要注意:循环修改会不断累积 Token ::: tip 如何控制花费 大多数 AI 编程工具都会: - 显示每次调用的 Token 数和花费 - 提供套餐或使用额度 - 额度用完后提醒你充值 **你不需要记住具体单价**,但需要养成好习惯(见下一节)来减少不必要的消耗。 ::: ## 成本与质量优化策略 **关键认知**:提示词本身通常很少,**真正消耗 Token 的是 AI 读取的上下文**——也就是为了让 AI 理解你的需求而必须加载的项目文件、代码、历史对话等。 因此,提示词优化不是在"打磨话术",而是**减少 AI 需要读取的上下文范围**,同时**控制输出长度**。 **上下文范围既影响成本,也影响质量**:精准的上下文让 AI 聚焦问题,输出更准确;无关的上下文会分散注意力,增加错误概率。 ### 优化原则 | 原则 | 说明 | |-----|------| | **指定路径** | 指定文件/文件夹路径,缩小 AI 搜索范围 | | **明确范围** | "登录功能有问题"比"项目有问题"更聚焦 | | **删除客套** | 无需"请"、"谢谢"、"如果可能的话" | | **直接说事** | 直接描述任务,无需客套和铺垫 | ### 示例对比 ``` ❌ 模糊提示(AI 读取更多上下文): "帮我看看项目里有没有什么问题,然后修复它" → AI 不确定从哪里开始,可能读取大量无关文件 ✅ 精准提示(AI 聚焦相关区域): "帮我看看登录功能有什么问题,然后修复它" → AI 自己定位登录相关文件,只读取必要上下文 → 或者更直接:"修复 src/auth/login.ts 第42行的类型错误:user可能为null" ``` ## 实战建议 ### 关注使用情况 AI 编程工具通常会显示每次调用的 Token 数和花费。你也可以在对应模型的开放平台查看详细使用情况。 **额度用完就充值**——就像话费流量一样,不需要过度焦虑,但要有意识地避免浪费。 ### 成本意识检查清单 - 指定文件/文件夹路径 - 指明功能范围 - 删除客套话 - 定期清理对话历史 ## 常见问题 ### Q1: Token 超限怎么办? 通常不会超限 —— AI 会自动切分读取大文件。但如果遇到超限错误,说明项目规模已经需要工程化了: - 考虑拆分项目(monorepo 或微服务) - 清理对话历史,开启新会话 - 使用 `.gitignore` 排除不需要 AI 读取的文件 ### Q2: 为什么有时候模型会瞎编? 这是"幻觉"问题,所有模型都有。解决方法:提供明确的上下文,让 AI 不确定时明确说出来,等待你的确认,而不是强行编造。 ### Q3: GLM 能力够用吗? 够用。 ## 核心理念 **上下文决定花费和质量,直接比客套更重要。** 指定路径或功能范围,让 AI 只读取必要上下文。精准上下文既省钱,又让输出更准确。 ## 相关内容 - 前置:[1.6 模型与工具](../01-environment-setup/06-models-and-tools.md) - 详见:[2.2 VibeCoding 工作流](./02-vibecoding-workflow.md)