Gemini Batch API 现已扩展其功能,新增对 Gemini Embedding 模型的支持,并为开发者提供了通过 OpenAI SDK 提交和处理批处理任务的能力。
Batch API 专为高吞吐量、对延迟不敏感的场景设计,能够以异步方式处理任务,且价格比标准 API 低 50%,此次更新将进一步拓宽其应用范围。
支持 Gemini Embedding 模型
现在,您可以通过 Batch API 调用我们强大的 Gemini Embedding 模型。这意味着您可以在更高的速率限制下使用该模型,并且成本仅为标准 API 的一半,即每百万输入 token 0.075 美元。这一特性为更多对成本敏感、延迟容忍度高或需要异步处理的应用场景解锁了可能性。
通过以下几行 Python 代码即可开始使用批量 Embedding 功能:
# 1. 创建一个包含请求的 JSONL 文件 (例如 embedding_requests.jsonl)
# {"key": "request_1", "request": {"output_dimensionality": 512, "content": {"parts": [{"text": "解释一下什么是生成式 AI"}]}}}
# {"key": "request_2", "request": {"output_dimensionality": 512, "content": {"parts": [{"text": "解释一下什么是量子计算"}]}}}
from google import genai
client = genai.Client()
# 2. 上传包含批处理请求的文件
uploaded_batch_requests = client.files.upload(file='embedding_requests.jsonl')
# 3. 创建 Embedding 批处理作业
batch_job = client.batches.create_embeddings(
model="gemini-embedding-001",
src={"file_name": uploaded_batch_requests.name}
)
print(f"已创建 Embedding 批处理作业: {batch_job.name}")
# 4. 等待作业完成(最长可能需要 24 小时)
# ... 此处省略轮询或等待逻辑 ...
# 5. 检查作业状态并下载结果
if batch_job.state.name == 'JOB_STATE_SUCCEEDED':
result_file_name = batch_job.dest.file_name
file_content_bytes = client.files.download(file=result_file_name)
file_content = file_content_bytes.decode('utf-8')
for line in file_content.splitlines():
print(line)
更多关于批量 Embedding 的信息和示例,请参阅官方文档中的相关章节。
兼容 OpenAI SDK
如果您正在使用 OpenAI SDK,现在只需修改几行代码,即可轻松切换到 Gemini Batch API。这得益于我们提供的 OpenAI SDK 兼容层。
以下是如何使用 OpenAI SDK 调用 Gemini Batch API 的示例:
from openai import OpenAI
# 1. 初始化 OpenAI 客户端,但指向 Gemini API 端点
openai_client = OpenAI(
api_key="YOUR_GEMINI_API_KEY", # 请替换为您的 Gemini API 密钥
base_url="https://generativelanguage.googleapis.com/v1beta/openai/"
)
# 2. 以上传符合 OpenAI 批处理输入格式的 JSONL 文件
# ... 此处省略文件上传逻辑,假设已获得 batch_input_file_id ...
# 3. 创建批处理作业
batch = openai_client.batches.create(
input_file_id=batch_input_file_id,
endpoint="/v1/chat/completions",
completion_window="24h"
)
# 4. 等待作业完成(最长 24 小时)并轮询状态
batch = openai_client.batches.retrieve(batch.id)
# 5. 如果作业已完成,下载结果
if batch.status == "completed":
# ... 此处省略结果下载和处理逻辑 ...
print("批处理作业已完成。")
您可以查阅相关文档,了解更多关于 OpenAI 兼容层和批处理支持的详细信息。
我们正持续扩展批处理功能,以进一步优化使用 Gemini API 的成本效益。敬请关注未来的更新。
👉 如果你需要 ChatGPT 代充 / Claude / Claude Code / 镜像 / 中转 API:
- 购买 / 了解更多:ai4.plus
- 备用入口:kk4099.com