Usa bibliotecas de OpenAI con Gemini Enterprise Agent Platform

La API de Chat Completions funciona como un endpoint compatible con OpenAI, diseñado para facilitar la interfaz con Gemini en Gemini Enterprise Agent Platform mediante las bibliotecas de OpenAI para Python y REST. Si ya usas las bibliotecas de OpenAI, puedes usar esta API como una forma de bajo costo para cambiar entre llamar a los modelos de OpenAI y los modelos alojados en Agent Platform para comparar el resultado, el costo y la escalabilidad, sin cambiar el código existente. Si aún no usas las bibliotecas de OpenAI, te recomendamos que uses el SDK de IA generativa de Google. Para migrar tu código existente del SDK de OpenAI para usar el SDK de IA generativa de Google, consulta Migra del SDK de OpenAI al SDK de IA generativa de Google.

Modelos compatibles

La API de Chat Completions admite modelos de Gemini y modelos seleccionados que se implementan por sí solos desde Model Garden.

Modelos de Gemini

Los siguientes modelos proporcionan compatibilidad con la API de Chat Completions:

Haz clic para expandir los modelos compatibles

Modelos que se implementan por sí solos desde Model Garden

La interfaz de generación de texto (TGI) de Hugging Face y los contenedores vLLM precompilados de Model Garden de Agent Platform admiten la API de Chat Completions. Sin embargo, no todos los modelos implementados en estos contenedores admiten la API de Chat Completions. En la siguiente tabla, se incluyen los modelos compatibles más populares por contenedor:

HF TGI

vLLM

Parámetros admitidos

Para los modelos de Google, la API de Chat Completions admite los siguientes parámetros de OpenAI. Para obtener una descripción de cada parámetro, consulta la documentación de OpenAI sobre cómo crear finalizaciones de chat. La compatibilidad de parámetros para modelos de terceros varía según el modelo. Para ver qué parámetros son compatibles, consulta la documentación del modelo.

messages
  • System message
  • User message: Se admiten los tipos text y image_url. El tipo image_url admite imágenes almacenadas en un URI de Cloud Storage o una codificación base64 en el formato "data:<MIME-TYPE>;base64,<BASE64-ENCODED-BYTES>". Para obtener información sobre cómo crear un bucket de Cloud Storage y subir un archivo a él, consulta Descubre el almacenamiento de objetos.
  • Assistant message
  • Tool message
  • Function message: Este campo es obsoleto, pero se admite para versiones anteriores.
model
detail Para los modelos anteriores a Gemini 3, el campo detail debe ser coherente en todos los mensajes y contenidos (es a nivel de la solicitud). Para Gemini 3 y versiones posteriores, esto corresponde a un `media_resolution` a nivel de la parte. Para obtener más información, consulta Resolución de medios.
max_completion_tokens Alias de max_tokens.
modalities Admite audio, image y text.
max_tokens
n
frequency_penalty
presence_penalty
reasoning_effort Configura cuánto tiempo y cuántos tokens se usan en una respuesta.
  • low: 1024
  • medium: 8192
  • high: 24576
Como no se incluyen pensamientos en la respuesta, solo se puede especificar uno de reasoning_effort o extra_body.google.thinking_config
response_format
  • json_object: Se interpreta como pasar "application/json" a la API de Gemini.
  • json_schema. No se admiten esquemas completamente recursivos. additional_properties se admite.
  • text: Se interpreta como pasar "text/plain" a la API de Gemini.
  • Cualquier otro tipo de MIME se pasa tal como está al modelo, por ejemplo, pasar "application/json" directamente.
seed Corresponde a GenerationConfig.seed.
stop
stream
temperature
top_p
tools
  • type
  • function
    • name
    • description
    • parameters: Especifica los parámetros a usando la especificación de OpenAPI. Esto difiere del campo de parámetros de OpenAI, que se describe como un objeto de esquema JSON. Para obtener información sobre las diferencias de palabras clave entre el esquema de OpenAPI y JSON, consulta la guía de OpenAPI.
tool_choice
  • none
  • auto
  • required: Corresponde al modo ANY en el FunctionCallingConfig.
  • validated: Corresponde al modo VALIDATED en FunctionCallingConfig. Esto es específico de Google.
web_search_options Corresponde a la herramienta GoogleSearch. No se admiten subopciones.
function_call Este campo es obsoleto, pero se admite para versiones anteriores compatibilidad.
functions Este campo es obsoleto, pero se admite para versiones anteriores.

Si pasas algún parámetro no admitido, se ignorará.

Parámetros de entrada multimodales

La API de Chat Completions admite entradas multimodales seleccionadas.

input_audio
  • data: Cualquier URI o formato de blob válido. Admitimos todos los tipos de blob, incluidas imágenes, audio y video. Se admite todo lo que admite GenerateContent (HTTP, Cloud Storage, etcétera).
  • format: OpenAI admite wav (audio/wav) y mp3 (audio/mp3). Con Gemini, se admiten todos los tipos de MIME válidos.
image_url
  • data: Al igual que input_audio, se admite cualquier URI o formato de blob válido.
    Ten en cuenta que image_url como URL se establecerá de forma predeterminada en el tipo MIME image/* y image_url como datos de blob se puede usar como cualquier entrada multimodal.
  • detail: Similar a la resolución de medios, esto determina los tokens máximos por imagen para la solicitud. Ten en cuenta que, si bien el campo de OpenAI es por imagen, Gemini aplica el mismo detalle en toda la solicitud, y pasar varios tipos de detalles en una solicitud generará un error.

En general, el data parámetro puede ser un URI o una combinación de tipo de MIME y bytes codificados en base64 en el formato "data:<MIME-TYPE>;base64,<BASE64-ENCODED-BYTES>". Para obtener una lista completa de los tipos de MIME, consulta GenerateContent. Para obtener más información sobre la codificación base64 de OpenAI, consulta su documentación.

Para obtener información sobre el uso, consulta nuestros ejemplos de entrada multimodal.

Parámetros específicos de Gemini

Gemini admite varias funciones que no están disponibles en los modelos de OpenAI. Estas funciones aún se pueden pasar como parámetros, pero deben estar dentro de un extra_content o extra_body, o se ignorarán.

Funciones extra_body

Incluye un campo google para contener cualquier función extra_body específica de Gemini.

{
  ...,
  "extra_body": {
     "google": {
       ...,
       // Add extra_body features here.
     }
   }
}
safety_settings Esto corresponde a Gemini SafetySetting.
cached_content Esto corresponde al campo generateContent.cached_content de Gemini.
thinking_config Esto corresponde a Gemini GenerationConfig.ThinkingConfig.
thought_tag_marker Se usa para separar los pensamientos de un modelo de sus respuestas para los modelos con Thinking disponible.
Si no se especifica, no se mostrarán etiquetas en los pensamientos del modelo. Si está presente, las consultas posteriores quitarán las etiquetas de pensamiento y marcarán los pensamientos de forma adecuada para el contexto. Esto ayuda a conservar el contexto adecuado para las consultas posteriores.
stream_function_call_arguments Transmite argumentos de llamada a funciones como segmentos de JSON. Para obtener más información, consulta Argumentos de llamada a funciones de transmisión.
tools Especifica herramientas similares a `GenerateContent`. Para obtener más información, see Tool.
media_resolution Especifica una resolución de medios a nivel de la solicitud similar a `GenerateContent`. Para obtener más información, consulta MediaResolution.

Funciones extra_content

extra_content te permite especificar contenido específico de Gemini que no se debe ignorar.

Incluye un campo google para contener cualquier función extra_content específica de Gemini.

{
  ...,
  "extra_content": {
     "google": {
       ...,
       // Add extra_content features here.
     }
   }
}
thought Este campo marca explícitamente si un campo es un pensamiento y tiene prioridad sobre thought_tag_marker. Ayuda a distinguir entre los diferentes pasos de un proceso de pensamiento, en especial en situaciones de uso de herramientas en las que los pasos intermedios pasos podrían confundirse con respuestas finales. Si etiquetas partes específicas de la entrada como pensamientos, puedes guiar al modelo para que las trate como razonamiento interno en lugar de respuestas orientadas al usuario.
thought_signature Un campo de bytes que proporciona una firma de pensamiento para validar contra pensamientos que muestra el modelo. Este campo es distinto de thought, que es un campo booleano. Para obtener más información, consulta Firmas de pensamiento.
parts Específico de un mensaje de herramienta para pasar partes de respuesta de funciones multimodales al modelo. Para obtener más información, consulta FunctionResponsePart y Respuesta de funciones multimodales.

¿Qué sigue?