跳到主要内容

Google Gen AI SDK

Google GenAI SDK 适合需要 Gemini 原生 generateContent 格式的 Python 应用。本页使用 google-genai 包。

安装

python -m pip install --upgrade google-genai

创建客户端

from google import genai
from google.genai import types

client = genai.Client(
api_key="YOUR_BITA_API_KEY",
http_options=types.HttpOptions(
base_url="https://www.bita-api.com",
),
)

这里填写 Bita API 的站点根地址。SDK 会使用 Gemini Developer API 的默认版本路径 /v1beta,并通过 x-goog-api-key 传递 API 密钥。

不要在 base_url 后添加 /v1beta

如果地址中已经包含 /v1beta,SDK 可能再次追加版本路径。请使用 https://www.bita-api.com

查询模型

for model in client.models.list():
print(model.name)

模型名称可能显示为 models/YOUR_MODEL_ID。调用 generate_content 时通常填写不带 models/ 前缀的模型 ID。

生成文本

response = client.models.generate_content(
model="YOUR_MODEL_ID",
contents="请用一句话介绍 Bita API。",
)

print(response.text)

需要系统指令和生成参数时,可以使用 GenerateContentConfig

response = client.models.generate_content(
model="YOUR_MODEL_ID",
contents="请介绍 API 中转服务。",
config=types.GenerateContentConfig(
system_instruction="使用简体中文简洁回答。",
temperature=0.3,
),
)

print(response.text)

并非所有模型都支持相同的生成参数。基础请求成功后,再按模型能力增加配置。

流式输出

for chunk in client.models.generate_content_stream(
model="YOUR_MODEL_ID",
contents="请介绍流式响应的作用。",
):
if chunk.text:
print(chunk.text, end="", flush=True)

print()

图片理解

下面的示例直接读取本地图片字节,不需要先上传到外部地址:

from pathlib import Path

image = types.Part.from_bytes(
data=Path("image.jpg").read_bytes(),
mime_type="image/jpeg",
)

response = client.models.generate_content(
model="YOUR_VISION_MODEL_ID",
contents=[
image,
"请描述这张图片中的主要内容。",
],
)

print(response.text)

图片的 MIME 类型必须与实际格式一致。模型还需要支持 Gemini 图片输入能力。

关闭客户端

应用不再使用客户端时可以释放连接资源:

client.close()

异步客户端对应使用 await client.aio.aclose()

常见问题

现象建议检查
ModuleNotFoundError: google.genai安装或升级 google-genai,不要只安装旧包
401403API 密钥、密钥状态、分组和额度是否正确
404base_url 是否为站点根地址,模型 ID 是否重复带有 models/
模型列表正常但生成失败模型是否支持 generateContent,端点类型是否为 Gemini
图片请求失败模型是否支持视觉输入,MIME 类型和文件内容是否正确
参数不受支持删除可选配置后重试,并确认模型能力

更多原始请求结构参见Gemini 原生接口