Usa bibliotecas de OpenAI con Vertex AI
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
En este documento, se muestra cómo usar la API de Chat Completions compatible con OpenAI para interactuar con los modelos de Vertex AI. En este documento, se incluyen los siguientes temas:
La API de Chat Completions es un extremo compatible con OpenAI que te permite usar las bibliotecas de OpenAI Python y REST para interactuar con Gemini en Vertex AI. Si ya usas las bibliotecas de OpenAI, esta API ofrece una forma de cambiar entre los modelos de OpenAI y los modelos alojados de Vertex AI para comparar el resultado, el costo y la escalabilidad con cambios mínimos en tu código existente. Si no usas las bibliotecas de OpenAI, te recomendamos que uses el SDK de IA generativa de Google.
Modelos compatibles
La API de Chat Completions admite tanto los modelos de Gemini como algunos modelos autoincluidos de Model Garden.
Modelos de Gemini
La API de Chat Completions admite los siguientes modelos de Gemini:
Modelos implementados por el usuario desde Model Garden
Los contenedores Hugging Face Text Generation Interface (HF TGI) y vLLM prediseñado de Model Garden de Vertex AI 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:
Parámetros admitidos
En el caso de 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 con 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 en base64 con 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.
No se admite la opción detail .
Assistant message
Tool message
Function message : Este campo es obsoleto, pero se admite para versiones anteriores.
|
model |
max_completion_tokens |
Alias de max_tokens . |
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 los campos
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
es compatible.
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
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. |
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, incluidos los de imagen, 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 de MIME image/* y image_url como datos de BLOB se puede usar como cualquier entrada multimodal.
detail: De manera similar a la resolución de medios, este parámetro determina la cantidad máxima de tokens por imagen para la solicitud. Ten en cuenta que, si bien el campo de OpenAI es por imagen, Gemini aplica el mismo nivel de detalle en toda la solicitud, y si se pasan varios tipos de detalle en una solicitud, se generará un error.
|
En general, el parámetro data
puede ser un URI o una combinación de tipo de MIME y bytes codificados en base64 con 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 en 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
Para usar funciones compatibles con Gemini, pero no con los modelos de OpenAI, pásalas como parámetros dentro de un campo extra_content
o extra_body
. Si pasas estas funciones fuera de estos campos, se ignorarán.
extra_body
funciones
Para usar las funciones extra_body
específicas de Gemini, inclúyelas en un campo google
.
{
...,
"extra_body": {
"google": {
...,
// Add extra_body features here.
}
}
}
safety_settings |
Esto corresponde al SafetySetting de Gemini. |
cached_content |
Esto corresponde al GenerateContentRequest.cached_content de Gemini. |
thinking_config |
Esto corresponde al GenerationConfig.ThinkingConfig de Gemini. |
thought_tag_marker |
Se usa para separar las ideas de un modelo de sus respuestas en los modelos con la función Thinking disponible.
Si no se especifica, no se devolverán etiquetas relacionadas con las reflexiones del modelo. Si están presentes, 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. |
El campo extra_part
te permite especificar parámetros de configuración adicionales para cada Part
. Para usar las funciones extra_part
específicas de Gemini, inclúyelas en un campo google
.
{
...,
"extra_part": {
"google": {
...,
// Add extra_part features here.
}
}
}
extra_content |
Es un campo para agregar contenido específico de Gemini que no se debe ignorar. |
thought |
Esto marcará explícitamente si un campo es un pensamiento (y tendrá prioridad sobre thought_tag_marker ). Se debe usar para especificar si una llamada a la herramienta forma parte de un pensamiento o no. |
¿Qué sigue?