适合前后端/测试等有编程基础的同学,手把手带你写出第一个AI程序

前言

在搞清楚AI Agent是什么之后,很多同学卡在了第一步——“我到底该怎么调用大模型的API?”

去网上搜教程,要么是OpenAI的纯英文文档看着头大,要么是代码跑不通各种报错。作为一个从传统后端转AI的开发者,我太懂这种痛苦了。

今天这篇文章,就是给你铺一条平坦的路。我会用最直白的语言、最完整的代码,带你:

  1. 搞定API Key和环境配置(3分钟上手)
  2. 写出第一个API调用程序(复制粘贴就能跑)
  3. 彻底搞懂temperature、top_p等核心参数
  4. 掌握同步调用和流式调用的区别与写法
  5. 学会处理常见的API报错

全文约4500字,建议打开你的IDE跟着敲一遍。

一、环境准备:5分钟搞定API Key和SDK

1.1 选哪个模型?2026年最新推荐

2026年的国产大模型已经非常成熟,性价比吊打OpenAI。对于个人开发者,我强烈建议从以下三个里面选:

模型 价格(输入/输出,$/百万token) 免费额度 推荐理由
DeepSeek V4-Flash $0.003 / $0.015 注册即送500万token 极致的性价比,适合大批量调用
智谱 GLM-4.7-Flash 完全免费! 无限免费 白嫖党的终极福音
通义千问 Qwen3.6-Plus $0.58 / $1.74 新用户送7000万token 中文理解能力顶级

💡 个人建议:先注册一个DeepSeek智谱的账号。好消息是,这三家都完全兼容OpenAI的API格式,所以代码几乎是一样的。

1.2 注册并获取API Key

DeepSeek(推荐新手)

  1. 访问 platform.deepseek.com
  2. 手机号注册登录
  3. 进入“API Keys”页面,点击“创建API Key”
  4. 复制保存(只出现一次!)

智谱(完全免费)

  1. 访问 open.bigmodel.cn
  2. 注册后进入“API Keys”管理
  3. 创建新的Key

通义千问(福利多)

  1. 访问 bailian.console.aliyun.com
  2. 登录阿里云账号(需实名)
  3. 在“模型广场”开通对应模型

1.3 安装Python SDK

打开终端(命令行),执行:

pip install openai

如果你是国内网络,可以用清华镜像加速:

pip install openai -i https://pypi.tuna.tsinghua.edu.cn/simple

安装完成后,我们开始写代码!

二、你的第一个API调用:Hello AI World

2.1 最简代码(DeepSeek版)

新建一个 hello_ai.py 文件,写入以下代码:

from openai import OpenAI

# 1. 初始化客户端(把下面的Key换成你自己的)
client = OpenAI(
    api_key="sk-你的DeepSeek_API_Key",  # 替换这里!!!
    base_url="https://api.deepseek.com"
)

# 2. 发起聊天请求
response = client.chat.completions.create(
    model="deepseek-v4-flash",  # 模型名称
    messages=[
        {"role": "system", "content": "你是一个乐于助人的AI助手"},
        {"role": "user", "content": "你好,请用一句话介绍你自己"}
    ]
)

# 3. 打印回复
print(response.choices[0].message.content)

运行代码

python hello_ai.py

预期输出

你好!我是DeepSeek,一个由深度求索公司开发的AI助手,随时准备为你解答问题和提供帮助。

🎉 恭喜!你已经成功调用了大模型API!

2.2 切换模型只需改两行(通义千问版)

from openai import OpenAI

client = OpenAI(
    api_key="sk-你的通义API_Key",  # 百炼平台获取
    base_url="https://dashscope.aliyuncs.com/compatible-mode/v1"
)

response = client.chat.completions.create(
    model="qwen3.6-plus",  # 通义最新主力模型
    messages=[{"role": "user", "content": "你好"}]
)

print(response.choices[0].message.content)

2.3 切换模型只需改两行(智谱免费版)

client = OpenAI(
    api_key="你的智谱API_Key",
    base_url="https://open.bigmodel.cn/api/paas/v4"
)

response = client.chat.completions.create(
    model="GLM-4.7-Flash",  # 完全免费!
    messages=[{"role": "user", "content": "你好"}]
)

⚠️ 避坑指南

  • 通义千问:拿到Key后,一定要去百炼控制台的“模型广场”手动“开通”对应模型,否则会报 ModelNotFound
  • DeepSeek:老模型名 deepseek-chat 即将弃用,请使用 deepseek-v4-flashdeepseek-v4-pro
  • API Key:如果提示 AuthenticationError,检查Key是否复制了多余的空格。

三、深入理解核心参数:temperature、top_p、max_tokens

很多同学照着网上的代码抄,却不知道这几个参数是什么意思。下面我用最通俗的话讲清楚。

3.1 temperature(温度):控制“创意度”

取值范围:0 ~ 2(不同模型略有差异)

  • 值越低(趋近0) :输出越确定、保守、严谨。就像一个照本宣科的公务员,每次回答几乎都一样。适合事实问答、代码生成、数学计算
  • 值越高(趋近2) :输出越随机、多样、有创意。就像一个天马行空的艺术家,每次回答都不一样。适合头脑风暴、写诗、创意文案

代码示例

# 低温度:严谨模式
response_strict = client.chat.completions.create(
    model="deepseek-v4-flash",
    messages=[{"role": "user", "content": "1+1等于几?"}],
    temperature=0.1
)

# 高温度:创意模式
response_creative = client.chat.completions.create(
    model="deepseek-v4-flash",
    messages=[{"role": "user", "content": "给猫写一首诗"}],
    temperature=1.5
)

我的建议

  • 日常对话:0.7 ~ 1.0
  • 代码生成/数据提取:0.1 ~ 0.3
  • 创意写作:1.2 ~ 1.8

3.2 top_p(核采样):控制“词汇丰富度”

取值范围:0 ~ 1

  • 值越低(如0.1) :只从概率最高的少数词里选,输出集中、稳定
  • 值越高(如0.9) :从概率较高的多数词里选,输出丰富、多样

⚠️ 黄金法则只调 temperature 或 top_p 中的一个,不要同时大幅度调整两个!一般建议固定 top_p=0.95,只调 temperature

3.3 max_tokens:控制“输出长度”

限制模型回答的最大长度(注意:这是输出token数,不是字数)。

  • 1个中文字符 ≈ 1.5 ~ 2 个token
  • 1个英文单词 ≈ 1.2 ~ 1.5 个token

示例:限制回答不超过200个token。

response = client.chat.completions.create(
    model="deepseek-v4-flash",
    messages=[{"role": "user", "content": "详细介绍一下AI Agent"}],
    max_tokens=200  # 大约输出100-150个中文字
)

3.4 完整参数调优示例

response = client.chat.completions.create(
    model="deepseek-v4-flash",
    messages=[
        {"role": "system", "content": "你是一位资深Python工程师"},
        {"role": "user", "content": "写一个快速排序算法"}
    ],
    temperature=0.2,      # 低温度,保证代码准确
    top_p=0.95,          # 保持词汇多样性
    max_tokens=500,      # 限制代码长度
    frequency_penalty=0.1 # 减少重复词(可选)
)

四、同步调用 vs 流式调用(Streaming)

4.1 同步调用(Sync)

前面写的都是同步调用——一次性等所有结果生成完再返回

  • 优点:代码简单,适合批处理
  • 缺点:用户要干等着,体验不好

4.2 流式调用(Streaming)

流式调用就像打字机一样,一个字一个字地往外蹦。用户能实时看到AI在“思考”和“输出”,体验极佳。

代码实现(只需加 stream=True):

stream = client.chat.completions.create(
    model="deepseek-v4-flash",
    messages=[{"role": "user", "content": "写一篇200字的散文"}],
    stream=True  # 开启流式输出
)

# 逐块接收
for chunk in stream:
    # 每次拿到一个数据块
    delta = chunk.choices[0].delta
    if delta.content is not None:
        print(delta.content, end="", flush=True)  # 不换行,实时打印

运行效果:你会看到文字像AI在打字一样,一个一个蹦出来。

💡 实战建议:在Web应用、聊天机器人中,务必使用流式调用。用户非常讨厌转圈等待。

五、异常处理:让你的程序更健壮

调用API时经常会遇到各种报错,新手容易一脸懵。加上异常处理,程序才不会轻易崩溃。

from openai import OpenAI
from openai import APIError, APIConnectionError, RateLimitError

client = OpenAI(api_key="你的Key", base_url="https://api.deepseek.com")

try:
    response = client.chat.completions.create(
        model="deepseek-v4-flash",
        messages=[{"role": "user", "content": "你好"}],
        temperature=0.7,
        max_tokens=100
    )
    print(response.choices[0].message.content)
    
except RateLimitError:
    print("❌ 请求太频繁,被限流了!请稍后再试。")
    
except APIConnectionError:
    print("❌ 网络连接失败,请检查你的网络或代理设置。")
    
except APIError as e:
    print(f"❌ API服务端错误:{e}")
    
except Exception as e:
    print(f"❌ 未知错误:{e}")

常见错误码速查表

错误码 含义 解决方案
401 认证失败 检查API Key是否正确,有没有前缀sk-
429 请求过频 降低请求频率,或用指数退避重试
500 服务端错误 通常是模型负载过高,稍后重试
404 模型不存在 检查模型名称是否拼写正确、是否开通

六、实战小练习(作业)

学到这里,你已经有能力独立完成一个小工具了。试试这个:

练习:写一个“文案生成器”

要求:

  1. 用户输入产品名称和卖点(如:“智能手表,长续航、健康监测”)
  2. AI自动生成3条不同风格的营销文案(朋友圈风格、小红书风格、正式广告风格)
  3. 使用 temperature=0.8 保证创意性
  4. 使用流式输出提升体验

提示代码框架

product = input("请输入产品名称和卖点:")

response = client.chat.completions.create(
    model="deepseek-v4-flash",
    messages=[
        {"role": "system", "content": "你是一位资深营销文案专家,擅长多种风格"},
        {"role": "user", "content": f"为以下产品生成3条不同风格的文案:{product}"}
    ],
    temperature=0.8,
    stream=True
)

for chunk in response:
    # ... 输出逻辑

结语

今天我们完成了AI Agent开发中最基础、最重要的一步——成功调用大模型API

你现在已经掌握了:

  • ✅ 如何注册并获取国内主流大模型的API Key
  • ✅ 使用OpenAI兼容格式调用DeepSeek/通义/智谱
  • ✅ 调整temperature、top_p等参数控制输出质量
  • ✅ 区分同步调用和流式调用
  • ✅ 优雅地处理API异常

下一篇(第4节),我们将正式进入 Prompt Engineering(提示词工程) 的核心技巧。你会发现:同样的模型,不同的提示词,效果天差地别

如果觉得有帮助,欢迎点赞、收藏、评论三连!我们下一篇见!

📌 本文是《AI Agent开发实战》课程第3节的完整内容,系列文章持续更新中,关注我不迷路!

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐