第 1 周 Day 3:Python Agent 调用大模型 API:封装 LLMClient

📅 2026/7/9 20:05:31 👁️ 阅读次数 📝 编程学习
第 1 周 Day 3:Python Agent 调用大模型 API:封装 LLMClient

第 1 周 Day 3:Python Agent 调用大模型 API:封装 LLMClient

学习主题:用 Python 调用大模型 API,并封装成可复用客户端
建议时长:2-3 小时
学习目标:理解一次大模型请求包含哪些信息,完成一个LLMClient类,为命令行 ChatBot 做准备

一、为什么学这个

本文适合已经完成 Python 虚拟环境和.env配置的学习者。如果你还没有准备好项目目录,可以先完成上一篇文章中的环境搭建。

第一阶段的目标是做一个命令行多轮对话 ChatBot。它的核心只有两件事:

  • 用户输入问题
  • 程序调用大模型 API,拿到回答并打印出来

如果直接在main.py里写 API 调用,短期能跑,长期会乱。更好的做法是封装一个LLMClient

main.py 负责命令行交互 LLMClient 负责和大模型 API 通信

这样后面加重试、日志、token 统计、模型切换时,只需要改一个地方。

二、核心概念

1. 一次大模型请求包含什么

一次最基础的大模型调用通常包含:

字段含义
model使用哪个模型
instructions系统级要求,可以理解为角色和规则
input用户输入或多轮消息
temperature控制回答随机性,入门阶段可以先不用调

在 OpenAI 的 Responses API 中,最简单的调用方式类似这样:

fromopenaiimportOpenAI client=OpenAI()response=client.responses.create(model="gpt-5.2",input="用一句话解释什么是 Python Agent")print(response.output_text)

这段代码适合快速测试。但在项目里,我们会把它封装起来。

2. System Prompt 和用户输入的区别

很多初学者会把所有内容都放进用户输入里,例如:

你是 Python 助教,请回答:什么是列表?

更清晰的做法是把角色要求放进instructions,把用户真实问题放进input

response=client.responses.create(model="gpt-5.2",instructions="你是一个耐心的 Python 编程助教,回答要适合初学者。",input="什么是列表?")

这样做的好处是职责清楚:

  • instructions:模型应该如何表现
  • input:用户当前问了什么

3. 为什么要封装客户端

封装LLMClient的目的不是炫技,而是降低后面代码的复杂度。你希望在main.py中这样调用:

reply=llm.chat("什么是 Agent?")print(reply)

而不是每次都写完整的client.responses.create(...)

三、基础示例

下面基于上一篇文章的目录继续写:

python-agent-chatbot/ └── src/