系列教程说明
这是「AI零基础学习」系列教程的第50篇,共70篇。
每天一篇,从概念到实操,陪你走完AI学习之路。
上篇回顾
今天早课我们学习了API的基本概念:API是AI的”外卖接口”,让你用代码点AI的”菜”。三个核心要点:
1. API = Application Programming Interface,是程序之间对话的桥梁
2. 调用API三要素:请求地址(endpoint)、身份凭证(API Key)、请求内容(prompt)
3. 主流AI API:OpenAI、Anthropic、国内的通义千问、百度文心、DeepSeek等
今晚,我们直接上手写代码。不需要你是程序员——照着做,10分钟你就能让AI回答你的第一个问题。
实操一:准备环境(5分钟)
安装Python
大多数电脑已经有Python了。打开终端(Windows按Win+R输入cmd,Mac打开”终端”),输入:
`bash
python3 –version
`
看到版本号(如 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库
在终端输入:
`bash
pip3 install openai
`
看到 Successfully installed 就搞定了。
为什么用OpenAI库? 因为它的API格式是事实标准,很多国产大模型(DeepSeek、通义千问、月之暗面等)都兼容这个格式。学会一个,就能调用一大片。
实操二:第一个AI调用(10分钟)
获取API Key
去 platform.deepseek.com 注册账号(推荐DeepSeek,便宜又好用):
- 注册并登录
- 点击左侧”API Keys”
- 点击”创建API Key”
- 复制保存(只显示一次!)
小贴士:DeepSeek新用户有免费额度,够你练习很久。OpenAI需要海外信用卡,国内用户建议先用DeepSeek入门。
写你的第一段代码
新建一个文件 my_first_ai.py,把下面代码粘贴进去:
`python
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
实操三:给AI设定角色(10分钟)
还记得早课讲的”系统提示词”吗?API调用中,用 system 消息来设定AI的角色:
`python
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不会自动记住之前的对话,你需要手动把历史消息传进去:
`python
# 对话历史
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记得之前说的每一句话,因为它能”看到”完整的对话历史。
实操四:调用不同模型(10分钟)
DeepSeek只是入门选择。实际使用中,不同模型各有所长:
`python
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(打字机效果) |
实操五:实战项目——AI邮件润色助手(15分钟)
把前面学的组合起来,做一个实用小工具:
`python
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)}的风格。
要求:
- 保留原意,不添加虚构信息
- 修正语法和用词
- 优化结构,让逻辑更清晰
- 返回润色后的邮件全文”””},
{“role”: “user”, “content”: f”请润色这封邮件:nn{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能力嵌入你的日常工作流。
扩展思路:
- 把文件读取加进去,直接润色本地的邮件草稿
- 加一个”中英互译”按钮,一键翻译
- 接入微信或钉钉机器人,实现自动回复
今日总结
1. API调用的核心三步:安装库 → 填API Key → 构造messages调用
2. messages的三种角色:system(设定角色)、user(你的问题)、assistant(AI的回答)
3. 不同模型代码结构相同:只有endpoint和model名称不同,学会一个全通用
4. 实用技巧:temperature控制创造力、max_tokens控制长度、多轮对话需要手动传历史
今日行动项
入门级:获取DeepSeek API Key,运行”第一个AI调用”代码,看到AI回答
进阶级:修改system提示词,让AI用三种不同风格回答同一个问题,感受角色设定的威力
挑战级:把”邮件润色助手”的代码保存下来,改成”朋友圈文案生成器”或”会议纪要整理器”
🚇 地铁深读:API调用的成本密码
这个板块专为地铁通勤设计,每篇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。
下篇预告
明天早上8点:Day51——早课 搭建你的AI聊天机器人
今晚/明晚5点:Day50——晚课 API调用实战(就是本文!)
发表回复