Generate Content
Gemini ネイティブプロトコル経由で Google Gemini モデルを呼び出します。OfoxAI は Google GenAI SDK と互換です。
エンドポイント
POST https://api.ofox.ai/gemini/v1beta/models/{model}:generateContent
POST https://api.ofox.ai/gemini/v1beta/models/{model}:streamGenerateContent認証
Gemini プロトコルは x-goog-api-key ヘッダーを使用します:
x-goog-api-key: <あなたの OFOXAI_API_KEY>リクエスト例
cURL
Terminal
curl "https://api.ofox.ai/gemini/v1beta/models/google/gemini-3.1-flash-lite-preview:generateContent" \
-H "x-goog-api-key: $OFOX_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"contents": [
{
"parts": [{"text": "Pythonでシンプルなウェブサーバーを実装してください"}]
}
]
}'ストリーミングレスポンス
Python
gemini_stream.py
response = client.models.generate_content_stream(
model="google/gemini-3.1-flash-lite-preview",
contents="AIに関する記事を書いてください"
)
for chunk in response:
print(chunk.text, end="", flush=True)マルチモーダル入力
Gemini はマルチモーダル入力(画像、音声、動画)をネイティブにサポートします:
import base64
# 画像分析
with open("photo.jpg", "rb") as f:
image_data = base64.b64encode(f.read()).decode()
response = client.models.generate_content(
model="google/gemini-3.1-flash-lite-preview",
contents=[
{"text": "この画像の内容を説明してください"},
{"inline_data": {"mime_type": "image/jpeg", "data": image_data}}
]
)画像の生成と編集
Gemini ネイティブプロトコルでは、generateContent 1つのエンドポイントが画像生成(text → image)と画像編集(image + text → image)の両方を担当します。推奨モデルは google/gemini-3.1-flash-image-preview です。
POST https://api.ofox.ai/gemini/v1beta/models/google/gemini-3.1-flash-image-preview:generateContentOpenAI 互換エンドポイント からも同じモデルで画像生成は可能ですが、画像編集機能は Gemini ネイティブプロトコルでのみ利用可能です。
画像生成:text → image
Python
gen.py
from google import genai
client = genai.Client(
api_key="YOUR_OFOX_API_KEY",
http_options={"api_version": "v1beta", "base_url": "https://api.ofox.ai/gemini"},
)
resp = client.models.generate_content(
model="google/gemini-3.1-flash-image-preview",
contents="A simple red apple on a white table, photorealistic",
)
for part in resp.candidates[0].content.parts:
if part.inline_data and part.inline_data.data:
with open("output.png", "wb") as f:
f.write(part.inline_data.data)
break実際の出力:

編集:image + text → image
元画像を inlineData としてテキスト指示と一緒に parts に入れるだけです:
Python
edit.py
from google import genai
from google.genai import types
client = genai.Client(
api_key="YOUR_OFOX_API_KEY",
http_options={"api_version": "v1beta", "base_url": "https://api.ofox.ai/gemini"},
)
with open("apple.png", "rb") as f:
image_bytes = f.read()
resp = client.models.generate_content(
model="google/gemini-3.1-flash-image-preview",
contents=[
"リンゴを緑色に変えて、それ以外はそのままにしてください",
types.Part.from_bytes(data=image_bytes, mime_type="image/png"),
],
)
for part in resp.candidates[0].content.parts:
if part.inline_data and part.inline_data.data:
with open("apple_edited.png", "wb") as out:
out.write(part.inline_data.data)
break実際の比較:
| 元画像 | 編集後 |
|---|---|
![]() | ![]() |
レスポンス
{
"candidates": [{
"content": {
"role": "model",
"parts": [
{ "text": "...", "thought": true },
{ "inlineData": { "mimeType": "image/png", "data": "<画像 Base64>" } }
]
},
"finishReason": "STOP"
}],
"modelVersion": "google/gemini-3.1-flash-image-preview",
"usageMetadata": {
"promptTokenCount": 1097,
"candidatesTokenCount": 1120,
"thoughtsTokenCount": 1306,
"totalTokenCount": 3523,
"candidatesTokensDetails": [
{ "modality": "IMAGE", "tokenCount": 1120 }
]
}
}- 画像は
candidates[0].content.parts[].inlineData.dataに格納される Base64 文字列です partsにはtext+thought: trueの思考プロセスが混在することがあるため、走査時はinlineDataのみを取得してくださいusageMetadata.candidatesTokensDetailsのmodality: IMAGEのtokenCountが画像出力で消費したトークン数です
対応モデル
下表は代表的な例のみを挙げています。利用可能モデルの完全リストは次を参照してください:
- プログラム経由:GET /gemini/v1beta/models — ゲートウェイ上で現在のアカウントが使えるモデルをリアルタイム取得
- ブラウザ経由:モデルカタログ — 価格を含むビジュアル検索
| モデル | 説明 |
|---|---|
google/gemini-3.1-pro-preview | Gemini 3.1 Pro — 最高峰の推論能力 |
google/gemini-3-pro-preview | Gemini 3 Pro — バランスの取れた性能 |
google/gemini-3.1-flash-lite-preview | Gemini 3 Flash — 高速・高コストパフォーマンス |
google/gemini-3.1-flash-image-preview | Gemini Flash Image — 画像生成と編集 |
OfoxAI の Gemini プロトコルは Google GenAI SDK の主要機能(Function Calling、Code Execution、Grounding、画像生成と編集など)をサポートします。
Last updated on
