Referencia de las API REST de Foundation Model
En este artículo se proporciona información general de API para las API de Databricks Foundation Model y los modelos que admiten. Las API de Foundation Model están diseñadas para ser similares a la API REST de OpenAI para facilitar la migración de proyectos existentes. Los puntos de conexión de rendimiento de pago por token y aprovisionados aceptan el mismo formato de solicitud de API de REST.
Extremos
Cada modelo de pago por token tiene un único punto de conexión y los usuarios pueden interactuar con estos puntos de conexión mediante solicitudes HTTP POST. Los puntos de conexión de rendimiento aprovisionados se pueden crear mediante la API o la interfaz de usuario de servicio. Estos puntos de conexión también admiten varios modelos por punto de conexión para las pruebas A/B, siempre y cuando ambos modelos servidos expongan el mismo formato de API. Por ejemplo, ambos modelos son modelos de chat.
Las solicitudes y respuestas usan JSON, la estructura JSON exacta depende del tipo de tarea de un punto de conexión. Los puntos de conexión de chat y finalización admiten respuestas de streaming.
Las cargas de trabajo de pago por token admiten determinados modelos; consulte Modelos admitidos para el pago por token para obtener información sobre esos modelos y los formatos de API aceptados.
Uso
Las respuestas incluyen un usage
sub-mensaje que informa del número de tokens en la solicitud y la respuesta. El formato de este submensaje es el mismo en todos los tipos de tareas.
Campo | Tipo | Descripción |
---|---|---|
completion_tokens |
Entero | Número de tokens generados. No se incluye en las respuestas de inserción. |
prompt_tokens |
Entero | Número de tokens del símbolo del sistema de entrada. |
total_tokens |
Entero | Número de tokens totales. |
Para los modelos como llama-2-70b-chat
una solicitud de usuario se transforma mediante una plantilla de aviso antes de pasarse al modelo. En el caso de los puntos de conexión de pago por token, también se puede agregar un símbolo del sistema. prompt_tokens
incluye todo el texto agregado por nuestro servidor.
Tarea chat
Las tareas de chat están optimizadas para conversaciones multiturno con un modelo. Cada solicitud describe la conversación hasta ahora, donde el campo messages
debe alternar entre los roles user
y assistant
, finalizando con un mensaje user
. La respuesta del modelo proporciona el siguiente assistant
mensaje en la conversación.
Solicitud de chat
Campo | Valor predeterminado | Tipo | Descripción |
---|---|---|---|
messages |
Lista ChatMessage | Necesario. Lista de mensajes que representan la conversación actual. | |
max_tokens |
null |
null , lo que significa que no hay límite o un entero mayor que cero. |
Número máximo de tokens que se van a generar. |
stream |
true |
Booleano | Transmita las respuestas a un cliente para permitir resultados parciales para las solicitudes. Si este parámetro se incluye en la solicitud, las respuestas se envían mediante el estándar de eventos enviados por el servidor. |
temperature |
1.0 |
Flotar en [0,2] | Temperatura de muestreo. 0 es determinista y los valores superiores introducen más aleatoriedad. |
top_p |
1.0 |
Flotar en (0,1] | Umbral de probabilidad utilizado para el muestreo de núcleos. |
top_k |
null |
null , lo que significa que no hay límite o un entero mayor que cero. |
Define el número de tokens más probables que se usen para el filtrado top-k. Establezca este valor en 1 para que las salidas sean deterministas. |
stop |
[] | Cadena o Lista[String] | El modelo deja de generar más tokens cuando se encuentra cualquiera de las secuencias de stop . |
n |
1 | Entero mayor que 0 | La API devuelve n finalizaciones de chat independientes cuando se especifica n . Se recomienda para cargas de trabajo que generen varias finalizaciones en la misma entrada para obtener una eficiencia de inferencia adicional y un ahorro de costes. Solo está disponible para los puntos de conexión de rendimiento aprovisionados. |
tool_choice |
none |
Cadena o ToolChoiceObject | Solo se usa junto con el campo tools . tool_choice admite una variedad de cadenas de palabras clave, como auto , required y none . auto significa que va a permitir que el modelo decida qué herramienta (si la hubiera) es relevante para su uso. Con auto si el modelo no cree que ninguna de las herramientas de tools son relevantes, el modelo genera un mensaje de asistente estándar en lugar de una llamada a una herramienta. required significa que el modelo elige la herramienta más relevante en tools y debe generar una llamada a una herramienta. none significa que el modelo no genera ninguna llamada a una herramienta y, en su lugar, debe generar un mensaje de asistente estándar. Para forzar una llamada a una herramienta con una herramienta específica definida en tools , use un ToolChoiceObject. De manera predeterminada, si el campo tools se rellena tool_choice = "auto" . En caso contrario, el campo tools tiene como valor predeterminado tool_choice = "none" |
tools |
null |
ToolObject | Lista de tools que el modelo puede llamar. Actualmente, function es el único tipo tool admitido y se admite un máximo de 32 funciones. |
response_format |
null |
ResponseFormatObject | Objeto que especifica el formato que debe generar el modelo. Los tipos aceptados son text , json_schema o json_object Al establecer en { "type": "json_schema", "json_schema": {...} } se habilitan salidas estructuradas que garantizan que el modelo sigue el esquema JSON proporcionado.Establecer en { "type": "json_object" } garantiza que las respuestas que genera el modelo son JSON válidas, pero no garantiza que las respuestas sigan un esquema específico. |
logprobs |
false |
Booleano | Este parámetro indica si se debe proporcionar la probabilidad de registro de un token que se muestrea. |
top_logprobs |
null |
Entero | Este parámetro controla el número de candidatos de token más probables para devolver probabilidades de registro en cada paso de muestreo. Puede ser de 0 a 20. logprobs debe ser true si se usa este campo. |
ChatMessage
Campo | Tipo | Description |
---|---|---|
role |
String | Necesario. Rol del autor del mensaje. Puede ser "system" , "user" , "assistant" o "tool" . |
content |
Cadena | Contenido del mensaje. Necesario para las tareas de chat que no implican llamadas a una herramienta. |
tool_calls |
Lista de ToolCall | Lista de tool_calls que generó el modelo. Debe tener role como "assistant" y ninguna especificación para el campo content . |
tool_call_id |
Cadena | Cuando role es "tool" , el identificador asociado al ToolCall al que responde el mensaje. Debe estar vacío para otras opciones role . |
El system
rol solo se puede usar una vez, como primer mensaje de una conversación. Invalida el símbolo del sistema predeterminado del modelo.
ToolCall
Sugerencia de acción de llamada a una herramienta por el modelo. Consulte Llamada a funciones en Azure Databricks.
Campo | Tipo | Description |
---|---|---|
id |
String | Necesario. Identificador único para esta sugerencia de llamada a una herramienta. |
type |
Cadena | Necesario. Solo se admite "function" . |
function |
FunctionCallCompletion | Necesario. Una llamada a una función sugerida por el modelo. |
FunctionCallCompletion
Campo | Tipo | Description |
---|---|---|
name |
String | Necesario. Nombre de la función recomendada por el modelo. |
arguments |
Object | Necesario. Argumentos para la función como un diccionario JSON serializado. |
ToolChoiceObject
Consulte Llamada a funciones en Azure Databricks.
Campo | Tipo | Description |
---|---|---|
type |
String | Necesario. El tipo de la herramienta. Actualmente, solo se admite "function" . |
function |
Object | Necesario. Objeto que define qué herramienta llamar del formulario {"type": "function", "function": {"name": "my_function"}} donde "my_function es el nombre de un FunctionObject en el campo tools . |
ToolObject
Consulte Llamada a funciones en Azure Databricks.
Campo | Tipo | Description |
---|---|---|
type |
String | Necesario. El tipo de la herramienta. Actualmente, solo se admite function . |
function |
FunctionObject | Necesario. Definición de función asociada a la herramienta. |
FunctionObject
Campo | Tipo | Description |
---|---|---|
name |
String | Necesario. El nombre de la función que se llamará. |
description |
Object | Necesario. Descripción detallada de la función. El modelo usa esta descripción para comprender la relevancia de la función en el símbolo del sistema y generar las llamadas a la herramienta con mayor precisión. |
parameters |
Object | Los parámetros que acepta la función, que se describen como un objeto de esquema JSON válido. Si se llama a la herramienta, la llamada a la herramienta se ajusta al esquema JSON proporcionado. La omisión de parámetros define una función sin parámetros. El número de properties está limitado a 15 claves. |
strict |
Booleano | Indica si se debe habilitar el cumplimiento estricto del esquema al generar la llamada a la función. Si se establece true en , el modelo sigue el esquema exacto definido en el campo de esquema. Solo se admite un subconjunto del esquema JSON cuando es estricto true |
ResponseFormatObject
Consulte Salidas estructuradas en Azure Databricks.
Campo | Tipo | Description |
---|---|---|
type |
String | Necesario. Tipo de formato de respuesta que se va a definir. Ya sea text para texto no estructurado, json_object para objetos JSON no estructurados o json_schema para objetos JSON que se adhieren a un esquema específico. |
json_schema |
JsonSchemaObject | Necesario. Esquema JSON al que se va a cumplir si type está establecido en json_schema |
JsonSchemaObject
Consulte Salidas estructuradas en Azure Databricks.
Campo | Tipo | Description |
---|---|---|
name |
String | Necesario. Nombre del formato de respuesta. |
description |
Cadena | Descripción del formato de respuesta que usa el modelo para determinar cómo responder en el formato. |
schema |
Object | Necesario. Esquema para el formato de respuesta, descrito como un objeto de esquema JSON. |
strict |
Booleano | Indica si se debe habilitar el cumplimiento estricto del esquema al generar la respuesta. Si se establece true en , el modelo sigue el esquema exacto definido en el campo de esquema. Solo se admite un subconjunto del esquema JSON cuando es estricto true |
Respuesta de chat
En el caso de las solicitudes que no son de streaming, la respuesta es un único objeto de finalización de chat. En el caso de las solicitudes de streaming, la respuesta es un text/event-stream
objeto donde cada evento es un objeto de fragmento de finalización. La estructura de nivel superior de los objetos de finalización y fragmento es casi idéntica: solo choices
tiene un tipo diferente.
Campo | Tipo | Description |
---|---|---|
id |
String | Identificador único para la finalización del chat. |
choices |
List[ChatCompletionChoice] o List[ChatCompletionChunk] (streaming) | Lista de mensajes de textos de finalización de chat. Se devuelven opciones n si se especifica el parámetro n . |
object |
Cadena | El tipo de objeto. Igual a "chat.completions" para no streaming o "chat.completion.chunk" para streaming. |
created |
Entero | Hora UTC en la que se generó la finalización del chat en segundos. |
model |
String | Versión del modelo utilizada para generar la respuesta. |
usage |
Uso | Metadatos de uso de tokens. Puede que no esté presente en las respuestas de streaming. |
ChatCompletionChoice
Campo | Tipo | Descripción |
---|---|---|
index |
Entero | Índice de la elección en la lista de opciones generadas. |
message |
ChatMessage | Mensaje de finalización del chat devuelto por el modelo. El rol será assistant . |
finish_reason |
String | Motivo por el que el modelo dejó de generar tokens. |
ChatCompletionChunk
Campo | Tipo | Descripción |
---|---|---|
index |
Entero | Índice de la elección en la lista de opciones generadas. |
delta |
ChatMessage | Una parte del mensaje de finalización del chat de las respuestas generadas transmitidos desde el modelo. Solo se garantiza que el primer fragmento se haya role rellenado. |
finish_reason |
String | Motivo por el que el modelo dejó de generar tokens. Solo el último fragmento se rellenará. |
Tarea de finalización
Las tareas de finalización de texto son para generar respuestas a un único mensaje. A diferencia de Chat, esta tarea admite entradas por lotes: se pueden enviar varias solicitudes independientes en una solicitud.
Solicitud de finalización
Campo | Valor predeterminado | Tipo | Descripción |
---|---|---|---|
prompt |
Cadena o Lista[String] | Necesario. Los avisos del modelo. | |
max_tokens |
null |
null , lo que significa que no hay límite o un entero mayor que cero. |
Número máximo de tokens que se van a generar. |
stream |
true |
Booleano | Transmita las respuestas a un cliente para permitir resultados parciales para las solicitudes. Si este parámetro se incluye en la solicitud, las respuestas se envían mediante el estándar de eventos enviados por el servidor. |
temperature |
1.0 |
Flotar en [0,2] | Temperatura de muestreo. 0 es determinista y los valores superiores introducen más aleatoriedad. |
top_p |
1.0 |
Flotar en (0,1] | Umbral de probabilidad utilizado para el muestreo de núcleos. |
top_k |
null |
null , lo que significa que no hay límite o un entero mayor que cero. |
Define el número de tokens más probables que se usen para el filtrado top-k. Establezca este valor en 1 para que las salidas sean deterministas. |
error_behavior |
"error" |
"truncate" o "error" |
En el caso de los tiempos de espera y los errores superados por la longitud del contexto. Uno de: "truncate" (devuelve tantos tokens como sea posible) y "error" (devuelve un error). Este parámetro solo lo aceptan los puntos de conexión de pago por token. |
n |
1 | Entero mayor que 0 | La API devuelve n finalizaciones de chat independientes cuando se especifica n . Se recomienda para cargas de trabajo que generen varias finalizaciones en la misma entrada para obtener una eficiencia de inferencia adicional y un ahorro de costes. Solo está disponible para los puntos de conexión de rendimiento aprovisionados. |
stop |
[] | Cadena o Lista[String] | El modelo deja de generar más tokens cuando se encuentra cualquiera de las secuencias de stop . |
suffix |
"" |
String | Cadena que se anexa al final de cada finalización. |
echo |
false |
Booleano | Devuelve el símbolo del sistema junto con la finalización. |
use_raw_prompt |
false |
Booleano | Si es true , pase directamente prompt al modelo sin ninguna transformación. |
Respuesta de finalización de texto
Campo | Tipo | Description |
---|---|---|
id |
String | Identificador único para la finalización del texto. |
choices |
CompletionChoice | Lista de finalizaciones de mensajes de texto. Para cada mensaje pasado, se generan opciones n si se especifica n . El n predeterminado es 1. |
object |
Cadena | El tipo de objeto. Igual a "text_completion" |
created |
Entero | Hora UTC en la que se generó la finalización en segundos. |
usage |
Uso | Metadatos de uso de tokens. |
CompletionChoice
Campo | Tipo | Descripción |
---|---|---|
index |
Entero | Índice del símbolo del sistema en la solicitud. |
text |
String | Finalización generada. |
finish_reason |
String | Motivo por el que el modelo dejó de generar tokens. |
Tarea de inserción
Insertar tareas asignan cadenas de entrada en vectores de inserción. Muchas entradas se pueden procesar por lotes en cada solicitud.
Inserción de la solicitud
Campo | Tipo | Descripción |
---|---|---|
input |
Cadena o Lista[String] | Necesario. Texto de entrada que se va a insertar. Puede ser una cadena o una lista de cadenas. |
instruction |
Cadena | Una instrucción opcional para pasar al modelo de inserción. |
Las instrucciones son opcionales y muy específicas del modelo. Por ejemplo, los autores de BGE no recomiendan ninguna instrucción al indexar fragmentos y recomendar el uso de la instrucción "Represent this sentence for searching relevant passages:"
para las consultas de recuperación. Otros modelos como Instructor-XL admiten una amplia gama de cadenas de instrucción.
Respuesta de inserción
Campo | Tipo | Description |
---|---|---|
id |
String | Identificador único para la inserción. |
object |
String | El tipo de objeto. Igual a "list" . |
model |
String | Nombre del modelo de inserción que se usa para crear la inserción. |
data |
EmbeddingObject | Objeto de inserción. |
usage |
Uso | Metadatos de uso de tokens. |
EmbeddingObject
Campo | Tipo | Description |
---|---|---|
object |
String | El tipo de objeto. Igual a "embedding" . |
index |
Entero | Índice de la inserción en la lista de incrustaciones generadas por el modelo. |
embedding |
List[Float] | El vector de inserción. Cada modelo devolverá un vector de tamaño fijo (1024 para BGE-Large) |