第03课:Kimi 模型选型全景与成本计算

“选错模型,做出来的工具要么太贵客户不买单,要么太便宜但质量不够用。选型是在启动项目之前就要做的决策,改起来代价很高。”


3.1 Kimi 全系列模型一览(2026年6月)

模型名称 上下文 输出速度 思考模式 多模态 定位
kimi-k2.7-code 256K 标准 强制开启 代码专项
kimi-k2.7-code-highspeed 256K 180-260 T/s 强制开启 代码·高速
kimi-k2.6 256K 标准 可选 ✓(图文) 通用旗舰
kimi-k2.5 256K 标准 可选 ✓(图文) 上一代通用
moonshot-v1-128k 128K 长文本·低成本
moonshot-v1-32k 32K 日常任务·最低价
moonshot-v1-8k 8K 最快 短文本·超低价

3.2 定价明细(2026年6月)

K2 系列(主力模型)

模型 输入 输出 缓存命中输入
kimi-k2.6 $0.95 / M token $4.00 / M token $0.16 / M token
kimi-k2.7-code $0.95 / M token $4.00 / M token $0.19 / M token
kimi-k2.7-code-highspeed 略高 略高

moonshot-v1 系列(性价比选择)

模型 输入 输出
moonshot-v1-128k 低于 K2 低于 K2
moonshot-v1-32k 更低 更低
moonshot-v1-8k 最低 最低

注:moonshot-v1 系列精确定价请以 platform.kimi.ai/docs/pricing 为准,K2 系列定价已在本书参考资料中核实。


3.3 成本计算公式

单次调用成本 = 输入token × 输入单价 + 输出token × 输出单价
(缓存命中时,缓存部分输入按缓存价计算)

Token 换算参考:

  • 1个中文汉字 ≈ 1.5 token
  • 1个英文单词 ≈ 1.3 token
  • 1K中文字符 ≈ 1500 token

典型场景成本测算(K2.6):

场景 输入规模 输出规模 单次成本($) 收费建议
一份500字文案 ~750 T ~750 T $0.0040 ¥5–20
一页合同审查 ~2,000 T ~1,000 T $0.0059 ¥50–200
10页报告摘要 ~15,000 T ~3,000 T $0.026 ¥100–500
50页长合同 ~75,000 T ~10,000 T $0.111 ¥500–2000
100页技术文档 ~150,000 T ~20,000 T $0.222 ¥1000–5000

关键认知:即使是100页的技术文档分析,API 成本约 $0.22(≈¥1.6),向客户收 ¥1000+ 是完全合理的。毛利率在99%以上。


3.4 场景选型决策树

你的任务是什么?
│
├─ 写代码 / 分析代码 / 技术文档 ──→ kimi-k2.7-code
│  (需要最快响应速度)        ──→ kimi-k2.7-code-highspeed
│
├─ 图片 + 文字混合理解
│  (产品图、设计稿、截图分析)──→ kimi-k2.6
│
├─ 通用长文本(合同/报告/书稿)
│  ├─ 需要超强推理(法律/金融)──→ kimi-k2.6
│  └─ 需要压低成本(大批量)   ──→ moonshot-v1-128k
│
├─ 多步骤 Agent / 自动化工作流 ──→ kimi-k2.6
│
└─ 短文本高频任务(分类/翻译) ──→ moonshot-v1-32k 或 8k

3.5 三个接单方向的模型配置

接单方向 A:文档审查服务(合同/报告/简历)

# 配置:K2.6 处理复杂分析,moonshot-v1-128k 处理简单摘要
REVIEW_CONFIG = {
    "complex": {                    # 合同审查、财务分析
        "model": "kimi-k2.6",
        "temperature": 0.2,
        "max_tokens": 3000
    },
    "summary": {                    # 报告摘要、简历提取
        "model": "moonshot-v1-128k",
        "temperature": 0.3,
        "max_tokens": 2000
    }
}

报价逻辑

  • 合同审查(<20页):¥200–500/份
  • 报告摘要(任意长度):¥50–150/份
  • 批量处理(>10份):¥100–300/份(打包价)

接单方向 B:代码辅助服务

# 配置:K2.7 Code 处理所有代码任务
CODE_CONFIG = {
    "model": "kimi-k2.7-code",
    "temperature": 0.2,             # 代码需要低温度保证稳定性
    "max_tokens": 4000
}

报价逻辑

  • 代码 review(<500行):¥200–500/次
  • Bug 定位(描述问题):¥100–300/次
  • 代码注释/文档生成:¥100–200/次
  • 迁移旧代码到新框架:¥500–2000/项目

接单方向 C:SaaS 工具(多客户持续使用)

# 配置:用缓存压成本,K2.6 主力
SAAS_CONFIG = {
    "model": "kimi-k2.6",
    "system_prompt": "你是专业文案顾问...",  # 固定系统提示,走缓存
    "temperature": 0.7
}
# 缓存命中后输入成本从 $0.95 降至 $0.16/M(降 83%)

报价逻辑

  • 订阅制:¥99–299/月/用户
  • 按使用量:¥0.5–2/次调用
  • 企业版:¥1000–5000/月(含定制化)

3.6 成本控制实战工具

工具一:调用前估算 token 数

import tiktoken  # OpenAI 开源的 tokenizer,对 Kimi 估算精度可接受

def estimate_tokens(text: str) -> int:
    enc = tiktoken.get_encoding("cl100k_base")
    return len(enc.encode(text))

def estimate_cost(input_text: str, expected_output_tokens: int = 500,
                  model: str = "kimi-k2.6") -> dict:
    input_tokens = estimate_tokens(input_text)
    
    prices = {
        "kimi-k2.6":        {"input": 0.95, "output": 4.00, "cache": 0.16},
        "kimi-k2.7-code":   {"input": 0.95, "output": 4.00, "cache": 0.19},
        "moonshot-v1-128k": {"input": 0.30, "output": 1.00, "cache": None},  # 估算值
    }
    
    p = prices.get(model, prices["kimi-k2.6"])
    input_cost = input_tokens * p["input"] / 1_000_000
    output_cost = expected_output_tokens * p["output"] / 1_000_000
    
    return {
        "input_tokens": input_tokens,
        "estimated_output_tokens": expected_output_tokens,
        "estimated_cost_usd": round(input_cost + output_cost, 6),
        "model": model
    }

# 使用
doc = open("contract.txt").read()
estimate = estimate_cost(doc, expected_output_tokens=2000, model="kimi-k2.6")
print(f"预计消耗:{estimate['input_tokens']} tokens,成本:${estimate['estimated_cost_usd']}")

工具二:批量处理成本汇总

import time
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["MOONSHOT_API_KEY"],
    base_url="https://api.moonshot.ai/v1"
)

class CostTracker:
    def __init__(self):
        self.total_input = 0
        self.total_output = 0
        self.call_count = 0
    
    def track(self, usage):
        self.total_input += usage.prompt_tokens
        self.total_output += usage.completion_tokens
        self.call_count += 1
    
    def summary(self, model="kimi-k2.6"):
        input_cost = self.total_input * 0.95 / 1_000_000
        output_cost = self.total_output * 4.00 / 1_000_000
        print(f"\n=== 成本汇总 ===")
        print(f"调用次数:{self.call_count}")
        print(f"总输入:{self.total_input:,} tokens (${input_cost:.4f})")
        print(f"总输出:{self.total_output:,} tokens (${output_cost:.4f})")
        print(f"总成本:${input_cost + output_cost:.4f}")

# 批量处理示例
tracker = CostTracker()
documents = ["合同1内容...", "合同2内容...", "合同3内容..."]

for i, doc in enumerate(documents):
    response = client.chat.completions.create(
        model="kimi-k2.6",
        messages=[
            {"role": "system", "content": "你是合同审查专家"},
            {"role": "user", "content": f"审查以下合同:\n\n{doc}"}
        ]
    )
    tracker.track(response.usage)
    print(f"第{i+1}份处理完成")
    time.sleep(0.5)  # 避免触发速率限制

tracker.summary()

3.7 常见选型误区

误区一:所有任务都用 K2.7 Code

K2.7 Code 强制思考,延迟更高、输出更长。用它来做"写一条广告语"是杀鸡用牛刀,既慢又贵。只在真正需要代码质量保证的场景才用。

误区二:为了省钱全用 moonshot-v1-8k

moonshot-v1-8k 的上下文只有 8K(约5000中文字),用它处理稍长一点的合同,文档会被截断导致分析不完整。便宜但不能完成任务,是真的亏钱。

误区三:忽视 K2.6 的缓存优势

很多开发者调用 Kimi 时没有启用 prompt caching,但 K2.6 的缓存命中价格是 $0.16/M,只有普通输入的17%。对于系统 prompt 固定的工具,这意味着成本可以降到原来的零头。下一课专门讲这个。

误区四:不测算实际 token 消耗

很多人不知道自己的工具每次调用实际消耗多少 token。第一单做完发现成本超出预期,钱都被 API 吃掉了。在定价前一定要先测算实际消耗。


本课行动清单

  • [ ] 确定自己第一个工具的模型选择(参考 3.4 决策树)
  • [ ] 用 estimate_cost() 函数估算一次你的目标任务成本
  • [ ] 在平台控制台找到定价页,确认当前实时价格
  • [ ] 想好你的定价区间:API成本 × 100倍 = 最低报价基准

→ 继续阅读:第04课_长文本工具开发与接单.md