OpenAI 面向开发者推出 Batch 批处理 API,可在 24 小时内给出结果,并提供 API 半价折扣。
新的 Batch API 适用于异步任务处理,如当开发者需要处理大量文本、图片、摘要时,就可以使用该 API,OpenAI 会在 24 小时内给出处理结果。这样 OpenAI 可以在非高峰期处理,节约服务器资源,并为开发者提供半价优惠,解锁更高的速率限制。
下面直接上源代码:
github地址:https://github.com/xing61/zzz-api
上传batch数据
API_SECRET_KEY = "你的智增增获取的api_key";
BASE_URL = "https://api.zhizengzeng.com/v1"; #智增增的base_url
# files
def files():
client = OpenAI(api_key=API_SECRET_KEY, base_url=BASE_URL)
resp = client.files.create(
file=open("test.jsonl", "rb"),
purpose='batch'
)
print(resp)
return resp.id
创建batch
API_SECRET_KEY = "你的智增增获取的api_key";
BASE_URL = "https://api.zhizengzeng.com/v1"; #智增增的base_url
def batches(file_id):
client = OpenAI(api_key=API_SECRET_KEY, base_url=BASE_URL)
resp = client.batches.create(input_file_id=file_id,
endpoint="/v1/chat/completions",
completion_window="24h")
print(resp)
return resp.id
检查batch是否完成
要注意的是:
上一步提交完batch任务之后,是需要一段时间来执行结果的,时长取决于你的数据量大小、当下任务数、openai的算力是否充足等等。
API_SECRET_KEY = "你的智增增获取的api_key";
BASE_URL = "https://api.zhizengzeng.com/v1"; #智增增的base_url
def retrieve(bid):
client = OpenAI(api_key=API_SECRET_KEY, base_url=BASE_URL)
resp = client.batches.retrieve(bid)
print(resp)
return resp.id
获取batch结果
API_SECRET_KEY = "你的智增增获取的api_key";
BASE_URL = "https://api.zhizengzeng.com/v1"; #智增增的base_url
def get_result(fid):
client = OpenAI(api_key=API_SECRET_KEY, base_url=BASE_URL)
content = client.files.content(fid)
print(content.text);
完功。