Compartir vía


Referencia: Finalizaciones de chat | Inteligencia artificial de Azure Studio

Importante

Los elementos marcados (versión preliminar) en este artículo se encuentran actualmente en versión preliminar pública. Esta versión preliminar se ofrece sin acuerdo de nivel de servicio y no se recomienda para las cargas de trabajo de producción. Es posible que algunas características no sean compatibles o que tengan sus funcionalidades limitadas. Para más información, consulte Términos de uso complementarios de las Versiones Preliminares de Microsoft Azure.

Crea una respuesta de modelo para la conversación de chat determinada.

POST /chat/completions?api-version=2024-04-01-preview

Parámetros de identificador URI

Nombre En Obligatorio Type Descripción
api-version Query True string La versión de la API con el formato "AAAA-MM-DD" o "AAAA-MM-DD-preview".

Encabezado de solicitud

Nombre Obligatorio Type Descripción
parámetros adicionales string El comportamiento de la API cuando se indican parámetros adicionales en la carga. El uso de pass-through hace que la API pase el parámetro al modelo subyacente. Use este valor cuando desee pasar parámetros que sepa que el modelo subyacente puede admitir. El uso de ignore hace que la API quite cualquier parámetro no compatible. Use este valor cuando necesite usar la misma carga en diferentes modelos, pero uno de los parámetros adicionales puede hacer que se produzca un error en un modelo si no se admite. El uso de error hace que la API rechace cualquier parámetro adicional en la carga. Solo se pueden indicar los parámetros especificados en esta API o se devuelve un error 400.
azureml-model-deployment string Nombre de la implementación a la que desea enrutar la solicitud. Compatible con puntos de conexión que admiten varias implementaciones.

Cuerpo de la solicitud

Nombre Obligatorio Type Descripción
model string Nombre del modelo. Este parámetro se omite si el punto de conexión solo sirve a un modelo.
messages True ChatCompletionRequestMessage Una lista de mensajes que componen la conversación hasta ahora. Devuelve un error 422 si el modelo no puede entender al menos algunos de los mensajes.
frequency_penalty number Ayuda a evitar repeticiones de palabras al reducir la posibilidad de que se seleccione una palabra si ya se ha usado. Cuanto mayor sea la penalización de frecuencia, menos probable es que el modelo repita las mismas palabras en su salida. Devuelve un error 422 si el modelo no admite el valor o el parámetro.
max_tokens integer Número máximo de tokens que se pueden generar en la finalización del chat.

La longitud total de los tokens de entrada y los tokens generados está limitado por la longitud de contexto del modelo. Pasar un valor nulo hace que el modelo use su longitud máxima de contexto.
presence_penalty number Ayuda a evitar que se repitan los mismos temas penalizando una palabra si ya existe en la finalización, aunque sea solo una vez. Devuelve un error 422 si el modelo no admite el valor o el parámetro.
response_format ChatCompletionResponseFormat
seed integer Si se especifica, el sistema realizará un mejor esfuerzo para muestrear de forma determinista, de modo que las solicitudes repetidas con un mismo seed y parámetros deben devolver el mismo resultado. No se garantiza el determinismo y debe hacer referencia al parámetro de respuesta system_fingerprint para supervisar los cambios en el back-end.
stop Secuencias en las que la API dejará de generar más tokens.
flujo boolean Si se establece, se enviarán deltas de mensajes parciales. Los tokens se enviarán como eventos enviados por el servidor solo de datos a medida que estén disponibles, con la transmisión terminada por un mensaje data: [DONE].
temperatura number Número no negativo. Devuelve 422 si el modelo no admite el valor.
tool_choice ChatCompletionToolChoiceOption Controla la función (si existe) a la que llama el modelo. none significa que el modelo no llamará a una función y, en su lugar, generará un mensaje. auto significa que el modelo puede elegir entre generar un mensaje o llamar a una función. Especificar una función determinada a través de {"type": "function", "function": {"name": "my_function"}} obliga al modelo a llamar a esa función.

none es el valor predeterminado cuando no hay funciones presentes. auto es el valor predeterminado si hay funciones. Devuelve un error 422 si el modelo no admite la herramienta.
tools ChatCompletionTool[] Una lista de herramientas a las que puede llamar el modelo. Actualmente, solo se admiten funciones como una herramienta. Úselo para proporcionar una lista de funciones para las que el modelo puede generar entradas JSON. Devuelve un error 422 si el modelo no admite la herramienta.
top_p number Una alternativa al muestreo con temperatura, llamada muestreo de núcleo, donde el modelo considera los resultados de los tokens con masa de probabilidad top_p. Así, 0,1 significa que solo se consideran los tokens que comprenden la masa de probabilidad del 10% superior.

Por lo general, recomendamos modificar esto o temperature, pero no ambos.

Respuestas

Nombre Escribir Descripción
200 OK CreateChatCompletionResponse OK (CORRECTO)
401 No autorizado UnauthorizedError Falta el token de acceso o no es válido

encabezados

x-ms-error-code: cadena
404 No encontrado NotFoundError Modalidad no compatible con el modelo. Compruebe la documentación del modelo para ver qué rutas están disponibles.

encabezados

x-ms-error-code: cadena
422 Entidad no procesable UnprocessableContentError La solicitud contiene contenido no procesable

encabezados

x-ms-error-code: cadena
429 Demasiadas solicitudes TooManyRequestsError Ha alcanzado el límite de tasa asignado y su solicitud necesita controlarse.

encabezados

x-ms-error-code: cadena
Otros códigos de estado ContentFilterError Solicitud incorrecta

encabezados

x-ms-error-code: cadena

Seguridad

Authorization

El token con el prefijo Bearer:, por ejemplo, Bearer abcde12345

Tipo: apiKey
En: encabezado

AADToken

Autenticación OAuth2 de Azure Active Directory

Tipo: oauth2
Flujo: aplicación
Dirección URL del token: https://login.microsoftonline.com/common/oauth2/v2.0/token

Ejemplos

Crea una respuesta de modelo para la conversación de chat determinada

Solicitud de muestra

POST /chat/completions?api-version=2024-04-01-preview

{
  "messages": [
    {
      "role": "system",
      "content": "You are a helpful assistant"
    },
    {
      "role": "user",
      "content": "Explain Riemann's conjecture"
    },
    {
      "role": "assistant",
      "content": "The Riemann Conjecture is a deep mathematical conjecture around prime numbers and how they can be predicted. It was first published in Riemann's groundbreaking 1859 paper. The conjecture states that the Riemann zeta function has its zeros only at the negative even integers and complex numbers with real part 1/21. Many consider it to be the most important unsolved problem in pure mathematics. The Riemann hypothesis is a way to predict the probability that numbers in a certain range are prime that was also devised by German mathematician Bernhard Riemann in 18594."
    },
    {
      "role": "user",
      "content": "Ist it proved?"
    }
  ],
  "frequency_penalty": 0,
  "presence_penalty": 0,
  "max_tokens": 256,
  "seed": 42,
  "stop": "<|endoftext|>",
  "stream": false,
  "temperature": 0,
  "top_p": 1,
  "response_format": { "type": "text" }
}

Respuesta de ejemplo

Código de estado: 200

{
  "id": "1234567890",
  "model": "llama2-70b-chat",
  "choices": [
    {
      "index": 0,
      "finish_reason": "stop",
      "message": {
        "role": "assistant",
        "content": "No, it has never been proved"
      }
    }
  ],
  "created": 1234567890,
  "object": "chat.completion",
  "usage": {
    "prompt_tokens": 205,
    "completion_tokens": 5,
    "total_tokens": 210
  }
}

Definiciones

Nombre Descripción
ChatCompletionRequestMessage
ChatCompletionMessageContentPart
ChatCompletionMessageContentPartType
ChatCompletionToolChoiceOption Controla la función (si existe) a la que llama el modelo. none significa que el modelo no llamará a una función y, en su lugar, generará un mensaje. auto significa que el modelo puede elegir entre generar un mensaje o llamar a una función. Especificar una función determinada a través de {"type": "function", "function": {"name": "my_function"}} obliga al modelo a llamar a esa función.

none es el valor predeterminado cuando no hay funciones presentes. auto es el valor predeterminado si hay funciones. Devuelve un error 422 si el modelo no admite la herramienta.
ChatCompletionFinishReason Motivo por el que el modelo dejó de generar tokens. Esto será stop si el modelo alcanza un punto de detención natural o una secuencia de detención proporcionada, length si se ha alcanzado el número máximo de tokens especificados en la solicitud, content_filter si se ha omitido el contenido debido a una marca de nuestros filtros de contenido, tool_calls si el modelo llamó a una herramienta.
ChatCompletionMessageToolCall
ChatCompletionObject Tipo de objeto, que siempre es chat.completion.
ChatCompletionResponseFormat Formato de respuesta para la respuesta del modelo. La configuración en json_object habilita el modo JSON, lo que garantiza que el mensaje que genera el modelo es JSON válido. Al usar el modo JSON, también debe indicar al modelo que genere JSON usted mismo mediante un mensaje de usuario o sistema. Tenga en cuenta que el contenido del mensaje puede cortarse parcialmente si finish_reason="length", lo que indica que la generación superó max_tokens o la conversación superó la longitud máxima del contexto.
ChatCompletionResponseFormatType Tipo de formato de respuesta.
ChatCompletionResponseMessage Mensaje de finalización del chat generado por el modelo.
ChatCompletionTool
ChatMessageRole Rol del autor de este mensaje.
Choices Una lista de opciones de finalización de chat.
CompletionUsage Estadísticas de uso de la solicitud de finalización.
ContentFilterError Se produce un error en la llamada API cuando el mensaje desencadena un filtro de contenido tal como está configurado. Modifique el comando de entrada e inténtelo de nuevo.
CreateChatCompletionRequest
CreateChatCompletionResponse Representa una respuesta de finalización de chat devuelta por el modelo, en función de la entrada proporcionada.
Detalle Detalles del error UnprocessableContentError.
Function Función a la que llamó el modelo.
FunctionObject Definición de una función a la que tiene acceso el modelo.
ImageDetail Especifica el nivel de detalle de la imagen.
NotFoundError La ruta no es válida para el modelo implementado.
ToolType El tipo de la herramienta. Actualmente, solo se admite function.
TooManyRequestsError Ha alcanzado el límite de tasa asignado y sus solicitudes necesitan controlarse.
UnauthorizedError Falta la autenticación o no es válida.
UnprocessableContentError La solicitud contiene contenido no procesable. El error se devuelve cuando la carga indicada es válida según esta especificación. Sin embargo, el modelo subyacente no admite algunas de las instrucciones indicadas en la carga. Use la sección details para comprender el parámetro infractor.

ChatCompletionFinishReason

Motivo por el que el modelo dejó de generar tokens. Esto será stop si el modelo alcanza un punto de detención natural o una secuencia de detención proporcionada, length si se ha alcanzado el número máximo de tokens especificados en la solicitud, content_filter si se ha omitido el contenido debido a una marca de nuestros filtros de contenido, tool_calls si el modelo llamó a una herramienta.

Nombre Escribir Descripción
content_filter string
length string
stop string
tool_calls string

ChatCompletionMessageToolCall

Nombre Escribir Descripción
function Function Función a la que llamó el modelo.
Identificador string Identificador de la llamada a la herramienta.
type ToolType El tipo de la herramienta. Actualmente, solo se admite function.

ChatCompletionObject

Tipo de objeto, que siempre es chat.completion.

Nombre Escribir Descripción
chat.completion string

ChatCompletionResponseFormat

Formato de respuesta para la respuesta del modelo. La configuración en json_object habilita el modo JSON, lo que garantiza que el mensaje que genera el modelo es JSON válido. Al usar el modo JSON, también debe indicar al modelo que genere JSON usted mismo mediante un mensaje de usuario o sistema. Tenga en cuenta que el contenido del mensaje puede cortarse parcialmente si finish_reason="length", lo que indica que la generación superó max_tokens o la conversación superó la longitud máxima del contexto.

Nombre Escribir Descripción
type ChatCompletionResponseFormatType Tipo de formato de respuesta.

ChatCompletionResponseFormatType

Tipo de formato de respuesta.

Nombre Escribir Descripción
json_object string
text string

ChatCompletionResponseMessage

Mensaje de finalización del chat generado por el modelo.

Nombre Escribir Descripción
contenido string Contenido del mensaje.
rol ChatMessageRole Rol del autor de este mensaje.
tool_calls ChatCompletionMessageToolCall[] Llamadas a herramientas generadas por el modelo, como las llamadas a funciones.

ChatCompletionTool

Nombre Escribir Descripción
function FunctionObject
type ToolType El tipo de la herramienta. Actualmente, solo se admite function.

ChatMessageRole

Rol del autor de este mensaje.

Nombre Escribir Descripción
assistant string
sistema string
herramienta string
usuario string

Opciones

Una lista de opciones de finalización de chat. Puede ser más de uno si n es mayor que 1.

Nombre Escribir Descripción
finish_reason ChatCompletionFinishReason Motivo por el que el modelo dejó de generar tokens. Esto será stop si el modelo alcanza un punto de detención natural o una secuencia de detención proporcionada, length si se ha alcanzado el número máximo de tokens especificados en la solicitud, content_filter si se ha omitido el contenido debido a una marca de nuestros filtros de contenido, tool_calls si el modelo llamó a una herramienta.
índice integer Índice de la elección en la lista de opciones.
message ChatCompletionResponseMessage Mensaje de finalización del chat generado por el modelo.

CompletionUsage

Estadísticas de uso de la solicitud de finalización.

Nombre Escribir Descripción
completion_tokens integer Número de tokens en la finalización generada.
prompt_tokens integer Número de tokens en el símbolo del sistema.
total_tokens integer Número total de tokens usados en la solicitud (solicitud + finalización).

ContentFilterError

Se produce un error en la llamada API cuando el mensaje desencadena un filtro de contenido tal como está configurado. Modifique el comando de entrada e inténtelo de nuevo.

Nombre Escribir Descripción
código string Código de error.
error string Descripción del error.
message string El mensaje de error.
param string Parámetro que desencadenó el filtro de contenido.
status integer El código de estado HTTP.

CreateChatCompletionRequest

Nombre Type Valor predeterminado Descripción
frequency_penalty number 0 Ayuda a evitar repeticiones de palabras al reducir la posibilidad de que se seleccione una palabra si ya se ha usado. Cuanto mayor sea la penalización de frecuencia, menos probable es que el modelo repita las mismas palabras en su salida. Devuelve un error 422 si el modelo no admite el valor o el parámetro.
max_tokens integer Número máximo de tokens que se pueden generar en la finalización del chat.

La longitud total de los tokens de entrada y los tokens generados está limitado por la longitud de contexto del modelo. Pasar un valor nulo hace que el modelo use su longitud máxima de contexto.
messages ChatCompletionRequestMessage[] Una lista de mensajes que componen la conversación hasta ahora. Devuelve un error 422 si el modelo no puede entender al menos algunos de los mensajes.
presence_penalty number 0 Ayuda a evitar que se repitan los mismos temas penalizando una palabra si ya existe en la finalización, aunque sea solo una vez. Devuelve un error 422 si el modelo no admite el valor o el parámetro.
response_format ChatCompletionResponseFormat text
seed integer Si se especifica, el sistema realizará un mejor esfuerzo para muestrear de forma determinista, de modo que las solicitudes repetidas con un mismo seed y parámetros deben devolver el mismo resultado. No se garantiza el determinismo y debe hacer referencia al parámetro de respuesta system_fingerprint para supervisar los cambios en el back-end.
stop Secuencias en las que la API dejará de generar más tokens.
flujo boolean False Si se establece, se enviarán deltas de mensajes parciales. Los tokens se enviarán como eventos enviados por el servidor solo de datos a medida que estén disponibles, con la transmisión terminada por un mensaje data: [DONE].
temperatura number 1 Número no negativo. Devuelve 422 si el modelo no admite el valor.
tool_choice ChatCompletionToolChoiceOption Controla la función (si existe) a la que llama el modelo. none significa que el modelo no llamará a una función y, en su lugar, generará un mensaje. auto significa que el modelo puede elegir entre generar un mensaje o llamar a una función. Especificar una función determinada a través de {"type": "function", "function": {"name": "my_function"}} obliga al modelo a llamar a esa función.

none es el valor predeterminado cuando no hay funciones presentes. auto es el valor predeterminado si hay funciones. Devuelve un error 422 si el modelo no admite la herramienta.
tools ChatCompletionTool[] Una lista de herramientas a las que puede llamar el modelo. Actualmente, solo se admiten funciones como una herramienta. Úselo para proporcionar una lista de funciones para las que el modelo puede generar entradas JSON. Devuelve un error 422 si el modelo no admite la herramienta.
top_p number 1 Una alternativa al muestreo con temperatura, llamada muestreo de núcleo, donde el modelo considera los resultados de los tokens con masa de probabilidad top_p. Así, 0,1 significa que solo se consideran los tokens que comprenden la masa de probabilidad del 10% superior.

Por lo general, recomendamos modificar esto o temperature, pero no ambos.

ChatCompletionRequestMessage

Nombre Escribir Descripción
content cadena o ChatCompletionMessageContentPart[] Contenido del mensaje.
rol ChatMessageRole Rol del autor de este mensaje.
tool_calls ChatCompletionMessageToolCall[] Llamadas a herramientas generadas por el modelo, como las llamadas a funciones.

ChatCompletionMessageContentPart

Nombre Escribir Descripción
contenido string Dirección URL de la imagen o datos de imagen codificados en base64.
detail ImageDetail Especifica el nivel de detalle de la imagen.
type ChatCompletionMessageContentPartType Tipo del elemento de contenido.

ChatCompletionMessageContentPartType

Nombre Escribir Descripción
text string
imagen string
image_url string

ChatCompletionToolChoiceOption

Controla la herramienta (si existe) a la que llama el modelo.

Nombre Escribir Descripción
None string El modelo no llamará a ninguna herramienta y, en su lugar, generará un mensaje.
auto string El modelo puede elegir entre generar un mensaje o llamar a una o varias herramientas.
requerido string El modelo debe llamar a una o varias herramientas.
string Especificar una herramienta determinada a través de {"type": "function", "function": {"name": "my_function"}} obliga al modelo a llamar a esa herramienta.

ImageDetail

Especifica el nivel de detalle de la imagen.

Nombre Escribir Descripción
auto string
low string
high string

CreateChatCompletionResponse

Representa una respuesta de finalización de chat devuelta por el modelo, en función de la entrada proporcionada.

Nombre Escribir Descripción
opciones Choices[] Una lista de opciones de finalización de chat. Puede ser más de uno si n es mayor que 1.
created integer Marca de tiempo de Unix (en segundos) de cuando se creó la finalización de chat.
Identificador string Identificador único para la finalización del chat.
model string Modelo usado para la finalización de chat.
objeto ChatCompletionObject Tipo de objeto, que siempre es chat.completion.
system_fingerprint string Esta huella digital representa la configuración de back-end con la que se ejecuta el modelo.

Se puede usar junto con el parámetro de solicitud seed para comprender cuándo se han realizado cambios de back-end que podrían afectar al determinismo.
usada CompletionUsage Estadísticas de uso de la solicitud de finalización.

Detalle

Detalles del error UnprocessableContentError.

Nombre Escribir Descripción
loc string[] Parámetro que causa el problema
value string Valor pasado al parámetro que provoca problemas.

Función

Función a la que llamó el modelo.

Nombre Escribir Descripción
argumentos string Argumentos para llamar a la función, según lo generado por el modelo en formato JSON. Tenga en cuenta que el modelo no siempre genera JSON válido y puede generar parámetros incorrectos no definidos por el esquema de función. Valide los argumentos del código antes de llamar a la función.
name cadena El nombre de la función que se va a llamar.

FunctionObject

Definición de una función a la que tiene acceso el modelo.

Nombre Escribir Descripción
descripción string Descripción de lo que hace la función, que usa el modelo para elegir cuándo y cómo llamar a la función.
nombre cadena El nombre de la función que se llamará. Debe ser a-z, A-Z, 0-9, o contener caracteres de subrayado y guiones, con una longitud máxima de 64.
parámetros object Los parámetros que aceptan las funciones, que se describen como un objeto de Esquema JSON. Al omitir parameters se define una función con una lista de parámetros vacía.

NotFoundError

Nombre Escribir Descripción
error string Descripción del error.
message string El mensaje de error.
status integer El código de estado HTTP.

ToolType

El tipo de la herramienta. Actualmente, solo se admite function.

Nombre Escribir Descripción
function string

TooManyRequestsError

Nombre Escribir Descripción
error string Descripción del error.
message string El mensaje de error.
status integer El código de estado HTTP.

UnauthorizedError

Nombre Escribir Descripción
error string Descripción del error.
message string El mensaje de error.
status integer El código de estado HTTP.

UnprocessableContentError

La solicitud contiene contenido no procesable. El error se devuelve cuando la carga indicada es válida según esta especificación. Sin embargo, el modelo subyacente no admite algunas de las instrucciones indicadas en la carga. Use la sección details para comprender el parámetro infractor.

Nombre Escribir Descripción
código string Código de error.
detalles Detalle
error string Descripción del error.
message string El mensaje de error.
status integer El código de estado HTTP.