Day50——晚课 API调用实战:用Python调用AI

作者:

系列教程说明

这是「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)
  • Linuxsudo 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,便宜又好用):

  1. 注册并登录
  2. 点击左侧”API Keys”
  3. 点击”创建API Key”
  4. 复制保存(只显示一次!)

小贴士: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_keybase_urlmodel 不同。这就是OpenAI API格式成为标准的原因——学会一个,全部通用。

重要参数速查表

参数 作用 建议值

|——|——|——–|

model 选择哪个模型 deepseek-chatqwen-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)}的风格。

要求:

  1. 保留原意,不添加虚构信息
  2. 修正语法和用词
  3. 优化结构,让逻辑更清晰
  4. 返回润色后的邮件全文”””},

{“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调用实战(就是本文!)

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注