En esta página, se explica cómo dar formato a las solicitudes de la API de Gemini en Google Distributed Cloud (GDC) aislado con detalles del cuerpo de la solicitud del extremo de Chat Completions de OpenAI. Si te adhieres a este formato, podrás integrar sin problemas las capacidades avanzadas de Gemini en tus aplicaciones mientras usas la estructura de la API de OpenAI.
La familia de modelos de Gemini incluye modelos que funcionan con solicitudes de instrucciones multimodales. El término multimodal indica que puedes usar más de una modalidad o tipo de entrada en una instrucción. Para obtener más información, consulta Diseña instrucciones.
Para obtener más información sobre las descripciones genéricas de los tipos, los métodos y los campos generados para la biblioteca de gRPC, consulta la referencia de gRPC de Gemini.
Antes de comenzar
Antes de dar formato a tus solicitudes a la API, asegúrate de cumplir con los siguientes requisitos previos:
- Obtén más información sobre las capacidades de Gemini en GDC.
- Comienza con los requisitos mínimos del proyecto para realizar solicitudes a la API de Gemini.
- Identifica el ID del extremo del modelo de Gemini que deseas usar en tus solicitudes. Seleccionar un modelo específico te permite usar sus capacidades únicas para tus tareas. Consulta los modelos de Gemini disponibles en GDC.
- Comprende cómo redactar tus instrucciones con cuidado para obtener las respuestas esperadas de Gemini. Experimenta con diferentes estilos y formatos de instrucciones para optimizar el resultado. Para obtener más información, consulta Introducción a las instrucciones.
- Explora los distintos parámetros disponibles en el extremo de OpenAI Chat Completions para controlar el comportamiento de Gemini. Ajusta parámetros como
temperature,max_completion_tokensytop_ppara controlar la creatividad, la longitud y la diversidad del texto generado. Para obtener más información, consulta Experimenta con parámetros.
Sintaxis de la solicitud
Los siguientes ejemplos contienen la sintaxis que debes usar en tus solicitudes a la API para generar una respuesta del modelo:
Python
import openai
client = openai.OpenAI()
model_response = client.chat.completions.create(
model = "MODEL_ID",
messages = [
{
...
}
]
...
)
print(model_response)
curl
curl \
-X POST "https://ENDPOINT:443/v1/projects/PROJECT/locations/PROJECT/chat/completions" \
-H "Content-Type: application/json; charset=utf-8" \
-H "Authorization: Bearer $(gdcloud auth print-identity-token)" \
-d '{
"model_id": "MODEL_ID",
"messages" = [
{
...
}
]
...
}'
Parámetros de la API
En esta sección, se incluye una lista de los parámetros más importantes que puedes definir en el cuerpo de la solicitud de tus solicitudes a la API de Gemini en GDC y el cuerpo de la respuesta que debe devolver el modelo. Para obtener la referencia completa de la API del extremo de Chat Completions de OpenAI, consulta https://platform.openai.com/docs/api-reference/chat.
Cuerpo de la solicitud
{
"messages" = [
{
"role": string,
"content": [
{
"type": "image_url",
"image_url": {
"url": string
}
},
{
"type": "input_audio",
"input_audio": {
"data": string,
"format": string
}
},
{
"type": "audio_url",
"audio_url": {
"url": string
}
},
{
"type": "input_video",
"input_video": {
"data": string,
"format": string
}
},
{
"type": "video_url",
"video_url": {
"url": string
}
},
{
"type": "input_document",
"input_document": {
"data": string,
"format": string
}
},
{
"type": "document_url",
"document_url": {
"url": string
}
}
]
}
],
"temperature": number,
"max_completion_tokens": integer,
"top_p": number,
"n": integer,
"stop": string,
"user": string
}
En la siguiente tabla, se describen los campos clave y sus descripciones en el cuerpo de la solicitud para el extremo de Chat Completions de OpenAI cuando se usa con Gemini:
| Parámetros | ||
|---|---|---|
| Nombre del campo | Descripción | |
|
Obligatorio: Es el modelo de Gemini que se usará. Para obtener más información, consulta los modelos de Gemini disponibles. |
|
|
Obligatorio: Es una lista de mensajes que componen la conversación actual con el modelo. Cada mensaje tiene un Se admiten diferentes tipos de mensajes (modalidades), como texto, imágenes, audio, videos y documentos. |
|
|
Obligatorio: Es el rol del autor del mensaje, que puede ser uno de los siguientes:
|
|
|
Obligatorio: Es el contenido del mensaje del sistema, el usuario o el asistente. El valor es una sola instancia para las consultas de un solo turno. Para las consultas de varios turnos, |
|
|
Opcional: Es la aleatoriedad del texto generado. Los valores más bajos (más cercanos a La configuración predeterminada es |
|
|
Opcional: Es la cantidad máxima de tokens que se pueden generar en la respuesta, incluidos los tokens de salida visibles y los tokens de razonamiento. |
|
|
Opcional: Es la probabilidad de muestreo del núcleo. Los valores más altos (más cercanos a La configuración predeterminada es |
|
|
Opcional: Cantidad de finalizaciones que se generarán para cada instrucción. La configuración predeterminada es |
|
|
Opcional: Es una lista de cadenas que, cuando se encuentran, detienen el proceso de generación de texto. La configuración predeterminada es |
|
|
Opcional: Es un identificador único para el usuario final. Este parámetro te permite hacer un seguimiento de los patrones de uso y personalizar las respuestas. |
|
content
Este campo es el tipo de datos estructurados base que contiene el contenido de varias partes de un mensaje.
Si la entrada es una instrucción de texto, el valor de este campo es una cadena. Sin embargo, para las instrucciones multimodales, este campo consta de un array que contiene dos propiedades principales en cada objeto: type y INPUT. La propiedad type
denota el tipo de contenido de la entrada multimodal, mientras que la propiedad
INPUT contiene el elemento de entrada, representado como datos codificados en base64 o una URL de un bucket de almacenamiento de GDC.
En la siguiente tabla, se describen los campos clave de content y sus descripciones para las instrucciones multimodales:
| Nombre del campo | Descripción | |
|---|---|---|
|
Obligatorio: Es el tipo de contenido para las instrucciones multimodales. Los valores aceptables son los siguientes:
|
|
|
Obligatorio: Es el contenido de entrada para las instrucciones multimodales. El nombre de este campo debe ser el mismo que el valor especificado en el campo Por lo tanto, este nombre de campo es uno de los siguientes:
Cada campo de entrada tiene un |
|
|
Opcional: Si el contenido de entrada se proporciona como una URL, es la ruta de acceso al archivo en un bucket de almacenamiento de GDC. En el caso de las imágenes, este campo puede contener datos codificados en base64 en lugar de una URL. |
|
|
Opcional: Si el contenido de entrada se proporciona como datos codificados en base64, son los datos binarios convertidos en una cadena de caracteres. En el caso de las imágenes, los datos codificados en base64 se proporcionan en el campo |
|
|
Opcional: Si el contenido de entrada se proporciona en el campo Se admiten diferentes formatos según los datos de entrada. Para obtener más información, consulta los tipos de MIME para imágenes, audio, videos y documentos. |
|
Cuerpo de la respuesta
{
"id": string,
"object": string,
"created": integer,
"model": string,
"choices": [
{
"index": integer,
"message": {
"role": string,
"content": string,
"refusal": null
},
"logprobs": null,
"finish_reason": string
}
],
"usage": {
"completion_tokens": integer,
"prompt_tokens": integer,
"total_tokens": integer
},
"system_fingerprint": string
}
En la siguiente tabla, se describen los campos clave y sus descripciones en el cuerpo de la respuesta que devuelve el modelo según la entrada proporcionada:
| Nombre del campo | Descripción | |
|---|---|---|
|
Es un identificador único para el texto generado. |
|
|
Es el tipo de objeto, que siempre es |
|
|
Es la marca de tiempo en segundos de cuando se generó el texto. |
|
|
Es el modelo que se usó para generar el texto. |
|
|
Es una lista de opciones de generación de texto. Este campo puede contener varias opciones si |
|
|
Índice de la opción en la lista de opciones. |
|
|
Es un mensaje de generación de texto que genera el modelo. Este campo contiene las siguientes propiedades:
|
|
|
Es la información de probabilidad del registro para la opción. |
|
|
Es el motivo por el que el modelo dejó de generar tokens. El valor es uno de los siguientes:
|
|
|
Son las estadísticas de uso de la solicitud. |
|
|
Cantidad de tokens en el texto generado. |
|
|
Cantidad de tokens en la instrucción. |
|
|
Cantidad total de tokens en la instrucción y el texto generado. |
|
|
Es la configuración del backend que usa el modelo para ejecutarse. |
|
Ejemplos
En esta sección, se incluye un ejemplo del cuerpo de la solicitud y de la respuesta de generación de texto que debe devolver el modelo.
Ejemplo de solicitud
En el siguiente ejemplo, se muestran los detalles de un cuerpo de solicitud que envía una instrucción a Gemini para generar texto. El ejemplo contiene controles de temperatura y de cantidad máxima de tokens. Para obtener detalles sobre la implementación, consulta Envía una instrucción de texto o Envía una instrucción multimodal.
{
"messages": [
{
"role": "system",
"content": "You are a helpful and informative assistant."
},
{
"role": "user",
"content": "What is the capital of France?"
}
],
"temperature": 0.7,
"max_completion_tokens": 100
}
Respuesta de ejemplo
En el siguiente ejemplo, se muestran los detalles de una respuesta de generación de texto que devolvió el modelo:
{
"id": "",
"object": "",
"created": 0,
"model": "",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "The capital of France is Paris.\n",
"refusal": null
},
"logprobs": null,
"finish_reason": "stop"
}
],
"usage": {
"completion_tokens": 7,
"prompt_tokens": 8,
"total_tokens": 15
},
"system_fingerprint": ""
}