源代码级的一步一步编写自己的Batch,OpenAI的半价批处理 API

298 阅读1分钟

OpenAI 面向开发者推出 Batch 批处理 API,可在 24 小时内给出结果,并提供 API 半价折扣。

新的 Batch API 适用于异步任务处理,如当开发者需要处理大量文本、图片、摘要时,就可以使用该 API,OpenAI 会在 24 小时内给出处理结果。这样 OpenAI 可以在非高峰期处理,节约服务器资源,并为开发者提供半价优惠,解锁更高的速率限制。

下面直接上源代码:

github地址:github.com/xing61/zzz-…

上传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);

完功。