编程学习网 > 编程语言 > Python > Python 调大模型 API 入门:requests、OpenAI SDK、.env 与流式输出!
2026
09-29

Python 调大模型 API 入门:requests、OpenAI SDK、.env 与流式输出!

这篇笔记从 Jupyter 环境开始,把 requests 原生调用、OpenAI SDK、.env 密钥管理、stream 流式输出一次讲清。

01 Jupyter 里的魔法命令

在 Jupyter 中,%pip 是魔法命令,它只在当前 Kernel 对应的虚拟环境里执行,比直接 !pip 更不容易装错环境。

# 查看当前环境安装了哪些包%pip list
# 在当前 Kernel 环境安装依赖%pip install requests%pip install openai -i https://pypi.tuna.tsinghua.edu.cn/simple%pip install python-dotenv -i https://pypi.tuna.tsinghua.edu.cn/simple

02 最原始的方式:requests 调 API

不依赖任何 SDK,直接用 HTTP 请求也能调大模型。

# 导入 requests 库,用于发送 HTTP 请求import requests# 导入 json 库,用于将 Python 字典转换为 JSON 字符串import json
# DeepSeek 聊天补全接口的 URLurl = "https://api.deepseek.com/chat/completions"# API Key,实际使用时请替换为你自己的密钥,不要泄露api_key = "你的API_KEY"
# 构建请求体(payload),并将其序列化为 JSON 字符串payload = json.dumps({    # messages 列表包含对话历史,每条消息有 role 和 content    "messages": [        {            # system 角色用于设定助手的背景或行为            "content": "You are a helpful assistant",            "role": "system"        },        {            # user 角色代表用户发出的问题            "content": "2010年NBA冠军是谁",            "role": "user"        }    ],    # 指定要使用的模型名称    "model": "deepseek-flash",    # 限制生成的最大 token 数量    "max_tokens": 1024,    # 温度参数,控制输出的随机性,0.3 表示较为确定    "temperature": 0.3,    # stream=False 表示一次性返回完整结果,而不是流式分块返回    "stream": False})
# 构建 HTTP 请求头headers = {    # 告诉服务器请求体是 JSON 格式    "Content-Type": "application/json",    # 告诉服务器期望响应是 JSON 格式    "Accept": "application/json",    # 使用 Bearer Token 方式进行身份认证    "Authorization": f"Bearer {api_key}"}
# 使用 requests.post 发送 POST 请求,传入 URL、请求头和请求体response = requests.post(url, headers=headers, data=payload)
# 检查 HTTP 响应状态码是否为 200(成功)if response.status_code == 200:    # 将响应内容解析为 Python 字典    data = response.json()    # 从响应结构中提取模型生成的回复内容并打印    # 路径:choices 列表 -> 第一个元素 -> message 字典 -> content 字段    print(data["choices"][0]["message"]["content"])

几个关键参数:

 

messages:对话消息列表,system 设定角色,user 是用户问题。

model:模型名,以官方文档为准。

max_tokens:一次最多生成多少 token。

temperature:随机性,0 到 2,越大越发散。

top_p:另一种控制随机性的方式,通常和 temperature 二选一。

stream:False 一次性返回,True 流式返回。

thinking、reasoning_effort、response_format、tools 等:按需使用。

03 更推荐日常使用:OpenAI SDK

DeepSeek 兼容 OpenAI SDK 写法,日常开发更推荐用 SDK,代码更简洁。

from openai import OpenAI
client = OpenAI(    api_key="你的API_KEY",    base_url="https://api.deepseek.com")
response = client.chat.completions.create(    model="deepseek-flash",    messages=[        {"role": "system", "content": "You are a helpful assistant"},        {"role": "user", "content": "姚明是谁"},    ],    max_tokens=1024,    temperature=0.3,    stream=False)
print(response.choices[0].message.content)

04 密钥别写死在代码里:.env + python-dotenv

API Key 直接写在代码里,一旦截图、发群、传 Git,就等于泄露。

推荐用 python-dotenv 管理密钥。

在 Jupyter 中可以这样创建 .env 文件:

 

%%writefile .envOPENAI_API_KEY=你的API_KEY

 

.env 不要提交到 Git。

 

05 流式输出:像 ChatGPT 一样逐字打印

把 stream 改成 True,响应就变成可迭代对象。

 

from openai import OpenAIfrom dotenv import load_dotenvload_dotenv()# for backward compatibility, you can still use `https://api.deepseek.com/v1` as `base_url`.client = OpenAI( base_url="https://api.deepseek.com")response = client.chat.completions.create(    model="deepseek-flash",    messages=[        {"role": "system", "content": "You are a helpful assistant"},        {"role": "user", "content": "天空为什么是蓝色的"},    ],    max_tokens=1024,    temperature=0.3,    stream=True)
for chunk in response:    if not chunk.choices:        continue
    content = chunk.choices[0].delta.content
    if content is not None:        print(content, end="")

 

stream=True 时,返回的是一段一段的增量内容。

 

一句话总结

先用 requests 理解 HTTP 调用,再用 OpenAI SDK 提升开发效率;用 .env 管好密钥,用 stream=True 做好流式体验。

以上就是“Python 调大模型 API 入门:requests、OpenAI SDK、.env 与流式输出!”的详细内容,想要了解更多Python教程欢迎持续关注编程学习网。 

扫码二维码 获取免费视频学习资料

Python编程学习

查 看2022高级编程视频教程免费获取