Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Important
- Локальный интерфейс командной строки Foundry доступен в предварительной версии. Общедоступные предварительные версии предоставляют ранние access функциям, которые находятся в активном развертывании.
- Функции, подходы и процессы могут изменяться или иметь ограниченные возможности до общедоступной доступности.
Предостережение
Этот API ссылается на REST API, доступный в локальном интерфейсе командной строки Foundry. Этот API находится в активной разработке и может включать критические изменения без уведомления. Мы настоятельно рекомендуем отслеживать журнал изменений перед созданием рабочих приложений.
POST /v1/chat/completions
Эта конечная точка обрабатывает запросы на завершение чата.
Он полностью совместим с API завершения чата OpenAI.
Текст запроса :
свойства OpenAI ---Standard---
-
model(строка)
Конкретная модель, используемая для завершения. -
messages(массив)
Журнал бесед в виде списка сообщений.- Для каждого сообщения требуется следующее:
-
role(строка)
Роль отправителя сообщения. Должно бытьsystem,userилиassistant. -
content(строка)
Фактический текст сообщения.
-
- Для каждого сообщения требуется следующее:
-
temperature(число, необязательно)
Управляет случайностью, начиная от 0 до 2. Более высокие значения (0,8) создают различные выходные данные, а более низкие значения (0.2) создают ориентированные, согласованные выходные данные. -
top_p(число, необязательно)
Управляет разнообразием выделения маркеров от 0 до 1. Значение 0,1 означает, что считаются только маркеры в верхней% вероятности 10. -
n(целое число, необязательно)
Количество альтернативных вариантов завершения для каждого входного сообщения. -
stream(логический, необязательный)
Если значение истинно, отправляет частичные ответы на сообщения как события, посылаемые сервером, заканчиваясь сообщениемdata: [DONE]. -
stop(строка или массив, необязательно)
До 4 последовательностей, которые приведут к остановке генерации дальнейших токенов моделью. -
max_tokens(целое число, необязательно)
Максимальное количество токенов для генерации. Для более новых моделей используйтеmax_completion_tokensвместо этого. -
max_completion_tokens(целое число, необязательно)
Максимальное число токенов, которое может сгенерировать модель, включая видимые выходные данные и токены рассуждений. -
presence_penalty(число, необязательно)
Значение от -2.0 до 2.0. Положительные ценности поощряют модель обсуждать новые темы, наказывая маркеры, которые уже появились. -
frequency_penalty(число, необязательно)
Значение от -2.0 до 2.0. Положительные значения препятствуют повторению путем наказания маркеров на основе их частоты в тексте. -
logit_bias(карта, необязательно)
Корректирует вероятность появления определенных маркеров в завершении. -
user(строка, необязательно)
Уникальный идентификатор для конечного пользователя, который помогает отслеживать и предотвращать злоупотребления. -
functions(массив, необязательный)
Доступные функции, для которых модель может создавать входные данные JSON.- Каждая функция должна включать:
-
name(строка)
Имя функции. -
description(строка)
Описание функции. -
parameters(объект)
Параметры функции, описанные как объект схемы JSON.
-
- Каждая функция должна включать:
-
function_call(строка или объект, необязательный)
Определяет, как модель реагирует на вызовы функций.- Если это объект, он может включать:
-
name(строка, необязательно)
Имя вызываемой функции. -
arguments(объект, необязательный)
Аргументы, которые следует передать функции.
-
- Если это объект, он может включать:
-
metadata(объект, необязательный)
Словарь пар метаданных "ключ-значение". -
top_k(число, необязательно)
Количество токенов словаря с наивысшей вероятностью, которые нужно сохранить для фильтрации top-k. -
random_seed(целое число, необязательно)
Начальное значение (зерно) для воспроизводимого случайного генератора чисел. -
ep(строка, необязательно)
Изменение поставщика для моделей ONNX. Поддерживает:"dml","cuda","qnn","cpu","webgpu". -
ttl(целое число, необязательно)
Время хранения модели в оперативной памяти в секундах. -
tools(объект, необязательный)
Инструменты, рассчитанные для запроса.
Текст ответа:
-
id(строка)
Уникальный идентификатор завершения чата. -
object(строка)
Тип объекта всегда"chat.completion". -
created(целое число)
Метка времени создания в секундах эпохи. -
model(строка)
Модель, используемая для завершения. -
choices(массив)
Список вариантов завершения, каждый из которых содержит:-
index(целое число)
Индекс этого выбора. -
message(объект)
Созданное сообщение с:-
role(строка)
Всегда"assistant"для ответов. -
content(строка)
Фактически созданный текст.
-
-
finish_reason(строка)
Почему генерация остановлена (например,"stop","length","function_call").
-
-
usage(объект)
Статистика использования токенов:-
prompt_tokens(целое число)
Маркеры в запросе. -
completion_tokens(целое число)
Маркеры в завершении. -
total_tokens(целое число)
Всего используемых токенов.
-
Пример:
Текст запроса
{
"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": {}
}
Основная часть ответа
{
"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
}
}
POST /v1/audio/транскрибирование
Эта конечная точка транскрибирует звуковые файлы в текст. Он совместим с API транскрибирования звука OpenAI.
Формат запроса:multipart/form-data
Поля запроса:
-
file(файл, обязательный)
Звуковой файл для транскрибирования. Поддерживаемые форматы включают MP3, WAV, FLAC, OGG и WebM. -
model(строка, обязательный)
Идентификатор модели, используемый для транскрибирования. Используйте идентификатор, возвращаемый при загрузке модели Whisper (например, после загрузкиwhisper-tiny). -
language(строка, необязательно)
Язык звука в формате ISO 639-1 (например,"en"). Это повышает точность и скорость. -
temperature(число, необязательно)
Температура выборки от 0 до 1. Более низкие значения дают более детерминированные результаты. -
response_format(строка, необязательно)
Формат ответа. Параметры:json(по умолчанию),text,verbose_json.
Текст ответа:
-
text(строка)
Транскрибированные тексты.
Пример:
запрос
curl -X POST http://localhost:<PORT>/v1/audio/transcriptions \
-F "file=@recording.wav" \
-F "model=<MODEL_ID>" \
-F "language=en"
Important
Замените <PORT> динамический порт локальной службы Foundry и <MODEL_ID> идентификатором модели, возвращаемым при загрузке модели. В пакете SDK используйте manager.endpoint (JS) или config.Web.Urls (C#) для получения конечной точки — никогда не жестко закодировать порт.
Основная часть ответа
{
"text": "This is the transcribed text from the audio file."
}
Tip
Доступные псевдонимы модели Whisper включают whisper-tiny, whisper-baseи whisper-small. Используйте эти псевдонимы с пакетом SDK для скачивания и загрузки моделей, например manager.catalog.getModel("whisper-tiny") в JavaScript.
GET /openai/status
Получение сведений о состоянии сервера.
Текст ответа:
-
Endpoints(массив строк)
Конечные точки привязки HTTP-сервера. -
ModelDirPath(строка)
Каталог, в котором хранятся локальные модели. -
PipeName(строка)
Текущее имя сервера NamedPipe.
Пример:
Основная часть ответа
{
"Endpoints": ["http://localhost:5272"],
"ModelDirPath": "/path/to/models",
"PipeName": "inference_agent"
}
GET /foundry/list
Получите список доступных локальных моделей Foundry в каталоге.
Ответ.
-
models(массив)
Массив объектов модели. Каждая модель включает:-
name: уникальный идентификатор модели. -
displayName: человекочитаемое имя для модели, часто совпадающее с названием. -
providerType: тип поставщика, на котором размещена модель (например, AzureFoundry). -
uri: URI ресурса, указывающий на расположение модели в реестре. -
version: номер версии модели. -
modelType: формат или тип модели (например, ONNX). -
promptTemplate:-
assistant: шаблон ответа помощника. -
prompt: шаблон взаимодействия с помощником пользователя.
-
-
publisher: сущность или организация, опубликованная моделью. -
task: основная задача модели предназначена для выполнения (например, завершения чата). -
runtime:-
deviceType: Тип оборудования, на котором предназначена для работы модель (например, центральный процессор). -
executionProvider: поставщик выполнения, используемый для выполнения модели.
-
-
fileSizeMb: размер файла модели в мегабайтах. -
modelSettings:-
parameters: список настраиваемых параметров для модели.
-
-
alias: альтернативное имя или сокращенное имя модели -
supportsToolCalling: указывает, поддерживает ли модель функцию вызова инструментов. -
license: тип лицензии, в котором распространяется модель. -
licenseDescription: подробное описание или ссылка на условия лицензии. -
parentModelUri: универсальный код ресурса (URI) родительской модели, от которой производна эта модель.
-
GET /openai/models
Получите список кэшированных моделей, включая локальные и зарегистрированные внешние модели.
Ответ.
- 200 OK (Запрос выполнен успешно)
Массив имен моделей в виде строк.
Пример:
Основная часть ответа
["Phi-4-mini-instruct-generic-cpu", "phi-3.5-mini-instruct-generic-cpu"]
POST /openai/download
Скачайте модель из каталога в локальную storage.
Note
Загрузка больших моделей может занять много времени. Задайте большое время ожидания для этого запроса, чтобы избежать раннего завершения.
Текст запроса :
-
model(WorkspaceInferenceModelобъект)-
Uri(строка)
URI модели для скачивания. -
Name(строка) Имя модели. -
ProviderType(строка, необязательно)
Тип поставщика (например,"AzureFoundryLocal","HuggingFace"). -
Path(строка, необязательно)
Удаленный путь к файлам модели. Например, в репозитории hugging Face это путь к файлам модели. -
PromptTemplate(Dictionary<string, string>необязательно)
Включает:-
system(строка, необязательно)
Шаблон для системного сообщения. -
user(строка, необязательно) Шаблон сообщения пользователя. -
assistant(строка, необязательно)
Шаблон ответа помощника. -
prompt(строка, необязательно)
Шаблон взаимодействия с помощником пользователя.
-
-
Publisher(строка, необязательно)
Publisher модели.
-
-
token(строка, необязательно)
Маркер проверки подлинности для защищенных моделей (GitHub или обнимает лицо). -
progressToken(объект, необязательный)
Только для AITK. Маркер для отслеживания хода скачивания. -
customDirPath(строка, необязательно)
Пользовательский каталог загрузок (используется для CLI, не требуется для AITK). -
bufferSize(целое число, необязательно)
Размер буфера загрузки HTTP в КБ. Не влияет на NIM или Azure модели Foundry. -
ignorePipeReport(логический, необязательный)
Еслиtrue, принуждает передачу отчётов о ходе выполнения через HTTP поток вместо канала. По умолчанию устанавливаетсяfalseдля AITK иtrueдля Foundry Local.
Ответ потоковой передачи:
Во время загрузки сервер передаёт обновления о ходе в формате:
("file name", percentage_complete)
Окончательный текст ответа:
-
Success(логическое)
Выполняется ли скачивание успешно. -
ErrorMessage(строка, необязательно)
Сведения об ошибке при сбое скачивания.
Пример:
Запрос URI
POST /openai/download
Текст запроса
Обратите внимание, что суффикс версии должен быть указан в имени модели.
{
"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|>"
}
}
}
Поток ответа
("genai_config.json", 0.01)
("genai_config.json", 0.2)
("model.onnx.data", 0.5)
("model.onnx.data", 0.78)
...
("", 1)
Окончательный ответ
{
"Success": true,
"ErrorMessage": null
}
GET /openai/load/{name}
Загрузите модель в память для ускорения вывода.
Параметры URI:
-
name(строка)
Имя модели для загрузки.
Параметры запроса:
-
unload(логический, необязательный)
Следует ли автоматически выгрузить модель после простоя. По умолчанию —true. -
ttl(целое число, необязательно)
Время жизни в секундах. Если значение больше 0, это значение переопределяетunloadпараметр. -
ep(строка, необязательно)
Поставщик исполнения для запуска этой модели. Поддерживает:"dml","cuda","qnn","cpu","webgpu".
Если параметр не указан, использует параметры изgenai_config.json.
Ответ.
- 200 OK (Запрос выполнен успешно)
Пустой текст ответа
Пример:
Запрос URI
GET /openai/load/Phi-4-mini-instruct-generic-cpu?ttl=3600&ep=dml
GET /openai/unload/{name}
Выгрузка модели из памяти.
Параметры URI:
-
name(строка) Имя модели для выгрузки.
Параметры запроса:
-
force(логический, необязательный) Еслиtrueпараметр TTL игнорируется и выгружается немедленно.
Ответ.
- 200 ОК Пустой текст ответа
Пример:
Запрос URI
GET /openai/unload/Phi-4-mini-instruct-generic-cpu?force=true
GET /openai/unloadall
Выгрузка всех моделей из памяти.
Ответ.
- 200 OK (Запрос выполнен успешно)
Пустой текст ответа
GET /openai/loadedmodels
Получите список загруженных в данный момент моделей.
Ответ.
- 200 OK (Запрос выполнен успешно)
Массив имен моделей в виде строк.
Пример:
Основная часть ответа
["Phi-4-mini-instruct-generic-cpu", "phi-3.5-mini-instruct-generic-cpu"]
GET /openai/getgpudevice
Получите текущий идентификатор устройства GPU.
Ответ.
- 200 OK (Запрос выполнен успешно)
Целое число, представляющее текущий идентификатор устройства GPU.
GET /openai/setgpudevice/{deviceId}
Задайте активное устройство GPU.
Параметры URI:
-
deviceId(целое число)
Идентификатор устройства GPU для использования.
Ответ.
- 200 OK (Запрос выполнен успешно)
Пустой текст ответа
Пример:
- URI запроса
GET /openai/setgpudevice/1
POST /v1/chat/completions/tokenizer/encode/count
Подсчитывает токены для заданного чатового запроса на завершение без выполнения вычислений.
Текст запроса :
- Тип содержания: application/json
- Объект JSON в
ChatCompletionCreateRequestформате:-
model(строка)
Модель, используемая для токенизации. -
messages(массив)
Массив объектов сообщений сroleиcontent.
-
Текст ответа:
- Тип содержания: application/json
- Объект JSON со счетчиком маркеров:
-
tokenCount(целое число)
Количество маркеров в запросе.
-
Пример:
Текст запроса
{
"messages": [
{
"role": "system",
"content": "This is a system message"
},
{
"role": "user",
"content": "Hello, what is Microsoft?"
}
],
"model": "Phi-4-mini-instruct-cuda-gpu"
}
Основная часть ответа
{
"tokenCount": 23
}