第02课:30分钟跑通第一个API调用
第02课:30分钟跑通第一个API调用
“所有的后续都从这一步开始。跑通第一个调用,你才是真正进入了AI开发的大门,而不只是在看门外的介绍。”
2.1 注册智谱AI开放平台(5分钟)
第一步:通过邀请链接注册,获得2000万Tokens礼包
打开浏览器,访问:
https://www.bigmodel.cn/invite?icode=UDPckrJ0oM9DMmhBVUu29pmwcr074zMJTpgMb8zZZvg%3D
或扫码:

使用手机号注册,国内号码可以直接使用,整个过程3分钟内完成。通过邀请链接注册,账户会自动到账 2000万Tokens 大礼包,足够你把本书所有代码案例全跑一遍还有富余。
第二步:创建API Key
登录后,进入「控制台」→「API Keys」→「新建API Key」。
给Key起个名字(比如"副业工具开发"),复制保存下来。注意:API Key只显示一次,请立刻复制保存到本地文本文件,后续所有代码都需要用到它。
格式类似:sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
2.2 配置Python环境(10分钟)
安装Python(如果尚未安装)
访问 python.org 下载 Python 3.10 或以上版本。安装时勾选「Add Python to PATH」。
验证安装:
python --version
# 应该输出类似:Python 3.10.12
安装智谱AI SDK
打开命令提示符(Windows)或终端(Mac/Linux),运行:
pip install zhipuai
安装完成后验证:
python -c "import zhipuai; print('安装成功')"
配置API Key(推荐方式:环境变量)
不建议把API Key直接写在代码里(容易泄露)。推荐用环境变量:
Windows:
setx ZHIPUAI_API_KEY "你的API_KEY"
设置后重新打开命令提示符生效。
Mac/Linux:
export ZHIPUAI_API_KEY="你的API_KEY"
# 永久生效,加入 ~/.bashrc 或 ~/.zshrc
echo 'export ZHIPUAI_API_KEY="你的API_KEY"' >> ~/.bashrc
2.3 第一个API调用(10分钟)
最小可运行代码
新建一个文件 hello_glm.py,粘贴以下内容:
import os
from zhipuai import ZhipuAI
# 从环境变量读取API Key(安全)
client = ZhipuAI(api_key=os.environ.get("ZHIPUAI_API_KEY"))
# 调用GLM-4 Flash(最便宜的模型,适合测试)
response = client.chat.completions.create(
model="glm-4-flash",
messages=[
{
"role": "user",
"content": "帮我写一条30字以内的蓝牙耳机产品广告语,突出降噪功能"
}
]
)
# 输出结果
print(response.choices[0].message.content)
运行:
python hello_glm.py
预期输出类似:
沉浸音乐,隔绝世界——专业主动降噪,让你的每一刻都纯粹。
费用:这次调用消耗约60个token,费用约¥0.000003(不到一厘钱的万分之三)。
2.4 理解API调用的核心结构
response = client.chat.completions.create(
model="glm-4-flash", # 选择模型
messages=[ # 对话历史(可含多轮)
{"role": "system", "content": "你是专业文案顾问"}, # 系统角色(可选)
{"role": "user", "content": "用户的问题或指令"} # 用户消息
],
temperature=0.7, # 随机性(0=确定,1=最随机),默认0.95
max_tokens=1024, # 最大输出长度(token数)
top_p=0.7 # 另一种控制随机性的参数
)
几个关键参数的实际影响:
model:决定质量和成本。Flash最便宜,GLM-5.2最强temperature:写文案用0.7-0.9(创意),写代码或提取数据用0.1-0.3(确定性)max_tokens:输出越长越贵,根据需要设置上限
2.5 三个进阶调用模式
模式一:流式输出(打字机效果)
适合需要实时显示输出的界面:
response = client.chat.completions.create(
model="glm-4-flash",
messages=[{"role": "user", "content": "写一篇200字的产品介绍"}],
stream=True # 开启流式
)
for chunk in response:
content = chunk.choices[0].delta.content
if content:
print(content, end="", flush=True)
print() # 最后换行
模式二:多轮对话
messages = [{"role": "system", "content": "你是电商文案专家"}]
# 第一轮
messages.append({"role": "user", "content": "帮我为一款保温杯写产品标题"})
response = client.chat.completions.create(model="glm-4-flash", messages=messages)
reply1 = response.choices[0].message.content
messages.append({"role": "assistant", "content": reply1})
print("标题:", reply1)
# 第二轮(基于上文继续)
messages.append({"role": "user", "content": "好的,再为这个产品写5条卖点,每条不超过20字"})
response = client.chat.completions.create(model="glm-4-flash", messages=messages)
print("卖点:", response.choices[0].message.content)
模式三:JSON结构化输出
import json
response = client.chat.completions.create(
model="glm-4-flash",
messages=[{
"role": "user",
"content": """从以下产品描述中提取信息,以JSON格式输出:
产品描述:蓝牙5.0真无线耳机,续航30小时,主动降噪,IPX5防水,重量5g,颜色:黑白两色
输出JSON格式:
{
"name": "产品名",
"features": ["功能列表"],
"weight": "重量",
"colors": ["颜色列表"]
}"""
}],
response_format={"type": "json_object"} # 强制JSON输出
)
data = json.loads(response.choices[0].message.content)
print(data)
2.6 常见报错与解决方法
| 报错信息 | 原因 | 解决方法 |
|---|---|---|
ModuleNotFoundError: zhipuai |
SDK未安装 | 运行 pip install zhipuai |
AuthenticationError |
API Key无效 | 检查Key是否完整,无多余空格 |
RateLimitError |
调用频率过高 | 在循环中加 time.sleep(0.5) |
InvalidRequestError |
参数错误 | 检查model名称、messages格式 |
| 输出为空 | temperature过低或prompt有问题 | 调高temperature,简化prompt |
很多新手卡在第一步"环境配置"上。这里有几个高频问题的详细说明:
问题一:pip install 后还是找不到包
可能原因:你的机器上有多个Python版本,pip和python对应的不是同一个版本。解决方法:用 python -m pip install zhipuai 代替 pip install zhipuai,这样确保是当前python版本在安装。
问题二:在Jupyter Notebook里运行提示环境变量读不到
Jupyter启动时继承的是它启动时的环境变量,如果你在终端里 setx 之后没有重新启动Jupyter,就会读不到。解决方法:重启Jupyter Kernel,或者在Notebook里临时设置:
import os
os.environ["ZHIPUAI_API_KEY"] = "你的API_KEY" # 仅在这个Session有效
问题三:API调用成功但输出质量不符合预期
这通常不是API的问题,而是提示词(prompt)的问题。三个常见的优化方向:
- 加角色设定(“你是资深电商文案顾问”)
- 加具体约束(“30字以内”、“不要使用套话”)
- 加示例(“风格参考:‘沉浸音乐 隔绝世界’”)
2.7 成本计算:你的工具会花多少钱
计算公式:
成本 = (输入token数 + 输出token数) × 单价 / 1000
实际示例:
- 一条500字产品文案:输入约200token + 输出约350token = 550token × ¥0.05/千 ≈ ¥0.028(不到3分钱)
- 一份5页PDF的内容摘要:输入约3000token + 输出约500token = 3500token × ¥0.05/千 ≈ ¥0.175(不到2毛钱)
经验法则:
- 1个中文汉字 ≈ 1.5 个token
- 1000个中文字的输入 ≈ 1500 token ≈ ¥0.075(GLM-4 Flash)
定价参考:你向客户收¥2/篇文案,API成本¥0.03,毛利率98.5%。
2.8 用量监控:不要让成本失控
智谱AI开放平台的控制台里有详细的用量统计,建议养成定期查看的习惯。
特别是在做批量处理工具的时候,如果有一个循环写错了(比如不小心在循环里发了超长的prompt),可能会在几分钟内消耗掉大量token。建议:
设置每日用量报警:在控制台里找到「告警设置」,设置一个每日消费上限(比如¥10),超过后自动通知。
本地打印用量信息:在开发阶段,每次API调用后打印token用量:
response = client.chat.completions.create(...)
# 打印用量
usage = response.usage
print(f"本次用量:输入{usage.prompt_tokens}+输出{usage.completion_tokens}={usage.total_tokens}tokens")
print(f"估算费用:约¥{usage.total_tokens * 0.05 / 1000:.5f}")
养成这个习惯,能让你在工具上线之前就对成本有清晰的掌握,避免"工具用着用着发现亏本"的情况。
单价核算工作表:
| 工具类型 | 平均每次token | GLM-4 Flash成本 | 合理收费 | 毛利率 |
|---|---|---|---|---|
| 短文案生成(100字) | ~300token | ¥0.015 | ¥2 | 99.3% |
| 长文案生成(500字) | ~800token | ¥0.04 | ¥5 | 99.2% |
| 文档摘要(3000字输入) | ~5000token | ¥0.25 | ¥20 | 98.8% |
| 合同审查(GLM-5.2) | ~5000token | ¥2.5 | ¥100 | 97.5% |
| 图像生成(CogView-4) | —(按张) | ¥0.08 | ¥5-20 | 98-99% |
看清楚这张表,你会发现做AI工具的利润率之高是其他任何服务都比不了的。
本课行动清单
- [ ] 注册智谱AI开放平台并获得2000万Tokens礼包
- [ ] 创建API Key并安全保存
- [ ] 运行
hello_glm.py,看到第一次API输出 - [ ] 尝试修改prompt,生成不同类型的文案,感受参数变化的效果
- [ ] 测试一次JSON输出模式
→ 继续阅读:第03课_GLM-5.2能力全景与选型指南.md