client初始化
2026/7/23大约 1 分钟
我们可以把 client 想象成一个“翻译官+速递员”,它拿着你的 Key(通行证),去指定的 URL(官邸)找模型办事。
标准初始化代码
这是最推荐的工程化写法,直接引用你之前的 settings 对象:
from openai import OpenAI
from config.settings import settings
# 初始化 client
# 这一步只是在内存中创建一个配置对象,并不会产生网络请求(不耗流量,不花钱)
client = OpenAI(
api_key=settings.API_KEY, # 你的百炼 API Key
base_url=settings.BASE_URL # https://dashscope.aliyuncs.com/compatible-mode/v1
)
初始化时到底发生了什么?
当你运行这行代码时,SDK 内部做了三件大事:
- 权限封装:它把你的
API_KEY放在 HTTP 请求的Authorization头部,确保每次对话模型都知道你是谁。 - 路由绑定:它记住了
BASE_URL。以后你调用chat.completions.create时,它会自动在后面拼接路径(如/chat/completions)。 - 连接池管理:它准备好了一个 HTTP 连接池(基于
httpx库),这样你在进行多轮对话时,不需要反复握手,速度更快。
常见的初始化“进阶参数”
除了 Key 和 URL,在真实的 AIOps 平台开发中,你可能还会用到这两个参数:
| 参数 | 作用 | 推荐场景 |
|---|---|---|
timeout |
设置超时时间(秒) | 默认通常是 60s。如果你查日志的任务很重,建议设为 120.0<br>。 |
max_retries |
自动重试次数 | 网络抖动时很有用。默认是 2 次。 |
示例:
client = OpenAI(
api_key=settings.API_KEY,
base_url=settings.BASE_URL,
timeout=60.0,
max_retries=3
)
