Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Importante
- Foundry Local está disponible en versión preliminar. Las versiones preliminares públicas proporcionan acceso anticipado a las características que se encuentran en la implementación activa.
- Las características, los enfoques y los procesos pueden cambiar o tener funcionalidades limitadas, antes de la disponibilidad general (GA).
Precaución
Esta API hace referencia a la API REST disponible en la CLI local de Foundry. Esta API está en desarrollo activo y puede incluir cambios importantes sin previo aviso. Se recomienda encarecidamente consultar el registro de cambios antes de desarrollar aplicaciones de producción.
POST /v1/chat/completions
Este punto de conexión procesa las solicitudes de finalización del chat.
Es totalmente compatible con la API de finalizaciones de chat de OpenAI.
Cuerpo de la solicitud:
---Propiedades Estándar de OpenAI---
-
model(cadena)
Modelo específico que se va a usar para la finalización. -
messages(matriz)
El historial de conversaciones como una lista de mensajes.- Cada mensaje requiere:
-
role(cadena)
Rol del remitente del mensaje. Debe sersystem,useroassistant. -
content(cadena)
Texto real del mensaje.
-
- Cada mensaje requiere:
-
temperature(número, opcional)
Controla la aleatoriedad, que va de 0 a 2. Los valores más altos (0,8) crean salidas variadas, mientras que los valores inferiores (0,2) crean salidas centradas y coherentes. -
top_p(número, opcional)
Controla la diversidad de selección de tokens de 0 a 1. Un valor de 0,1 significa que solo se consideran los tokens con las 10 probabilidades más altas%. -
n(entero, opcional)
Número de finalizaciones alternativas que se van a generar para cada mensaje de entrada. -
stream(booleano, opcional)
Cuando es true, envía respuestas parciales de mensajes como eventos enviados por el servidor, finalizando con undata: [DONE]mensaje. -
stop(cadena o matriz, opcional)
Hasta 4 secuencias que harán que el modelo deje de generar tokens adicionales. -
max_tokens(entero, opcional)
Número máximo de tokens a generar. En el caso de los modelos más recientes, usemax_completion_tokensen su lugar. -
max_completion_tokens(entero, opcional)
Número máximo de tokens que puede generar el modelo, incluidos los tokens de salida y razonamiento visibles. -
presence_penalty(número, opcional)
Valor entre -2.0 y 2.0. Los valores positivos animan al modelo a analizar nuevos temas penalizando los tokens que ya han aparecido. -
frequency_penalty(número, opcional)
Valor entre -2.0 y 2.0. Los valores positivos desaconsejan la repetición penalizando los tokens en función de su frecuencia en el texto. -
logit_bias(mapa, opcional)
Ajusta la probabilidad de que aparezcan tokens específicos en la finalización. -
user(cadena, opcional)
Un identificador único para el usuario final que ayuda con la supervisión y la prevención de abusos. -
functions(matriz, opcional)
Funciones disponibles para las que el modelo puede generar entradas JSON.- Cada función debe incluir:
-
name(cadena)
Nombre de la función. -
description(cadena)
Descripción de la función. -
parameters(objeto)
Parámetros de función descritos como un objeto de esquema JSON.
-
- Cada función debe incluir:
-
function_call(cadena o objeto, opcional)
Controla cómo responde el modelo a las llamadas de función.- Si es un objeto, puede incluir:
-
name(cadena, opcional)
El nombre de la función que se va a llamar. -
arguments(objeto, opcional)
Argumentos que se van a pasar a la función.
-
- Si es un objeto, puede incluir:
-
metadata(objeto, opcional)
Diccionario de pares clave-valor de metadatos. -
top_k(número, opcional)
Número de tokens de vocabulario de probabilidad más alta que se mantendrán para el filtrado de k superior. -
random_seed(entero, opcional)
Semilla para la generación de números aleatorios reproducibles. -
ep(cadena, opcional)
Sobrescriba el proveedor para los modelos ONNX. Admite:"dml","cuda","qnn","cpu","webgpu". -
ttl(entero, opcional)
Período de vida en segundos para el modelo en memoria. -
tools(objeto, opcional)
Herramientas calculadas para la solicitud.
Cuerpo de la respuesta:
-
id(cadena)
Identificador único para la finalización del chat. -
object(cadena)
Tipo de objeto, siempre"chat.completion". -
created(entero)
Marca de tiempo de creación en segundos de época. -
model(cadena)
Modelo usado para la finalización. -
choices(matriz)
Lista de opciones de finalización, cada una que contiene:-
index(entero)
Índice de esta elección. -
message(objeto)
Mensaje generado con:-
role(cadena)
Siempre"assistant"para las respuestas. -
content(cadena)
Texto generado real.
-
-
finish_reason(cadena)
Por qué se detuvo la generación (por ejemplo,"stop","length","function_call").
-
-
usage(objeto)
Estadísticas de uso de tokens:-
prompt_tokens(entero)
Tokens en el símbolo del sistema. -
completion_tokens(entero)
Tokens en la finalización. -
total_tokens(entero)
Número total de tokens usados.
-
Example:
Cuerpo de la solicitud
{
"model": "qwen2.5-0.5b-instruct-generic-cpu",
"messages": [
{
"role": "user",
"content": "Hello, how are you?"
}
],
"temperature": 0.7,
"top_p": 1,
"n": 1,
"stream": false,
"stop": null,
"max_tokens": 100,
"presence_penalty": 0,
"frequency_penalty": 0,
"logit_bias": {},
"user": "user_id_123",
"functions": [],
"function_call": null,
"metadata": {}
}
Cuerpo de respuesta
{
"id": "chatcmpl-1234567890",
"object": "chat.completion",
"created": 1677851234,
"model": "qwen2.5-0.5b-instruct-generic-cpu",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "I'm doing well, thank you! How can I assist you today?"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 10,
"completion_tokens": 20,
"total_tokens": 30
}
}
GET /openai/status
Obtiene la información de estado del servidor.
Cuerpo de la respuesta:
-
Endpoints(matriz de cadenas)
Puntos de conexión de enlace de servidor HTTP. -
ModelDirPath(cadena)
Directorio donde se almacenan los modelos locales. -
PipeName(cadena)
Nombre actual del servidor NamedPipe.
Example:
Cuerpo de respuesta
{
"Endpoints": ["http://localhost:5272"],
"ModelDirPath": "/path/to/models",
"PipeName": "inference_agent"
}
GET /foundry/list
Obtenga una lista de los modelos locales de Foundry disponibles en el catálogo.
Respuesta:
-
models(matriz)
Matriz de objetos de modelo. Cada modelo incluye:-
name: identificador único del modelo. -
displayName: Un nombre legible para el modelo, a menudo igual que el nombre. -
providerType: el tipo de proveedor que hospeda el modelo (por ejemplo, AzureFoundry). -
uri: el URI del recurso que apunta a la ubicación del modelo en el Registro. -
version: número de versión del modelo. -
modelType: formato o tipo del modelo (por ejemplo, ONNX). -
promptTemplate:-
assistant: plantilla para la respuesta del asistente. -
prompt: plantilla de interacción entre el usuario y el asistente.
-
-
publisher: entidad u organización que publicó el modelo. -
task: la tarea principal que el modelo está diseñado para realizar (por ejemplo, finalización del chat). -
runtime:-
deviceType: el tipo de hardware que el modelo está diseñado para ejecutarse (por ejemplo, CPU). -
executionProvider: el proveedor de ejecución usado para ejecutar el modelo.
-
-
fileSizeMb: tamaño del archivo de modelo en megabytes. -
modelSettings:-
parameters: una lista de parámetros configurables para el modelo.
-
-
alias: nombre alternativo o abreviatura para el modelo -
supportsToolCalling: indica si el modelo admite la funcionalidad de llamada a herramientas. -
license: tipo de licencia con el que se distribuye el modelo. -
licenseDescription: una descripción detallada o un vínculo a los términos de licencia. -
parentModelUri: el URI del modelo primario desde el que se deriva este modelo.
-
GET /openai/models
Obtenga una lista de modelos almacenados en caché, incluidos los modelos externos locales y registrados.
Respuesta:
- 200 Ok
Matriz de nombres de modelo como cadenas.
Example:
Cuerpo de respuesta
["Phi-4-mini-instruct-generic-cpu", "phi-3.5-mini-instruct-generic-cpu"]
POST /openai/download
Descargue un modelo del catálogo en el almacenamiento local.
Nota:
Las descargas de modelos grandes pueden tardar mucho tiempo. Establezca un tiempo de espera elevado para esta solicitud para evitar la terminación anticipada.
Cuerpo de la solicitud:
-
model(WorkspaceInferenceModelobjeto)-
Uri(cadena)
URI del modelo para descargar. -
NameNombre del modelo. -
ProviderType(cadena, opcional)
Tipo de proveedor (por ejemplo,"AzureFoundryLocal","HuggingFace"). -
Path(cadena, opcional)
Ruta de acceso remota a los archivos de modelo. Por ejemplo, en un repositorio de Hugging Face, esta es la ruta de acceso a los archivos de modelo. -
PromptTemplate(Dictionary<string, string>, opcional)
Incluye:-
system(cadena, opcional)
Plantilla del mensaje del sistema. -
user(cadena, opcional) Plantilla del mensaje del usuario. -
assistant(cadena, opcional)
Plantilla para la respuesta del asistente. -
prompt(cadena, opcional)
Plantilla para la interacción entre el usuario y el asistente.
-
-
Publisher(cadena, opcional)
Publicador del modelo.
-
-
token(cadena, opcional)
Token de autenticación para modelos protegidos (GitHub o Hugging Face). -
progressToken(objeto, opcional)
Solo para AITK. Token para realizar un seguimiento del progreso de la descarga. -
customDirPath(cadena, opcional)
Directorio de descarga personalizado (usado para la CLI, no necesario para AITK). -
bufferSize(entero, opcional)
Tamaño del búfer de descarga HTTP en KB. No hay ningún efecto en los modelos NIM o Azure Foundry. -
ignorePipeReport(booleano, opcional)
Si estrue, fuerza los informes de progreso a través de la secuencia HTTP en lugar de la canalización. El valor predeterminado esfalsepara AITK ytruepara Foundry Local.
Respuesta de streaming:
Durante la descarga, el servidor transmite las actualizaciones de progreso en el formato:
("file name", percentage_complete)
Cuerpo final de la respuesta:
-
Success(booleano)
Si la descarga se completó correctamente. -
ErrorMessage(cadena, opcional)
Detalles del error si se produjo un error en la descarga.
Example:
Solicitud de URI
POST /openai/download
Cuerpo de la solicitud
Tenga en cuenta que el sufijo de versión debe proporcionarse en el nombre del modelo.
{
"model": {
"Uri": "azureml://registries/azureml/models/Phi-4-mini-instruct-generic-cpu/versions/4",
"ProviderType": "AzureFoundryLocal",
"Name": "Phi-4-mini-instruct-generic-cpu:4",
"Publisher": "",
"PromptTemplate": {
"system": "<|system|>{Content}<|end|>",
"user": "<|user|>{Content}<|end|>",
"assistant": "<|assistant|>{Content}<|end|>",
"prompt": "<|user|>{Content}<|end|><|assistant|>"
}
}
}
Flujo de respuesta
("genai_config.json", 0.01)
("genai_config.json", 0.2)
("model.onnx.data", 0.5)
("model.onnx.data", 0.78)
...
("", 1)
Respuesta final
{
"Success": true,
"ErrorMessage": null
}
GET /openai/load/{name}
Cargue un modelo en memoria para obtener una inferencia más rápida.
Parámetros de URI:
-
name(cadena)
Nombre del modelo que se va a cargar.
Parámetros de consulta:
-
unload(booleano, opcional)
Si se descarga automáticamente el modelo después del tiempo de inactividad. Tiene como valor predeterminadotrue. -
ttl(entero, opcional)
Período de vida en segundos. Si es mayor que 0, este valor invalida elunloadparámetro . -
ep(cadena, opcional)
Proveedor de ejecución para ejecutar este modelo. Admite:"dml","cuda","qnn","cpu","webgpu".
Si no se especifica, usa la configuración degenai_config.json.
Respuesta:
- 200 Ok
Cuerpo de respuesta vacío
Example:
Solicitud de URI
GET /openai/load/Phi-4-mini-instruct-generic-cpu?ttl=3600&ep=dml
GET /openai/unload/{name}
Descargar un modelo de la memoria.
Parámetros de URI:
-
name(cadena) Nombre del modelo que se va a descargar.
Parámetros de consulta:
-
force(booleano, opcional) Sitruees , omite la configuración de TTL y descarga inmediatamente.
Respuesta:
- 200 Aceptar cuerpo de respuesta vacío
Example:
Solicitud de URI
GET /openai/unload/Phi-4-mini-instruct-generic-cpu?force=true
GET /openai/unloadall
Descarga todos los modelos de la memoria.
Respuesta:
- 200 Ok
Cuerpo de respuesta vacío
GET /openai/loadedmodels
Obtenga la lista de modelos cargados actualmente.
Respuesta:
- 200 Ok
Matriz de nombres de modelo como cadenas.
Example:
Cuerpo de respuesta
["Phi-4-mini-instruct-generic-cpu", "phi-3.5-mini-instruct-generic-cpu"]
GET /openai/getgpudevice
Obtenga el identificador de dispositivo de GPU actual.
Respuesta:
- 200 Ok
Entero que representa el identificador de dispositivo de GPU actual.
GET /openai/setgpudevice/{deviceId}
Establezca el dispositivo GPU activo.
Parámetros de URI:
-
deviceId(entero)
Identificador de dispositivo de GPU a usar.
Respuesta:
- 200 Ok
Cuerpo de respuesta vacío
Example:
- URI de solicitud
GET /openai/setgpudevice/1
POST /v1/chat/completions/tokenizer/encode/count
Cuenta los tokens de una solicitud de finalización de chat determinada sin realizar la inferencia.
Cuerpo de la solicitud:
- Tipo de contenido: application/json
- Objeto JSON en
ChatCompletionCreateRequestformato con:-
model(cadena)
Modelo que se va a usar para la tokenización. -
messages(matriz)
Matriz de objetos de mensaje conroleycontent.
-
Cuerpo de la respuesta:
- Tipo de contenido: application/json
- Objeto JSON con recuento de tokens:
-
tokenCount(entero)
Número de tokens en la solicitud.
-
Example:
Cuerpo de la solicitud
{
"messages": [
{
"role": "system",
"content": "This is a system message"
},
{
"role": "user",
"content": "Hello, what is Microsoft?"
}
],
"model": "Phi-4-mini-instruct-cuda-gpu"
}
Cuerpo de respuesta
{
"tokenCount": 23
}