OpenAI compatibility

Puedes acceder a los modelos de Gemini con las bibliotecas de OpenAI (Python y TypeScript / JavaScript) junto con la API de REST. Para ello, actualiza tres líneas de código y usa tu clave de API de Gemini. Obtén más información sobre esta función en la guía de compatibilidad.

Método: chatCompletions

Genera un conjunto de respuestas del modelo a partir de una entrada de historial de chat.

Extremo

publicación https://generativelanguage.googleapis.com/v1beta:chatCompletions

La URL usa la sintaxis de la transcodificación gRPC.

Cuerpo de la solicitud

El cuerpo de la solicitud contiene datos con la siguiente estructura:

Campos
model string

Obligatorio. Es el nombre del Model que se usará para generar la finalización. El nombre del modelo tendrá el prefijo "models/" si no aparece una barra diagonal.

messages[] object (Struct format)

Obligatorio. Es el historial de chat que se usará para generar la finalización. Admite consultas de una o varias instrucciones. Nota: Este es un campo polimórfico que se deserializa en un InternalChatMessage.

stream boolean

Opcional. Indica si se debe transmitir la respuesta o mostrar una sola respuesta.

Si es verdadero, el campo "object" en la respuesta será "chat.completion.chunk". De lo contrario, será "chat.completion".

streamOptions object (StreamOptions)

Opcional. Son opciones para las solicitudes de transmisión.

tools[] object (ChatTool)

Opcional. Es el conjunto de herramientas para las que el modelo puede generar llamadas. Cada herramienta declara su firma.

toolChoice value (Value format)

Opcional. Controla si el modelo debe usar una herramienta o no, y qué herramienta usar. Puede ser una de las siguientes opciones: - La cadena "none" para inhabilitar las herramientas. - La cadena "auto" para permitir que el modelo decida. - La cadena "required" para forzar al modelo a usar una herramienta. - Un objeto descriptor de nombre de función que especifica la herramienta que se usará. La última opción sigue el siguiente esquema: { "type": "function", "function": {"name" : "the_function_name"} }

n integer

Opcional. Cantidad de finalizaciones de candidatos que se generarán. Debe ser un número entero positivo. Si la opción no está configurada, se establece en 1 de forma predeterminada.

stop value (Value format)

Opcional. Es el conjunto de secuencias de caracteres que detendrán la generación de resultados. Nota: Este es un campo polimórfico. Debe contener una cadena o cadenas repetidas.

maxCompletionTokens integer

Opcional. Es la cantidad máxima de tokens que se pueden incluir en una respuesta candidata. Debe ser un número entero positivo.

maxTokens integer

Opcional. Es la cantidad máxima de tokens que se pueden incluir en una respuesta candidata. Debe ser un número entero positivo. El SDK dejó de usar este campo.

temperature number

Opcional. Controla la aleatoriedad del resultado.

topP number

Opcional. Es la probabilidad acumulativa máxima de los tokens que se deben tener en cuenta cuando se realiza el muestreo.

responseFormat object (ResponseFormat)

Opcional. Define el formato de la respuesta. Si no se establece, la respuesta tendrá formato de texto.

Cuerpo de la respuesta

Si se ejecuta de forma correcta, la respuesta es una respuesta HTTP genérica, y el método define su formato.

Método: embeddings

Genera incorporaciones del modelo a partir de una entrada.

Extremo

publicación https://generativelanguage.googleapis.com/v1beta/embeddings

La URL usa la sintaxis de la transcodificación gRPC.

Cuerpo de la solicitud

El cuerpo de la solicitud contiene datos con la siguiente estructura:

Campos
input value (Value format)

Obligatorio. La entrada para la que se generarán las incorporaciones. Puede ser una cadena o una lista de cadenas. El SDK admite una lista de números y una lista de listas de números, pero aún no se implementó.

model string

Obligatorio. Es el modelo para el que se generarán las incorporaciones.

encodingFormat string

Opcional. Es el formato de la codificación. Debe ser "float" o "base64".

dimensions integer

Opcional. Es el tamaño dimensional de las incorporaciones generadas.

Cuerpo de la respuesta

Si se ejecuta de forma correcta, el cuerpo de la respuesta contiene una instancia de GenerateEmbeddingsResponse.

Método: listModels

Muestra una lista de los modelos disponibles actualmente.

Extremo

get https://generativelanguage.googleapis.com/v1beta/listModels

La URL usa la sintaxis de la transcodificación gRPC.

Cuerpo de la solicitud

El cuerpo de la solicitud debe estar vacío.

Cuerpo de la respuesta

Si se ejecuta de forma correcta, el cuerpo de la respuesta contiene una instancia de SdkListModelsResponse.

Método: chat.completions

Genera un conjunto de respuestas del modelo a partir de una entrada de historial de chat.

Extremo

publicación https://generativelanguage.googleapis.com/v1beta/chat/completions

La URL usa la sintaxis de la transcodificación gRPC.

Cuerpo de la solicitud

El cuerpo de la solicitud contiene datos con la siguiente estructura:

Campos
model string

Obligatorio. Es el nombre del Model que se usará para generar la finalización. El nombre del modelo tendrá el prefijo "models/" si no aparece una barra diagonal.

messages[] object (Struct format)

Obligatorio. Es el historial de chat que se usará para generar la finalización. Admite consultas de una o varias instrucciones. Nota: Este es un campo polimórfico que se deserializa en un InternalChatMessage.

stream boolean

Opcional. Indica si se debe transmitir la respuesta o mostrar una sola respuesta.

Si es verdadero, el campo "object" en la respuesta será "chat.completion.chunk". De lo contrario, será "chat.completion".

streamOptions object (StreamOptions)

Opcional. Son opciones para las solicitudes de transmisión.

tools[] object (ChatTool)

Opcional. Es el conjunto de herramientas para las que el modelo puede generar llamadas. Cada herramienta declara su firma.

toolChoice value (Value format)

Opcional. Controla si el modelo debe usar una herramienta o no, y qué herramienta usar. Puede ser una de las siguientes opciones: - La cadena "none" para inhabilitar las herramientas. - La cadena "auto" para permitir que el modelo decida. - La cadena "required" para forzar al modelo a usar una herramienta. - Un objeto descriptor de nombre de función que especifica la herramienta que se usará. La última opción sigue el siguiente esquema: { "type": "function", "function": {"name" : "the_function_name"} }

n integer

Opcional. Cantidad de finalizaciones de candidatos que se generarán. Debe ser un número entero positivo. Si la opción no está configurada, se establece en 1 de forma predeterminada.

stop value (Value format)

Opcional. Es el conjunto de secuencias de caracteres que detendrán la generación de resultados. Nota: Este es un campo polimórfico. Debe contener una cadena o cadenas repetidas.

maxCompletionTokens integer

Opcional. Es la cantidad máxima de tokens que se pueden incluir en una respuesta candidata. Debe ser un número entero positivo.

maxTokens integer

Opcional. Es la cantidad máxima de tokens que se pueden incluir en una respuesta candidata. Debe ser un número entero positivo. El SDK dejó de usar este campo.

temperature number

Opcional. Controla la aleatoriedad del resultado.

topP number

Opcional. Es la probabilidad acumulativa máxima de los tokens que se deben tener en cuenta cuando se realiza el muestreo.

responseFormat object (ResponseFormat)

Opcional. Define el formato de la respuesta. Si no se establece, la respuesta tendrá formato de texto.

Cuerpo de la respuesta

Si se ejecuta de forma correcta, la respuesta es una respuesta HTTP genérica, y el método define su formato.

Método: embeddings.generate

Genera incorporaciones del modelo a partir de una entrada.

Extremo

publicación https://generativelanguage.googleapis.com/v1beta/embeddings:generate

La URL usa la sintaxis de la transcodificación gRPC.

Cuerpo de la solicitud

El cuerpo de la solicitud contiene datos con la siguiente estructura:

Campos
input value (Value format)

Obligatorio. La entrada para la que se generarán las incorporaciones. Puede ser una cadena o una lista de cadenas. El SDK admite una lista de números y una lista de listas de números, pero aún no se implementó.

model string

Obligatorio. Es el modelo para el que se generarán las incorporaciones.

encodingFormat string

Opcional. Es el formato de la codificación. Debe ser "float" o "base64".

dimensions integer

Opcional. Es el tamaño dimensional de las incorporaciones generadas.

Cuerpo de la respuesta

Si se ejecuta de forma correcta, el cuerpo de la respuesta contiene una instancia de GenerateEmbeddingsResponse.

Método: openai.chat.completions

Genera un conjunto de respuestas del modelo a partir de una entrada de historial de chat.

Extremo

publicación https://generativelanguage.googleapis.com/v1beta/openai/chat/completions

La URL usa la sintaxis de la transcodificación gRPC.

Cuerpo de la solicitud

El cuerpo de la solicitud contiene datos con la siguiente estructura:

Campos
model string

Obligatorio. Es el nombre del Model que se usará para generar la finalización. El nombre del modelo tendrá el prefijo "models/" si no aparece una barra diagonal.

messages[] object (Struct format)

Obligatorio. Es el historial de chat que se usará para generar la finalización. Admite consultas de una o varias instrucciones. Nota: Este es un campo polimórfico que se deserializa en un InternalChatMessage.

stream boolean

Opcional. Indica si se debe transmitir la respuesta o mostrar una sola respuesta.

Si es verdadero, el campo "object" en la respuesta será "chat.completion.chunk". De lo contrario, será "chat.completion".

streamOptions object (StreamOptions)

Opcional. Son opciones para las solicitudes de transmisión.

tools[] object (ChatTool)

Opcional. Es el conjunto de herramientas para las que el modelo puede generar llamadas. Cada herramienta declara su firma.

toolChoice value (Value format)

Opcional. Controla si el modelo debe usar una herramienta o no, y qué herramienta usar. Puede ser una de las siguientes opciones: - La cadena "none" para inhabilitar las herramientas. - La cadena "auto" para permitir que el modelo decida. - La cadena "required" para forzar al modelo a usar una herramienta. - Un objeto descriptor de nombre de función que especifica la herramienta que se usará. La última opción sigue el siguiente esquema: { "type": "function", "function": {"name" : "the_function_name"} }

n integer

Opcional. Cantidad de finalizaciones de candidatos que se generarán. Debe ser un número entero positivo. Si la opción no está configurada, se establece en 1 de forma predeterminada.

stop value (Value format)

Opcional. Es el conjunto de secuencias de caracteres que detendrán la generación de resultados. Nota: Este es un campo polimórfico. Debe contener una cadena o cadenas repetidas.

maxCompletionTokens integer

Opcional. Es la cantidad máxima de tokens que se pueden incluir en una respuesta candidata. Debe ser un número entero positivo.

maxTokens integer

Opcional. Es la cantidad máxima de tokens que se pueden incluir en una respuesta candidata. Debe ser un número entero positivo. El SDK dejó de usar este campo.

temperature number

Opcional. Controla la aleatoriedad del resultado.

topP number

Opcional. Es la probabilidad acumulativa máxima de los tokens que se deben tener en cuenta cuando se realiza el muestreo.

responseFormat object (ResponseFormat)

Opcional. Define el formato de la respuesta. Si no se establece, la respuesta tendrá formato de texto.

Cuerpo de la respuesta

Si se ejecuta de forma correcta, la respuesta es una respuesta HTTP genérica, y el método define su formato.

Método: openai.embeddings

Genera incorporaciones del modelo a partir de una entrada.

Extremo

publicación https://generativelanguage.googleapis.com/v1beta/openai/embeddings

La URL usa la sintaxis de la transcodificación gRPC.

Cuerpo de la solicitud

El cuerpo de la solicitud contiene datos con la siguiente estructura:

Campos
input value (Value format)

Obligatorio. La entrada para la que se generarán las incorporaciones. Puede ser una cadena o una lista de cadenas. El SDK admite una lista de números y una lista de listas de números, pero aún no se implementó.

model string

Obligatorio. Es el modelo para el que se generarán las incorporaciones.

encodingFormat string

Opcional. Es el formato de la codificación. Debe ser "float" o "base64".

dimensions integer

Opcional. Es el tamaño dimensional de las incorporaciones generadas.

Cuerpo de la respuesta

Si se ejecuta de forma correcta, el cuerpo de la respuesta contiene una instancia de GenerateEmbeddingsResponse.

Método: openai.models

Muestra una lista de los modelos disponibles actualmente.

Extremo

get https://generativelanguage.googleapis.com/v1beta/openai/models

La URL usa la sintaxis de la transcodificación gRPC.

Cuerpo de la solicitud

El cuerpo de la solicitud debe estar vacío.

Cuerpo de la respuesta

Si se ejecuta de forma correcta, el cuerpo de la respuesta contiene una instancia de SdkListModelsResponse.

ChatTool

Es una herramienta para la que el modelo puede generar llamadas.

Campos
function object (ChatFunction)

Obligatorio. Es el nombre de la herramienta.

type string

Obligatorio. Obligatorio, debe ser "function".

Representación JSON
{
  "function": {
    object (ChatFunction)
  },
  "type": string
}

ChatFunction

Es una función para la que el modelo puede generar llamadas.

Campos
name string

Obligatorio. Es el nombre de la función.

description string

Opcional. Es una descripción de la función.

parameters object (Struct format)

Opcional. Los parámetros de la función.

strict boolean

Opcional. Indica si la validación del esquema es estricta. Si es verdadero, el modelo fallará si el esquema no es válido. NOTA: Actualmente, se ignora este parámetro.

Representación JSON
{
  "name": string,
  "description": string,
  "parameters": {
    object
  },
  "strict": boolean
}

GenerateEmbeddingsResponse

Es la respuesta para la generación de incorporaciones.

Campos
object string

Solo salida. Siempre se "incorpora", lo que es obligatorio para el SDK.

data[] object (GenerateEmbeddingsEmbedding)

Solo salida. Es una lista de las incorporaciones solicitadas.

model string

Solo salida. Es el modelo que se usa para generar las incorporaciones.

Representación JSON
{
  "object": string,
  "data": [
    {
      object (GenerateEmbeddingsEmbedding)
    }
  ],
  "model": string
}

GenerateEmbeddingsEmbedding

Un vector de incorporación que genera el modelo.

Campos
object string

Solo salida. Siempre se "incorpora", lo que es obligatorio para el SDK.

index integer

Solo salida. Es el índice de la incorporación en la lista de incorporaciones.

embedding value (Value format)

Solo salida. El vector de incorporación generado para la entrada. Puede ser una lista de números de punto flotante o una cadena en base64 que codifique una lista de números de punto flotante con diseño de estilo C (compatible con Numpy).

Representación JSON
{
  "object": string,
  "index": integer,
  "embedding": value
}

HttpBody

Mensaje que representa un cuerpo HTTP arbitrario. Solo debería usarse para formatos de carga útil que no pueden representarse como JSON, por ejemplo, datos binarios sin procesar o una página HTML.

Este mensaje se puede usar en métodos de API de transmisión y de no transmisión, en la solicitud y en la respuesta.

Se puede usar como campo de solicitud de alto nivel, que es conveniente si alguien quiere extraer parámetros de la plantilla de URL o HTTP para los campos de solicitudes y también quiere acceder al cuerpo HTTP sin procesar.

Ejemplo:

message GetResourceRequest {
  // A unique request id.
  string requestId = 1;

  // The raw HTTP body is bound to this field.
  google.api.HttpBody http_body = 2;

}

service ResourceService {
  rpc GetResource(GetResourceRequest)
    returns (google.api.HttpBody);
  rpc UpdateResource(google.api.HttpBody)
    returns (google.protobuf.Empty);

}

Ejemplo con métodos de transmisión:

service CaldavService {
  rpc GetCalendar(stream google.api.HttpBody)
    returns (stream google.api.HttpBody);
  rpc UpdateCalendar(stream google.api.HttpBody)
    returns (stream google.api.HttpBody);

}

El uso de este tipo solo cambia la manera en que se manejan los cuerpos de la solicitud y la respuesta. Las demás funciones seguirán funcionando sin cambios.

Campos
contentType string

El valor del encabezado HTTP de Content-Type que especifica el tipo de contenido del cuerpo.

data string (bytes format)

El cuerpo de la solicitud/respuesta HTTP como objeto binario sin procesar.

String codificada en base 64.

extensions[] object

Metadatos de la respuesta específica de la aplicación. Se deben configurar en la primera respuesta para las API de transmisión.

Un objeto que contiene campos de un tipo arbitrario. Un campo adicional "@type" contiene una URI que identifica el tipo. Ejemplo: { "id": 1234, "@type": "types.example.com/standard/id" }.

Representación JSON
{
  "contentType": string,
  "data": string,
  "extensions": [
    {
      "@type": string,
      field1: ...,
      ...
    }
  ]
}

ResponseFormat

Define el formato de la respuesta.

Campos
type string

Obligatorio. Es el tipo de respuesta. Puede ser "text": Da formato a la respuesta como texto. - "json_object": Da formato a la respuesta como un objeto JSON. - "jsonSchema": Da formato a la respuesta como un objeto JSON siguiendo el esquema determinado.

jsonSchema object (ResponseFormatSchema)

Opcional. Es el esquema JSON que se debe seguir. Solo se usa si el tipo es "jsonSchema".

Representación JSON
{
  "type": string,
  "jsonSchema": {
    object (ResponseFormatSchema)
  }
}

ResponseFormatSchema

Esquema de la respuesta.

Campos
description string

Opcional. Descripción del objeto que representa el esquema.

name string

Obligatorio. Es el nombre del tipo de objeto que representa el esquema.

strict boolean

Opcional. Indica si la validación del esquema es estricta. Si es verdadero, el modelo fallará si el esquema no es válido. NOTA: Actualmente, se ignora este parámetro.

schema object (Struct format)

Opcional. Es el esquema JSON que se debe seguir.

Representación JSON
{
  "description": string,
  "name": string,
  "strict": boolean,
  "schema": {
    object
  }
}

SdkListModelsResponse

Respuesta para los modelos de lista.

Campos
object string

Solo salida. Siempre es "list", que es obligatorio para el SDK.

data[] object (SdkModel)

Solo salida. Es una lista de las incorporaciones solicitadas.

Representación JSON
{
  "object": string,
  "data": [
    {
      object (SdkModel)
    }
  ]
}

SdkModel

Es el objeto del modelo.

Campos
id string

Solo salida. Es el ID del modelo.

object string

Solo salida. Siempre es "model", que es obligatorio para el SDK.

created string (int64 format)

Solo salida. La marca de tiempo de Unix (en segundos) cuando se creó el modelo.

owned_by string

Solo salida. La organización propietaria del modelo.

Representación JSON
{
  "id": string,
  "object": string,
  "created": string,
  "owned_by": string
}

StreamOptions

Son opciones para las solicitudes de transmisión.

Campos
includeUsage boolean

Opcional. Si se establece, incluye las estadísticas de uso en la respuesta.

Representación JSON
{
  "includeUsage": boolean
}