目前,我们正在扩展 Gemini Batch API,以支持最新推出的 Gemini 嵌入模型,并使开发者能够利用 OpenAI SDK 提交和处理批量作业。
此次升级以首次发布的 Gemini Batch API 作为基础,并且实现了以标准费率的 50% 异步处理高吞吐量和高延时耐受案例。
我们的全新 Gemini 嵌入模型已在数千种生产部署环境中投入使用。现在,您可以通过 Batch API 以更高的速率限制和一半的价格(每 100 万个输入令牌仅需 0.075 美元)调用该模型,以解锁更具成本敏感性、延时耐受性或异步性的案例。
仅需几行代码即可开始使用批量嵌入向量:
# Create a JSONL with your requests:
# {"key": "request_1", "request": {"output_dimensionality": 512, "content": {"parts": [{"text": "Explain GenAI"}]}}}
# {"key": "request_2", "request": {"output_dimensionality": 512, "content": {"parts": [{"text": "Explain quantum computing"}]}}}
from google import genai
client = genai.Client()
uploaded_batch_requests = client.files.upload(file='embedding_requests.jsonl')
batch_job = client.batches.create_embeddings(
model="gemini-embedding-001",
src={"file_name": uploaded_batch_requests.name}
)
print(f"Created embedding batch job: {batch_job.name}")
# Wait for up to 24 hours
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)
如您使用 OpenAI SDK 兼容层,现在只需修改几行代码即可轻松切换至 Gemini Batch API:
from openai import OpenAI
openai_client = OpenAI(
api_key="GEMINI_API_KEY",
base_url="https://generativelanguage.googleapis.com/v1beta/openai/"
)
# Upload JSONL file in OpenAI batch input format...
# Create batch
batch = openai_client.batches.create(
input_file_id=batch_input_file_id,
endpoint="/v1/chat/completions",
completion_window="24h"
)
# Wait for up to 24 hours & poll for status
batch = openai_client.batches.retrieve(batch.id)
if batch.status == "completed":
# Download results...
您可以在相关文档中阅读更多有关 OpenAI 兼容层和批量支持的内容。
我们将会持续扩展批量服务,以进一步降低 Gemini API 的使用成本,敬请关注后续更新。与此同时,祝大家尽情享受构建的乐趣!