Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Von Bedeutung
- Foundry Local ist in der Vorschau verfügbar. Öffentliche Vorschauversionen bieten frühzeitigen Zugriff auf Features, die sich in der aktiven Bereitstellung befinden.
- Features, Ansätze und Prozesse können sich vor der allgemeinen Verfügbarkeit (General Availability, GA) noch ändern oder eine eingeschränkte Funktionalität aufweisen.
Vorsicht
Diese API bezieht sich auf die REST-API, die in der lokalen Cli für Foundry verfügbar ist. Diese API befindet sich in der aktiven Entwicklung und kann unterbrechungslose Änderungen enthalten. Sie sollten sich das Änderungsprotokoll unbedingt ansehen, bevor Sie Produktionsanwendungen erstellen.
POST /v1/chat/completions
Dieser Endpunkt verarbeitet Chatabschlussanforderungen.
Sie ist vollständig kompatibel mit der OpenAI-Chat-Abschluss-API.
Anforderungstext:
---Standard OpenAI-Eigenschaften---
-
model(Zeichenfolge)
Das spezifische Modell, das für die Vervollständigung verwendet werden soll. -
messages(Array)
Der Konversationsverlauf als Liste von Nachrichten.- Jede Nachricht erfordert Folgendes:
-
role(Zeichenfolge)
Die Rolle des Absenders der Nachricht. Musssystem,useroderassistantsein. -
content(Zeichenfolge)
Der eigentliche Nachrichtentext.
-
- Jede Nachricht erfordert Folgendes:
-
temperature(Zahl, optional)
Steuert die Zufälligkeit, im Bereich von 0 bis 2. Höhere Werte (0,8) erzeugen unterschiedliche Ausgaben, während niedrigere Werte (0,2) fokussierte, konsistente Ausgaben erzeugen. -
top_p(Zahl, optional)
Steuert die Tokenauswahlvielfalt von 0 bis 1. Ein Wert von 0,1 bedeutet, dass nur die Token mit der höchsten Wahrscheinlichkeit von 10 % berücksichtigt werden. -
n(ganze Zahl, optional)
Anzahl der alternativen Vervollständigungen, die für jede Eingabenachricht generiert werden sollen. -
stream(boolescher Wert, optional)
Wenn wahr, sendet Teilnachrichtenantworten als servergesendete Ereignisse, die mit einerdata: [DONE]Nachricht enden. -
stop(Zeichenfolge oder Array, optional)
Bis zu 4 Sequenzen, die dazu führen, dass das Modell das Generieren weiterer Token beendet. -
max_tokens(ganze Zahl, optional)
Maximale Anzahl der zu generierenden Token. Verwenden Siemax_completion_tokensstattdessen für neuere Modelle. -
max_completion_tokens(ganze Zahl, optional)
Maximale Anzahl von Token, die das Modell generieren kann, einschließlich sichtbarer Ausgabe- und Begründungstoken. -
presence_penalty(Zahl, optional)
Wert zwischen -2,0 und 2,0. Positive Werte ermutigen das Modell, neue Themen zu diskutieren, indem Token bestraft werden, die bereits erschienen sind. -
frequency_penalty(Zahl, optional)
Wert zwischen -2,0 und 2,0. Positive Werte verhindern Wiederholungen, indem Token basierend auf ihrer Häufigkeit im Text bestraft werden. -
logit_bias(Zuordnung, optional)
Passt die Wahrscheinlichkeit an, dass bestimmte Token in der Vervollständigung auftauchen. -
user(Zeichenfolge, optional)
Ein eindeutiger Bezeichner für Ihren Endbenutzer, der bei der Überwachung und Missbrauchsprävention hilft. -
functions(Array, optional)
Verfügbare Funktionen, für die das Modell JSON-Eingaben generieren kann.- Jede Funktion muss Folgendes enthalten:
-
name(Zeichenfolge)
Funktionsname. -
description(Zeichenfolge)
Funktionsbeschreibung. -
parameters(Objekt)
Funktionsparameter, die als JSON-Schemaobjekt beschrieben werden.
-
- Jede Funktion muss Folgendes enthalten:
-
function_call(Zeichenfolge oder Objekt, optional)
Steuert, wie das Modell auf Funktionsaufrufe reagiert.- Wenn es sich um ein Objekt handelt, kann Folgendes enthalten sein:
-
name(Zeichenfolge, optional)
Der Name der aufzurufenden Funktion. -
arguments(Objekt, optional)
Die Argumente, die an die Funktion übergeben werden sollen.
-
- Wenn es sich um ein Objekt handelt, kann Folgendes enthalten sein:
-
metadata(Objekt, optional)
Ein Wörterbuch mit Metadatenschlüssel-Wert-Paaren. -
top_k(Zahl, optional)
Die Anzahl der Token mit der höchsten Wahrscheinlichkeit im Vokabular, die bei der Top-k-Filterung beibehalten werden. -
random_seed(ganze Zahl, optional)
Seed für reproduzierbare Zufallszahlengenerierung. -
ep(Zeichenfolge, optional)
Überschreiben Sie den Anbieter für ONNX-Modelle. Unterstützt:"dml","cuda","qnn","cpu","webgpu". -
ttl(ganze Zahl, optional)
Gültigkeitsdauer für das Modell im Arbeitsspeicher in Sekunden. -
tools(Objekt, optional)
Für die Anforderung berechnete Tools.
Antworttext:
-
id(Zeichenfolge)
Eindeutiger Bezeichner für den Chatabschluss. -
object(Zeichenfolge)
Der Objekttyp, immer"chat.completion". -
created(ganze Zahl)
Zeitstempel der Erstellung in Epochensekunden. -
model(Zeichenfolge)
Das für die Vervollständigung verwendete Modell -
choices(Array)
Liste der Abschlussoptionen, die jeweils Folgendes enthalten:-
index(ganze Zahl)
Der Index dieser Auswahl. -
message(Objekt)
Die generierte Nachricht mit:-
role(Zeichenfolge)
Für Antworten immer"assistant". -
content(Zeichenfolge)
Der tatsächlich generierte Text.
-
-
finish_reason(Zeichenfolge)
Warum die Erzeugung gestoppt wurde (z. B."stop","length","function_call").
-
-
usage(Objekt)
Tokenverwendungsstatistiken:-
prompt_tokens(ganze Zahl)
Token im Prompt. -
completion_tokens(ganze Zahl)
Token im Abschluss. -
total_tokens(ganze Zahl)
Gesamtanzahl der verwendeten Tokens.
-
Beispiel:
Anforderungstext
{
"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": {}
}
Antwortkörper
{
"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
Abrufen von Serverstatusinformationen.
Antworttext:
-
Endpoints(Array von Zeichenfolgen)
Die Bindungsendpunkte des HTTP-Servers. -
ModelDirPath(Zeichenfolge)
Verzeichnis, in dem lokale Modelle gespeichert werden. -
PipeName(Zeichenfolge)
Der aktuelle Name des NamedPipe-Servers.
Beispiel:
Antwortkörper
{
"Endpoints": ["http://localhost:5272"],
"ModelDirPath": "/path/to/models",
"PipeName": "inference_agent"
}
GET /foundry/list
Rufen Sie eine Liste der verfügbaren lokalen Foundry-Modelle im Katalog ab.
Antwort:
-
models(Array)
Feld von Modellobjekten. Jedes Modell umfasst:-
name: Der eindeutige Bezeichner für das Modell. -
displayName: Ein lesbarer Name für das Modell, häufig identisch mit dem Namen. -
providerType: Der Typ des Anbieters, der das Modell hosten (z. B. AzureFoundry). -
uri: Die Ressourcen-URI, die auf den Speicherort des Modells im Verzeichnis verweist. -
version: Die Versionsnummer des Modells. -
modelType: Das Format oder der Typ des Modells (z. B. ONNX). -
promptTemplate:-
assistant: Die Vorlage für die Antwort des Assistenten. -
prompt: Die Vorlage für die Benutzer-Assistent-Interaktion.
-
-
publisher: Die Entität oder Organisation, die das Modell veröffentlicht hat. -
task: Die primäre Aufgabe, die das Modell ausführen soll (z. B. Chatabschluss). -
runtime:-
deviceType: Der Typ der Hardware, auf der das Modell ausgeführt werden soll (z. B. CPU). -
executionProvider: Der Ausführungsanbieter, der für die Ausführung des Modells verwendet wird.
-
-
fileSizeMb: Die Größe der Modelldatei in Megabyte. -
modelSettings:-
parameters: Eine Liste konfigurierbarer Parameter für das Modell.
-
-
alias: Ein alternativer Name oder eine Kurzform für das Modell -
supportsToolCalling: Gibt an, ob das Modell Funktionen zum Aufrufen von Tools unterstützt. -
license: Der Lizenztyp, unter dem das Modell verteilt wird. -
licenseDescription: Eine detaillierte Beschreibung oder ein Link zu den Lizenzbedingungen. -
parentModelUri: Der URI des übergeordneten Modells, von dem dieses Modell abgeleitet wird.
-
GET /openai/models
Dient zum Abrufen einer Liste zwischengespeicherter Modelle, einschließlich lokaler und registrierter externer Modelle.
Antwort:
- 200 – OK
Ein Zeichenfolgenarray von Modellnamen.
Beispiel:
Antwortkörper
["Phi-4-mini-instruct-generic-cpu", "phi-3.5-mini-instruct-generic-cpu"]
POST /openai/download
Laden Sie ein Modell aus dem Katalog in den lokalen Speicher herunter.
Hinweis
Große Modelldownloads können eine lange Zeit in Anspruch nehmen. Legen Sie einen hohen Timeout für diese Anforderung fest, um eine vorzeitige Beendigung zu vermeiden.
Anforderungstext:
-
model(WorkspaceInferenceModelObjekt)-
Uri(Zeichenfolge)
Der Modell-URI, der heruntergeladen werden soll. -
Name(Zeichenfolge) Der Modellname. -
ProviderType(Zeichenfolge, optional)
Der Anbietertyp (z"AzureFoundryLocal". B. ,"HuggingFace"). -
Path(Zeichenfolge, optional)
Remotepfad zu den Modelldateien. Dies ist z. B. in einem Hugging Face-Repository der Pfad zu den Modelldateien. -
PromptTemplate(Dictionary<string, string>, fakultativ)
Enthält:-
system(Zeichenfolge, optional)
Die Vorlage für die Systemmeldung. -
user(Zeichenfolge, optional) Die Vorlage für die Nachricht des Benutzers. -
assistant(Zeichenfolge, optional)
Die Vorlage für die Antwort des Assistenten. -
prompt(Zeichenfolge, optional)
Die Vorlage für die Benutzer-Assistent-Interaktion.
-
-
Publisher(Zeichenfolge, optional)
Der Herausgeber des Modells.
-
-
token(Zeichenfolge, optional)
Authentifizierungstoken für geschützte Modelle (GitHub oder Hugging Face). -
progressToken(Objekt, optional)
Nur für AITK. Token zum Nachverfolgen des Downloadfortschritts. -
customDirPath(Zeichenfolge, optional)
Benutzerdefiniertes Downloadverzeichnis (für CLI verwendet, für AITK nicht erforderlich). -
bufferSize(ganze Zahl, optional)
GRÖßE des HTTP-Downloadpuffers in KB. Keine Auswirkung auf NIM- oder Azure Foundry-Modelle. -
ignorePipeReport(boolescher Wert, optional)
Wenn dieser Werttrueist, wird die Statusberichterstattung über HTTP-Datenstrom anstelle von Pipe erzwungen. Für AITK standardmäßigfalseund für Foundry Localtrue.
Streamingantwort:
Während des Downloads streamt der Server Statusaktualisierungen im Format:
("file name", percentage_complete)
Endgültiger Antworttext:
-
Success(Boolescher Wert)
Ob der Download erfolgreich abgeschlossen wurde. -
ErrorMessage(Zeichenfolge, optional)
Fehlerdetails, wenn der Download fehlgeschlagen ist.
Beispiel:
Anforderungs-URI
POST /openai/download
Anforderungstext
Beachten Sie, dass das Versionssuffix im Modellnamen angegeben werden muss.
{
"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|>"
}
}
}
Antwortstrom
("genai_config.json", 0.01)
("genai_config.json", 0.2)
("model.onnx.data", 0.5)
("model.onnx.data", 0.78)
...
("", 1)
Endgültige Antwort
{
"Success": true,
"ErrorMessage": null
}
GET /openai/load/{name}
Laden Sie ein Modell in den Arbeitsspeicher, um eine schnellere Ableitung zu ermöglichen.
URI-Parameter:
-
name(Zeichenfolge)
Der zu ladende Modellname.
Abfrageparameter:
-
unload(boolescher Wert, optional)
Gibt an, ob das Modell nach Leerlaufzeit automatisch entladen werden soll. Wird standardmäßig auftruefestgelegt. -
ttl(ganze Zahl, optional)
Gültigkeitsdauer in Sekunden. Wenn er größer als 0 ist, überschreibt dieser Wert denunloadParameter. -
ep(Zeichenfolge, optional)
Ausführungsanbieter für dieses Modell. Unterstützt:"dml","cuda","qnn","cpu","webgpu".
Wenn nicht angegeben, werden die Einstellungen vongenai_config.jsonverwendet.
Antwort:
- 200 – OK
Leerer Antwortkörper
Beispiel:
Anforderungs-URI
GET /openai/load/Phi-4-mini-instruct-generic-cpu?ttl=3600&ep=dml
GET /openai/unload/{name}
Entladen sie ein Modell aus dem Arbeitsspeicher.
URI-Parameter:
-
name(Zeichenfolge) Der Modellname, der entladen werden soll.
Abfrageparameter:
-
force(boolescher Wert, optional) Wenntrue, ignoriert TTL-Einstellungen und Entladungen sofort.
Antwort:
- 200 OK Leerer Antworttext
Beispiel:
Anforderungs-URI
GET /openai/unload/Phi-4-mini-instruct-generic-cpu?force=true
GET /openai/unloadall
Entlädt alle Modelle aus dem Arbeitsspeicher.
Antwort:
- 200 – OK
Leerer Antwortkörper
GET /openai/loadedmodels
Ruft die Liste der derzeit geladenen Modelle ab.
Antwort:
- 200 – OK
Ein Zeichenfolgenarray von Modellnamen.
Beispiel:
Antwortkörper
["Phi-4-mini-instruct-generic-cpu", "phi-3.5-mini-instruct-generic-cpu"]
GET /openai/getgpudevice
Abrufen der aktuellen GPU-Geräte-ID.
Antwort:
- 200 – OK
Eine ganze Zahl, die die aktuelle GPU-Geräte-ID darstellt.
GET /openai/setgpudevice/{deviceId}
Legen Sie das aktive GPU-Gerät fest.
URI-Parameter:
-
deviceId(ganze Zahl)
Die zu verwendende GPU-Geräte-ID.
Antwort:
- 200 – OK
Leerer Antwortkörper
Beispiel:
- Anforderungs-URI
GET /openai/setgpudevice/1
POST /v1/chat/completions/tokenizer/encode/count
Zählt Token für eine bestimmte Chat-Abschlussanforderung ohne Ableitung.
Anforderungstext:
- Inhaltstyp: application/json
- JSON-Objekt im
ChatCompletionCreateRequestFormat mit:-
model(Zeichenfolge)
Modell, das für die Tokenisierung verwendet werden soll. -
messages(Array)
Array von Nachrichtenobjekten mitroleundcontent.
-
Antworttext:
- Inhaltstyp: application/json
- JSON-Objekt mit Tokenanzahl:
-
tokenCount(ganze Zahl)
Anzahl der Token in der Anforderung.
-
Beispiel:
Anforderungstext
{
"messages": [
{
"role": "system",
"content": "This is a system message"
},
{
"role": "user",
"content": "Hello, what is Microsoft?"
}
],
"model": "Phi-4-mini-instruct-cuda-gpu"
}
Antwortkörper
{
"tokenCount": 23
}