👆 点击上方蓝字关注我,获取更多干货
🌧️
沈阳 · 阵雨 · 21°C ~ 28°C
🌧 雨天读书日,AI学习不打烊
📋 文章概览
Day50——晚课 API调用实战:用Python调用AI
1
这是「AI零基础学习」系列教程的第50篇,共70篇
2
每天一篇,从概念到实操,陪你走完AI学习之路
3
今天早课我们学习了API的基本概念:API是AI的"外卖接口",让你用代码点AI的"菜"
4
API = Application Programming Interface,是程序之间对话的桥梁
5
调用API三要素:请求地址(endpoint)、身份凭证(API Key)、请求内容(prompt)
📝 6552 字
⏱ 约 16 分钟阅读
📑 深度长文
CHAPTER
📌 本节要点
✦ 这是「AI零基础学习」系列教程的第50篇,共70篇✦ 每天一篇,从概念到实操,陪你走完AI学习之路
这是「AI零基础学习」系列教程的第50篇,共70篇。
每天一篇,从概念到实操,陪你走完AI学习之路。
CHAPTER
📌 本节要点
✦ 不需要你是程序员——照着做,10分钟你就能让AI回…✦ 三个核心要点:✦ 今晚,我们直接上手写代码
今天早课我们学习了API的基本概念:API是AI的"外卖接口",让你用代码点AI的"菜"。三个核心要点:
1. API = Application Programming Interface,是程序之间对话的桥梁
2. 调用API三要素:请求地址(endpoint)、身份凭证(API Key)、请求内容(prompt)
3. 主流AI API:OpenAI、Anthropic、国内的通义千问、百度文心、DeepSeek等
今晚,我们直接上手写代码。不需要你是程序员——照着做,10分钟你就能让AI回答你的第一个问题。
CHAPTER
03实操一:准备环境(5分钟)CHAPTER · 章节内容
📌 本节要点
✦ python3 --version✦ 看到版本号如 Python 3.11.x就说明已经…✦ pip3 install openai
安装Python
大多数电脑已经有Python了。打开终端(Windows按Win+R输入cmd,Mac打开"终端"),输入:
看到版本号(如 Python 3.11.x)就说明已经安装好了。
如果没有安装:
- Windows:去 python.org 下载安装包,安装时勾选"Add Python to PATH"
- Mac:终端输入 brew install python3(需先安装Homebrew)
- Linux:sudo apt install python3 python3-pip(Ubuntu/Debian)
安装OpenAI库
在终端输入:
看到 Successfully installed 就搞定了。
为什么用OpenAI库? 因为它的API格式是事实标准,很多国产大模型(DeepSeek、通义千问、月之暗面等)都兼容这个格式。学会一个,就能调用一大片。
CHAPTER
04实操二:第一个AI调用(10分钟)CHAPTER · 章节内容
📌 本节要点
✦ 1. 注册并登录✦ 2. 点击左侧"API Keys"✦ 3. 点击"创建API Key"
获取API Key
去 platform.deepseek.com 注册账号(推荐DeepSeek,便宜又好用):
- 注册并登录
- 点击左侧"API Keys"
- 点击"创建API Key"
- 复制保存(只显示一次!)
小贴士:DeepSeek新用户有免费额度,够你练习很久。OpenAI需要海外信用卡,国内用户建议先用DeepSeek入门。
写你的第一段代码
新建一个文件 my_first_ai.py,把下面代码粘贴进去:
Terminal
from openai import OpenAI
# 创建客户端(替换为你自己的API Key)
client = OpenAI(
api_key="sk-你的API Key粘贴到这里",
base_url="https://api.deepseek.com" # DeepSeek的地址
)
# 发送问题
response = client.chat.completions.create(
model="deepseek-chat",
messages=[
{"role": "user", "content": "用一句话解释什么是API"}
]
)
# 打印回答
print(response.choices[0].message.content)
运行它
Bash
python3 my_first_ai.py
恭喜!你刚刚用代码和AI对话了。屏幕上的回答,就是DeepSeek大模型实时生成的。
看到报错? 最常见的三个问题:
- AuthenticationError:API Key不正确,检查是否有多余空格
- ConnectionError:网络问题,检查是否能访问外网
- ModuleNotFoundError:没装openai库,重新执行 pip3 install openai
CHAPTER
05实操三:给AI设定角色(10分钟)CHAPTER · 章节内容
📌 本节要点
✦ - "你是一位5岁小朋友的爸爸,用最简单的语言解释…✦ print"教练:", chat"我每天只有30分…✦ printresponse.choices0.me…
还记得早课讲的"系统提示词"吗?API调用中,用 system 消息来设定AI的角色:
Code
from openai import OpenAI
client = OpenAI(
api_key="sk-你的Key",
base_url="https://api.deepseek.com"
)
response = client.chat.completions.create(
model="deepseek-chat",
messages=[
# 系统提示:设定AI角色
{"role": "system", "content": "你是一位资深的Python编程教师,回答简洁,喜欢用类比解释概念。"},
# 用户消息
{"role": "user", "content": "for循环和while循环有什么区别?"}
]
)
print(response.choices[0].message.content)
试一试:把system的内容改成不同的角色,感受AI风格的变化:
- "你是一位5岁小朋友的爸爸,用最简单的语言解释"
- "你是一位毒舌但专业的技术博主"
- "你是一位面试官,用反问的方式引导思考"
进阶:多轮对话
API不会自动记住之前的对话,你需要手动把历史消息传进去:
Terminal
# 对话历史
messages = [
{"role": "system", "content": "你是一位健身教练"}
]
def chat(user_input):
messages.append({"role": "user", "content": user_input})
response = client.chat.completions.create(
model="deepseek-chat",
messages=messages
)
reply = response.choices[0].message.content
messages.append({"role": "assistant", "content": reply})
return reply
# 模拟对话
print("教练:", chat("我想减肥,该怎么开始?"))
print("教练:", chat("我每天只有30分钟"))
print("教练:", chat("能给我一个具体的周计划吗?"))
运行后你会发现:AI记得之前说的每一句话,因为它能"看到"完整的对话历史。
CHAPTER
06实操四:调用不同模型(10分钟)CHAPTER · 章节内容
📌 本节要点
✦ 实际使用中,不同模型各有所长:✦ "Kimi", kimi, "moonshot-v…✦ max_tokens=200
DeepSeek只是入门选择。实际使用中,不同模型各有所长:
Terminal
from openai import OpenAI
# DeepSeek —— 便宜、快、中文好
deepseek = OpenAI(api_key="sk-你的DeepSeek-Key", base_url="https://api.deepseek.com")
# 通义千问 —— 阿里出品、免费额度大
qwen = OpenAI(api_key="sk-你的通义Key", base_url="https://dashscope.aliyuncs.com/compatible-mode/v1")
# 月之暗面(Kimi)—— 长文本理解强
kimi = OpenAI(api_key="sk-你的Kimi-Key", base_url="https://api.moonshot.cn/v1")
# 同一个问题,看不同模型的回答
question = "Python的GIL是什么?用大白话解释"
for name, client, model in [
("DeepSeek", deepseek, "deepseek-chat"),
("通义千问", qwen, "qwen-plus"),
("Kimi", kimi, "moonshot-v1-8k"),
]:
resp = client.chat.completions.create(
model=model,
messages=[{"role": "user", "content": question}],
max_tokens=200
)
print(f"\n=== {name} ===")
print(resp.choices[0].message.content)
发现了吗?代码结构完全一样!
只有api_key、base_url和model不同。这就是OpenAI API格式成为标准的原因——学会一个,全部通用。
重要参数速查表
| 参数 |
作用 |
建议值 |
model |
选择哪个模型 |
deepseek-chat、qwen-plus |
temperature |
回答的"创造力" |
0.0(确定性强)~ 1.0(随机性强) |
max_tokens |
最多生成多少字 |
500-2000,按需设置 |
top_p |
另一种控制随机性的方式 |
默认1.0即可 |
stream |
是否流式输出 |
True(打字机效果) |
CHAPTER
07实操五:实战项目——AI邮件润色助手(15分钟)CHAPTER · 章节内容
📌 本节要点
✦ 1. 保留原意,不添加虚构信息✦ 2. 修正语法和用词✦ 3. 优化结构,让逻辑更清晰
把前面学的组合起来,做一个实用小工具:
Code
from openai import OpenAI
client = OpenAI(
api_key="sk-你的Key",
base_url="https://api.deepseek.com"
)
def polish_email(draft, tone="professional"):
"""润色邮件草稿
参数:
draft: 你的邮件草稿
tone: 语气风格
- professional: 正式商务
- friendly: 友好亲切
- concise: 简洁直奔主题
"""
tone_map = {
"professional": "正式、专业、用敬语",
"friendly": "友好、亲切、适当加表情",
"concise": "极简、直奔主题、不废话",
}
response = client.chat.completions.create(
model="deepseek-chat",
messages=[
{"role": "system", "content": f"""你是一位邮件润色专家。
请将用户提供的邮件草稿润色为{tone_map.get(tone, tone)}的风格。
要求:
1. 保留原意,不添加虚构信息
2. 修正语法和用词
3. 优化结构,让逻辑更清晰
4. 返回润色后的邮件全文"""},
{"role": "user", "content": f"请润色这封邮件:\n\n{draft}"}
],
temperature=0.7
)
return response.choices[0].message.content
# 试一试
my_draft = """张总你好,上次开会说的那个项目合作的事情,我这边方案做好了,附件你看看,有问题随时找我。"""
print("=== 原始草稿 ===")
print(my_draft)
print("\n=== 正式商务版 ===")
print(polish_email(my_draft, "professional"))
print("\n=== 友好亲切版 ===")
print(polish_email(my_draft, "friendly"))
print("\n=== 极简版 ===")
print(polish_email(my_draft, "concise"))
运行后,同一封邮件会被润色成三种不同风格。这就是API调用的威力——把AI能力嵌入你的日常工作流。
扩展思路:
- 把文件读取加进去,直接润色本地的邮件草稿
- 加一个"中英互译"按钮,一键翻译
- 接入微信或钉钉机器人,实现自动回复
CHAPTER
1. API调用的核心三步:安装库 → 填API Key → 构造messages调用
2. messages的三种角色:system(设定角色)、user(你的问题)、assistant(AI的回答)
3. 不同模型代码结构相同:只有endpoint和model名称不同,学会一个全通用
4. 实用技巧:temperature控制创造力、max_tokens控制长度、多轮对话需要手动传历史
CHAPTER
入门级:获取DeepSeek API Key,运行"第一个AI调用"代码,看到AI回答
进阶级:修改system提示词,让AI用三种不同风格回答同一个问题,感受角色设定的威力
挑战级:把"邮件润色助手"的代码保存下来,改成"朋友圈文案生成器"或"会议纪要整理器"
CHAPTER
10🚇 地铁深读:API调用的成本密码DEEP READ · 延伸阅读
这个板块专为地铁通勤设计,每篇5-10分钟。不想深读可以跳过,不影响主线学习。
Token:AI的计费单位
你可能注意到API按"token"计费。什么是token?简单理解:1个token ≈ 0.75个英文单词 ≈ 1.5个中文字。
一次API调用的费用 = 输入token数 × 输入单价 + 输出token数 × 输出单价。
以DeepSeek为例(2026年价格):
- 输入:1元/百万token
- 输出:2元/百万token
这意味着什么?一篇1000字的AI回答,成本大约0.003元。便宜到几乎免费。
省钱三招
1. 精简system提示词:system提示每轮对话都发送,写太长会烧钱。把它控制在200字以内。
2. 合理设置max_tokens:不需要长回答时,设个上限(如500),防止AI"话痨"。
3. 选择合适的模型:简单任务用便宜模型(如DeepSeek-chat),复杂推理用强模型(如Claude-4)。用大炮打蚊子是浪费。
API vs 网页版:什么时候用哪个?
| 场景 |
网页版 |
API调用 |
| 偶尔聊天、问问题 |
适合 |
杀鸡用牛刀 |
| 批量处理100封邮件 |
不现实 |
必须用API |
| 嵌入自己的App |
不可能 |
API的主场 |
| 需要精确控制参数 |
受限 |
完全自由 |
| 成本敏感 |
月费制 |
按量计费 |
一句话总结:偶尔用用选网页版,要"批量化、自动化、定制化"就用API。
CHAPTER
明天早上8点:Day51——早课 搭建你的AI聊天机器人
今晚/明晚5点:Day50——晚课 API调用实战(就是本文!)
📌 流程总结

既然看到这里了,如果觉得有用,
随手点个赞、推荐、转发三连吧
THANKS FOR READING