Referencia: Finalizaciones de chat | Azure Machine Learning
Crea una respuesta de modelo para la conversación de chat dada.
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 |
---|---|---|---|
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. |