Skip to Content
APIProtocolo nativo de GeminiGenerate Content

Generate Content

Invoca los modelos de Google Gemini a través del protocolo nativo de Gemini. OfoxAI es compatible con el SDK de Google GenAI.

Endpoints

POST https://api.ofox.ai/gemini/v1beta/models/{model}:generateContent POST https://api.ofox.ai/gemini/v1beta/models/{model}:streamGenerateContent

Autenticación

El protocolo Gemini usa la cabecera x-goog-api-key:

x-goog-api-key: <tu OFOXAI_API_KEY>

Ejemplo de solicitud

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": "Implementa un servidor web sencillo en Python"}] } ] }'

Respuesta en streaming

gemini_stream.py
response = client.models.generate_content_stream( model="google/gemini-3.1-flash-lite-preview", contents="Escribe un artículo sobre la IA" ) for chunk in response: print(chunk.text, end="", flush=True)

Entrada multimodal

Gemini admite de forma nativa entradas multimodales: imágenes, audio y vídeo.

import base64 # Análisis de imagen 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": "Describe el contenido de esta imagen"}, {"inline_data": {"mime_type": "image/jpeg", "data": image_data}} ] )

Generar y editar imágenes

En el protocolo nativo de Gemini, el endpoint generateContent cubre tanto la generación de imágenes (texto → imagen) como la edición de imágenes (imagen + texto → imagen). Modelo recomendado: google/gemini-3.1-flash-image-preview.

POST https://api.ofox.ai/gemini/v1beta/models/google/gemini-3.1-flash-image-preview:generateContent

También puedes generar imágenes con el mismo modelo a través del endpoint compatible con OpenAI, pero la edición de imágenes solo está disponible en el protocolo nativo de Gemini.

Generar: texto → imagen

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

Resultado real:

Manzana roja generada con el protocolo nativo de Gemini

Editar: imagen + texto → imagen

Coloca la imagen original como inlineData junto con la instrucción de texto dentro de parts:

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=[ "Cambia la manzana a verde, mantén todo lo demás igual", 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

Comparación real:

OriginalEditada
Manzana roja originalManzana verde editada

Respuesta

{ "candidates": [{ "content": { "role": "model", "parts": [ { "text": "...", "thought": true }, { "inlineData": { "mimeType": "image/png", "data": "<imagen 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 } ] } }
  • La imagen está en candidates[0].content.parts[].inlineData.data como cadena Base64.
  • En parts puede haber varios elementos text con thought: true que representan el razonamiento interno; al recorrer, toma solo inlineData.
  • En usageMetadata.candidatesTokensDetails, el tokenCount con modality: IMAGE corresponde al consumo de la imagen de salida.

Modelos compatibles

La siguiente tabla solo enumera modelos representativos. Para la lista completa de modelos disponibles consulta:

ModeloDescripción
google/gemini-3.1-pro-previewGemini 3.1 Pro — máxima capacidad de razonamiento
google/gemini-3-pro-previewGemini 3 Pro — rendimiento equilibrado
google/gemini-3.1-flash-lite-previewGemini 3 Flash — alta velocidad y excelente relación precio/rendimiento
google/gemini-3.1-flash-image-previewGemini Flash Image — generación y edición de imágenes

El protocolo Gemini de OfoxAI admite las funciones principales del SDK de Google GenAI, incluyendo Function Calling, Code Execution, Grounding, y generación y edición de imágenes.

Last updated on