Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Důležité
- Foundry Local je k dispozici ve verzi Preview. Verze Public Preview poskytují dřívější access funkcím, které jsou v aktivním nasazení.
- Funkce, přístupy a procesy se můžou před obecnou dostupností měnit nebo mít omezené možnosti.
Upozornění
Toto rozhraní API odkazuje na rozhraní REST API dostupné v rozhraní příkazového řádku Foundry Local CLI. Toto rozhraní API je ve fázi aktivního vývoje a může obsahovat zásadní změny bez předchozího upozornění. Před vytvářením produkčních aplikací důrazně doporučujeme monitorovat protokol změn.
POST /v1/chat/completions
Tento koncový bod zpracovává žádosti o dokončení chatu.
Je plně kompatibilní s rozhraním API pro dokončování chatu OpenAI.
text požadavku :
---Standardní vlastnosti OpenAI---
-
model(řetězec)
Konkrétní model, který se má použít k dokončení. -
messages(matice)
Historie konverzací jako seznam zpráv.- Každá zpráva vyžaduje:
-
role(řetězec)
Role odesílatele zprávy. Musí býtsystem,userneboassistant. -
content(řetězec)
Skutečný text zprávy.
-
- Každá zpráva vyžaduje:
-
temperature(číslo, volitelné)
Řídí náhodnost v rozsahu od 0 do 2. Vyšší hodnoty (0,8) vytvářejí různé výstupy, zatímco nižší hodnoty (0,2) vytvářejí prioritní konzistentní výstupy. -
top_p(číslo, volitelné)
Řídí rozmanitost výběru tokenů od 0 do 1. Hodnota 0,1 znamená, že se považují pouze tokeny s deseti nejvyššími hodnotami pravděpodobnosti%. -
n(celé číslo, volitelné)
Počet alternativních dokončování, které se mají vygenerovat pro každou vstupní zprávu -
stream(logická hodnota, volitelné)
Pokud je pravda, odešle částečné odpovědi na zprávy jako události odeslané serverem, končící zprávoudata: [DONE]. -
stop(řetězec nebo pole, volitelné)
Až 4 sekvence, které způsobí, že model přestane generovat další tokeny. -
max_tokens(celé číslo, volitelné)
Maximální počet tokenů, které se mají vygenerovat. Pro novější modely použijtemax_completion_tokensmísto toho. -
max_completion_tokens(celé číslo, volitelné)
Maximální počet tokenů, které model může vygenerovat, včetně viditelných výstupů a zdůvodnění tokenů. -
presence_penalty(číslo, volitelné)
Hodnota mezi -2,0 a 2,0. Kladné hodnoty podporují model, aby diskutoval o nových tématech tím, že penalizuje tokeny, které se už objevily. -
frequency_penalty(číslo, volitelné)
Hodnota mezi -2,0 a 2,0. Kladné hodnoty odrazují opakování tím, že penalizují tokeny na základě jejich četnosti v textu. -
logit_bias(mapa, volitelné)
Upraví pravděpodobnost výskytu konkrétních tokenů v generování. -
user(řetězec, volitelné)
Jedinečný identifikátor pro koncového uživatele, který pomáhá s monitorováním a prevenci zneužitím. -
functions(pole, volitelné)
Dostupné funkce, pro které může model generovat vstupy JSON.- Každá funkce musí obsahovat:
-
name(řetězec)
Název funkce -
description(řetězec)
Popis funkce -
parameters(objekt)
Parametry funkce popsané jako objekt schématu JSON.
-
- Každá funkce musí obsahovat:
-
function_call(řetězec nebo objekt, volitelné)
Určuje, jak model reaguje na volání funkcí.- Pokud se jedná o objekt, může obsahovat:
-
name(řetězec, volitelné)
Název funkce, která se má volat. -
arguments(objekt, volitelné)
Argumenty, které se mají předat funkci.
-
- Pokud se jedná o objekt, může obsahovat:
-
metadata(objekt, volitelné)
Slovník párů klíč-hodnota metadat. -
top_k(číslo, volitelné)
Počet nejpravděpodobnějších tokenů ze slovní zásoby, které se mají ponechat pro filtrování pomocí metody top-k. -
random_seed(celé číslo, volitelné)
Semeno pro reprodukovatelné generování náhodných čísel. -
ep(řetězec, volitelné)
Přepište poskytovatele pro modely ONNX. Podporuje:"dml","cuda","qnn","cpu","webgpu". -
ttl(celé číslo, volitelné)
Čas životnosti modelu v paměti v sekundách. -
tools(objekt, volitelné)
Nástroje vypočítané pro žádost
Text odpovědi:
-
id(řetězec)
Jedinečný identifikátor dokončení chatu. -
object(řetězec)
Typ objektu, vždy"chat.completion". -
created(celé číslo)
Časové razítko vytváření v epochových sekundách -
model(řetězec)
Model použitý k dokončení. -
choices(matice)
Seznam voleb dokončení, z nichž každá obsahuje:-
index(celé číslo)
Index této volby. -
message(objekt)
Vygenerovaná zpráva s:-
role(řetězec)
Pro odpovědi vždy"assistant". -
content(řetězec)
Skutečný vygenerovaný text.
-
-
finish_reason(řetězec)
Proč se generování zastavilo (např"stop". ,"length","function_call").
-
-
usage(objekt)
Statistika využití tokenů:-
prompt_tokens(celé číslo)
Tokeny v příkazovém řádku -
completion_tokens(celé číslo)
Tokeny v rámci dokončení. -
total_tokens(celé číslo)
Využité tokeny celkem
-
Příklad:
Obsah požadavku
{
"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": {}
}
Obsah odpovědi
{
"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/přepisy
Tento koncový bod přepisuje zvukové soubory na text. Je kompatibilní s rozhraním API pro přepisy zvuku OpenAI.
Formát požadavku:multipart/form-data
Pole žádosti:
-
file(soubor, povinné)
Zvukový soubor, který se má přepisovat. Mezi podporované formáty patří MP3, WAV, FLAC, OGG a WebM. -
model(řetězec, povinné)
ID modelu, které se má použít k přepisu. Použijte ID vrácené při načítání modelu Whisper (například po načteníwhisper-tiny). -
language(řetězec, volitelné)
Jazyk zvuku ve formátu ISO 639-1 (například"en"). Tím se zvyšuje přesnost a rychlost. -
temperature(číslo, volitelné)
Vzorkovací teplota mezi 0 a 1. Nižší hodnoty vytvářejí deterministické výsledky. -
response_format(řetězec, volitelné)
Formát odpovědi. Možnosti:json(výchozí),text,verbose_json.
Text odpovědi:
-
text(řetězec)
Přepisovaný text.
Příklad:
Prosba
curl -X POST http://localhost:<PORT>/v1/audio/transcriptions \
-F "file=@recording.wav" \
-F "model=<MODEL_ID>" \
-F "language=en"
Důležité
Nahraďte <PORT> dynamickým portem místní služby Foundry a <MODEL_ID> ID modelu vráceným při načtení modelu. V sadě SDK použijte manager.endpoint (JS) nebo config.Web.Urls (C#) k získání koncového bodu – nikdy pevně zakódujte port.
Obsah odpovědi
{
"text": "This is the transcribed text from the audio file."
}
Návod
Dostupné aliasy modelu Whisper zahrnují whisper-tiny, whisper-basea whisper-small. Pomocí těchto aliasů se sadou SDK můžete stahovat a načítat modely, manager.catalog.getModel("whisper-tiny") například v JavaScriptu.
GET /openai/status
Získejte informace o stavu serveru.
Text odpovědi:
-
Endpoints(pole řetězců)
Koncové body vazby serveru HTTP. -
ModelDirPath(řetězec)
Adresář, kde jsou uloženy místní modely. -
PipeName(řetězec)
Aktuální název serveru NamedPipe.
Příklad:
Obsah odpovědi
{
"Endpoints": ["http://localhost:5272"],
"ModelDirPath": "/path/to/models",
"PipeName": "inference_agent"
}
GET /foundry/list
Získejte seznam dostupných místních modelů Foundry v katalogu.
Odpověď:
-
models(matice)
Pole objektů modelu Každý model zahrnuje:-
name: Jedinečný identifikátor modelu. -
displayName: Název modelu čitelný pro člověka, často stejný jako název. -
providerType: Typ poskytovatele hostujícího model (například AzureFoundry). -
uri: Identifikátor URI prostředku odkazující na umístění modelu v registru. -
version: Číslo verze modelu. -
modelType: Formát nebo typ modelu (například ONNX). -
promptTemplate:-
assistant: Šablona pro odpověď asistenta. -
prompt: Šablona pro interakci s uživatelským asistentem.
-
-
publisher: Entita nebo organizace, které model publikovaly. -
task: Primární úkol, který model má provést (například dokončení chatu). -
runtime:-
deviceType: Typ hardwaru, na který má model běžet (například procesor). -
executionProvider: Zprostředkovatel spuštění použitý ke spuštění modelu.
-
-
fileSizeMb: Velikost souboru modelu v megabajtech. -
modelSettings:-
parameters: Seznam konfigurovatelných parametrů pro model.
-
-
alias: Alternativní název nebo zkratka modelu -
supportsToolCalling: Určuje, jestli model podporuje funkce volání nástrojů. -
license: Typ licence, pod kterou se model distribuuje. -
licenseDescription: Podrobný popis nebo odkaz na licenční podmínky. -
parentModelUri: Identifikátor URI nadřazeného modelu, ze kterého je tento model odvozen.
-
GET /openai/models
Získejte seznam modelů uložených v mezipaměti, včetně místních a registrovaných externích modelů.
Odpověď:
- 200 OK
Pole názvů modelů jako řetězců
Příklad:
Obsah odpovědi
["Phi-4-mini-instruct-generic-cpu", "phi-3.5-mini-instruct-generic-cpu"]
POST /openai/download
Stáhněte si model z katalogu do místního storage.
Poznámka:
Stahování velkých modelů může trvat delší dobu. Nastavte pro tento požadavek vysoký časový limit, abyste se vyhnuli předčasnému ukončení.
text požadavku :
-
model(WorkspaceInferenceModelobjekt)-
Uri(řetězec)
Identifikátor URI modelu, který chcete stáhnout. -
Name(řetězec) Název modelu. -
ProviderType(řetězec, volitelné)
Typ zprostředkovatele (například"AzureFoundryLocal","HuggingFace"). -
Path(řetězec, volitelné)
Vzdálená cesta k souborům modelu Například v úložišti Hugging Face je to cesta k souborům modelu. -
PromptTemplate(Dictionary<string, string>volitelné)
Zahrnuje:-
system(řetězec, volitelné)
Šablona pro systémovou zprávu. -
user(řetězec, volitelné) Šablona pro zprávu uživatele. -
assistant(řetězec, volitelné)
Šablona pro odpověď asistenta. -
prompt(řetězec, volitelné)
Šablona pro interakci s uživatelským asistentem.
-
-
Publisher(řetězec, volitelné)
Publisher modelu.
-
-
token(řetězec, volitelné)
Ověřovací token pro chráněné modely (GitHub nebo Hugging Face). -
progressToken(objekt, volitelné)
Pouze pro AITK. Token ke sledování průběhu stahování -
customDirPath(řetězec, volitelné)
Vlastní adresář pro stahování (používaný pro rozhraní příkazového řádku, není potřeba pro AITK). -
bufferSize(celé číslo, volitelné)
Velikost vyrovnávací paměti pro stahování HTTP v kB. Žádný vliv na modely NIM nebo Azure Foundry. -
ignorePipeReport(logická hodnota, volitelné)
Pokudtrue, vynutí hlášení průběhu prostřednictvím HTTP streamu místo potrubí. Výchozí hodnota jefalsepro AITK atruepro Foundry Local.
Odpověď streamování:
Během stahování server poskytuje aktualizace průběhu ve formátu:
("file name", percentage_complete)
Konečný text odpovědi:
-
Success(logická hodnota)
Zda bylo stahování úspěšně dokončeno. -
ErrorMessage(řetězec, volitelné)
Podrobnosti o chybě, pokud stahování selhalo.
Příklad:
Požadavek na URI
POST /openai/download
Obsah požadavku
Všimněte si, že přípona verze musí být zadána v názvu modelu.
{
"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|>"
}
}
}
Stream odpovědí
("genai_config.json", 0.01)
("genai_config.json", 0.2)
("model.onnx.data", 0.5)
("model.onnx.data", 0.78)
...
("", 1)
Konečná odpověď
{
"Success": true,
"ErrorMessage": null
}
GET /openai/load/{name}
Načtěte model do paměti pro rychlejší odvozování.
Parametry identifikátoru URI:
-
name(řetězec)
Název modelu, který se má načíst.
Parametry dotazu:
-
unload(logická hodnota, volitelné)
Určuje, jestli se má model automaticky uvolnit po době nečinnosti. Výchozí hodnota jetrue. -
ttl(celé číslo, volitelné)
Čas přežití v sekundách. Pokud je větší než 0, tato hodnota přepíšeunloadparametr. -
ep(řetězec, volitelné)
Zprostředkovatel spouštění pro spuštění tohoto modelu Podporuje:"dml","cuda","qnn","cpu","webgpu".
Pokud není zadáno, použije nastavení zgenai_config.json.
Odpověď:
- 200 OK
Prázdný text odpovědi
Příklad:
Požadavek na URI
GET /openai/load/Phi-4-mini-instruct-generic-cpu?ttl=3600&ep=dml
GET /openai/unload/{name}
Uvolnění modelu z paměti
Parametry identifikátoru URI:
-
name(řetězec) Název modelu, který se má uvolnit.
Parametry dotazu:
-
force(logická hodnota, volitelné) Pokudtrue, ignoruje nastavení hodnoty TTL a okamžitě se uvolní.
Odpověď:
- 200 OK Prázdný text odpovědi
Příklad:
Požadavek na URI
GET /openai/unload/Phi-4-mini-instruct-generic-cpu?force=true
GET /openai/unloadall
Uvolní všechny modely z paměti.
Odpověď:
- 200 OK
Prázdný text odpovědi
GET /openai/loadedmodels
Získejte seznam aktuálně načtených modelů.
Odpověď:
- 200 OK
Pole názvů modelů jako řetězců
Příklad:
Obsah odpovědi
["Phi-4-mini-instruct-generic-cpu", "phi-3.5-mini-instruct-generic-cpu"]
GET /openai/getgpudevice
Získejte aktuální ID zařízení GPU.
Odpověď:
- 200 OK
Celé číslo představující aktuální ID zařízení GPU.
GET /openai/setgpudevice/{deviceId}
Nastavte aktivní zařízení GPU.
Parametry identifikátoru URI:
-
deviceId(celé číslo)
ID zařízení GPU, které se má použít.
Odpověď:
- 200 OK
Prázdný text odpovědi
Příklad:
- Požadavek URI
GET /openai/setgpudevice/1
POST /v1/chat/completions/tokenizer/encode/count
Počítá tokeny pro danou žádost o dokončení chatu bez odvozování.
text požadavku :
- Typ obsahu: application/json
- Objekt JSON ve
ChatCompletionCreateRequestformátu s:-
model(řetězec)
Model, který se má použít pro tokenizaci -
messages(matice)
Pole objektů zpráv sroleacontent.
-
Text odpovědi:
- Typ obsahu: application/json
- Objekt JSON s počtem tokenů:
-
tokenCount(celé číslo)
Počet tokenů v požadavku
-
Příklad:
Obsah požadavku
{
"messages": [
{
"role": "system",
"content": "This is a system message"
},
{
"role": "user",
"content": "Hello, what is Microsoft?"
}
],
"model": "Phi-4-mini-instruct-cuda-gpu"
}
Obsah odpovědi
{
"tokenCount": 23
}