《2026 Python零基础入门:用AI主题学编程》第九课:调用免费 LLM API(入门)——用 requests 模块调用免费大模型 API,实现真正的

0 阅读4分钟

大家好,我是链上杯子(掘金:链上杯子)。

失业一年了,天天想着怎么翻身。最近终于把前面学的函数、列表、文件都串起来,能生成提示词了,但还停留在“自己脑补 AI 回复”。今天开始真正调用免费的 LLM API,让程序能直接问模型问题,拿到真实回复。第一次看到代码输出模型生成的文字时,感觉离“写自己的 AI 小工具”只差一步了。

本课目标:学会使用 requests 模块发送 HTTP 请求,调用免费大模型 API(以 DeepSeek 或 Grok 的免费接口为例,实际可替换成你能访问的 API)。通过结合前面生成的提示词,实现“输入 → 生成 Prompt → 调用 API → 显示回复”的完整流程。

注意:本课假设你有可用的免费 API Key(例如 DeepSeek 平台注册免费额度,或其他开源接口,我充值了一元就开始愉快的使用了)。如果没有,可以先用模拟回复测试代码逻辑。

环境准备(额外一步)

  1. 打开命令行(cmd 或终端),输入:

    pip install requests
    

    安装 requests 库(发送网络请求的工具)。

  2. 准备 API Key:去 DeepSeek 官网(deepseek.com)注册账号 → API Keys → 创建一个免费 Key。记下来,后续代码会用到。

核心代码实战

1. 基础 requests 调用 —— 发送简单请求

import requests

# DeepSeek API 示例(替换成你自己的 Key 和 URL)
api_url = "https://api.deepseek.com/v1/chat/completions"
api_key = "你的 DeepSeek API Key"  # 替换成真实的

headers = {
    "Authorization": f"Bearer {api_key}",
    "Content-Type": "application/json"
}

data = {
    "model": "deepseek-chat",
    "messages": [
        {"role": "system", "content": "你是一个简洁的助手。"},
        {"role": "user", "content": "用一句话介绍 Python。"}
    ],
    "temperature": 0.7,
    "max_tokens": 100
}

response = requests.post(api_url, headers=headers, json=data)

if response.status_code == 200:
    result = response.json()
    reply = result["choices"][0]["message"]["content"]
    print("AI 回复:")
    print(reply)
else:
    print("请求失败:", response.status_code, response.text)

运行后(假设 Key 有效),会输出类似:

AI 回复:
Python 是一种高级、解释型、通用编程语言,以简洁、可读性强著称,广泛用于 Web 开发、数据分析、AI 和自动化脚本。

2. 结合前面函数 —— 用 generate_prompt 调用 API

import requests
import json

# 从第六课复用 generate_prompt 函数(这里简化版)
def generate_prompt(role, task, style="", length=300):
    prompt = f"你是一个{role}。\n请完成任务:{task}。"
    if style:
        prompt += f"\n风格:{style}。"
    prompt += f"\n字数约{length}字。请直接输出内容。"
    return prompt

# API 配置(替换 Key)
api_url = "https://api.deepseek.com/v1/chat/completions"
api_key = "sk-你的key"  # 替换

def call_llm(prompt):
    headers = {
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json"
    }

    data = {
        "model": "deepseek-chat",
        "messages": [{"role": "user", "content": prompt}],
        "temperature": 0.8,
        "max_tokens": 800
    }

    try:
        response = requests.post(api_url, headers=headers, json=data, timeout=30)
        response.raise_for_status()  # 非 200 抛异常
        result = response.json()
        return result["choices"][0]["message"]["content"].strip()
    except Exception as e:
        return f"调用失败:{str(e)}"

# 使用示例
user_role = "温暖治愈的写手"
user_task = "写一段关于雨后彩虹的短文"
user_style = "温柔细腻,带点诗意"

full_prompt = generate_prompt(user_role, user_task, user_style, length=400)

print("发送的 Prompt:")
print(full_prompt)
print("\n正在调用 AI...")

reply = call_llm(full_prompt)
print("\nAI 生成的内容:")
print(reply)

运行后会看到生成的 Prompt,然后输出模型的真实回复。

3. 保存 API 回复到文件(结合第八课)

# 继续上面的代码,调用成功后保存
if "调用失败" not in reply:
    history = [
        {"role": "user", "content": full_prompt},
        {"role": "assistant", "content": reply}
    ]

    with open("api_chat.json", "w", encoding="utf-8") as f:
        json.dump(history, f, ensure_ascii=False, indent=2)

    print("本次对话已保存到 api_chat.json")

我的输出结果

​编辑

哈哈哈,大家拿代码也去试试吧,欢迎讨论

小练习(2 道)

练习1(基础)

复制第1段基础调用代码,修改 "user" 的 content 为你自己想问的问题(例如“给我推荐 3 本 Python 入门书”)。

运行看模型回复。注意替换 api_key,如果失败就打印错误信息。

练习2(进阶)

结合 generate_prompt 函数,让用户输入 role、task、style,生成 Prompt 后调用 API。

把 Prompt 和 AI 回复一起保存到 txt 或 json 文件。

多次运行,积累几条对话记录。建议把回复复制到浏览器验证是否一致。

本课小结

本课介绍了 requests 模块发送 POST 请求、调用 LLM API 的基本流程(headers、json 数据、解析响应)。

结合前面函数生成 Prompt,现在程序能真正“和 AI 对话”。后续可以扩展成带历史的多轮聊天。

下节预告

下一课:聊天历史 + 多轮对话 —— 带记忆的交互机器人,实现上下文连续对话。

欢迎在评论区贴出练习代码、API 回复截图或生成的文字,有问题可以留言。