如何在Python中调用Azure OpenAI API实现GPT批量请求
Azure OpenAI API批量请求实现方案(非开发者友好版)
一、前置准备
- 拥有Azure账号并创建OpenAI资源,获取API密钥和资源端点
- 确认已部署目标GPT模型(如gpt-35-turbo、gpt-4),记录模型部署名称
- 可选:安装Python(脚本方式)或Postman(可视化工具)
二、批量请求文件制作
Azure OpenAI批量API要求输入文件为JSONL格式(每行一个JSON对象),每个对象对应一个独立请求。示例如下:
{"custom_id": "req_001", "method": "POST", "url": "/openai/deployments/你的模型部署名/chat/completions?api-version=2024-02-15-preview", "body": {"messages": [{"role": "user", "content": "请写一段关于环保的短文"}]}} {"custom_id": "req_002", "method": "POST", "url": "/openai/deployments/你的模型部署名/chat/completions?api-version=2024-02-15-preview", "body": {"messages": [{"role": "user", "content": "解释碳中和的核心含义"}]}}
custom_id:自定义请求ID,用于后续匹配结果与请求url:替换为你的模型部署名和对应API版本号(可在Azure门户查看)body:格式与单次调用Chat Completions API的请求体一致
三、提交批量任务
方式1:Python简化脚本
复制以下代码,替换占位符为自身信息,保存为.py文件后运行:
import requests # 替换为你的Azure OpenAI信息 AZURE_ENDPOINT = "https://你的资源名.openai.azure.com/" API_KEY = "你的API密钥" INPUT_FILE = "批量请求文件.jsonl" # 上传输入文件 upload_url = f"{AZURE_ENDPOINT}openai/files?api-version=2024-02-15-preview" headers = {"api-key": API_KEY} with open(INPUT_FILE, "rb") as f: upload_res = requests.post(upload_url, headers=headers, files={"file": f, "purpose": "batch"}) file_id = upload_res.json()["id"] # 创建批量任务 batch_url = f"{AZURE_ENDPOINT}openai/batches?api-version=2024-02-15-preview" batch_data = { "input_file_id": file_id, "endpoint": "/openai/deployments/你的模型部署名/chat/completions?api-version=2024-02-15-preview", "completion_window": "24h", "metadata": {"description": "我的批量请求任务"} } batch_res = requests.post(batch_url, headers=headers, json=batch_data) batch_id = batch_res.json()["id"] print(f"批量任务已创建,任务ID:{batch_id}")
方式2:Postman可视化操作
- 新建POST请求,地址:
https://你的资源名.openai.azure.com/openai/files?api-version=2024-02-15-preview - 请求头添加
api-key: 你的API密钥 - 选择
form-data,添加字段:file(选择本地JSONL文件)、purpose(值为batch) - 发送请求,获取返回的
file_id - 再新建POST请求,地址:
https://你的资源名.openai.azure.com/openai/batches?api-version=2024-02-15-preview - 请求头添加
api-key,请求体选raw-JSON,填入:
{ "input_file_id": "刚才获取的file_id", "endpoint": "/openai/deployments/你的模型部署名/chat/completions?api-version=2024-02-15-preview", "completion_window": "24h", "metadata": {"description": "我的批量任务"} }
- 发送请求,任务创建成功后记录
batch_id
四、查询任务结果
Python脚本查询
import requests AZURE_ENDPOINT = "https://你的资源名.openai.azure.com/" API_KEY = "你的API密钥" BATCH_ID = "你的批量任务ID" query_url = f"{AZURE_ENDPOINT}openai/batches/{BATCH_ID}?api-version=2024-02-15-preview" headers = {"api-key": API_KEY} res = requests.get(query_url, headers=headers) print(res.json())
当任务状态为completed时,可通过返回的output_file_id下载结果文件(JSONL格式),文件包含每个请求的响应内容。
五、注意事项
completion_window可设置为1h至72h,根据请求量选择合适时长- 单个JSONL文件最多包含10000个请求,单请求token数不超过模型最大限制
- API密钥需妥善保管,避免泄露
- 若遇错误,可查看Azure门户批量任务日志或检查请求体格式
内容的提问来源于stack exchange,提问作者Georgios Kourogiorgas
相关产品推荐
相关产品推荐

