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 befindet sich in der aktiven Entwicklung und kann unterbrechungslose Änderungen enthalten. Sie sollten sich das Änderungsprotokoll unbedingt ansehen, bevor Sie Produktionsanwendungen erstellen.
OpenAI v1-Kompatibilität
POST /v1/chat/completions
Dieser Endpunkt verarbeitet Chatabschlussanforderungen.
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
,user
oderassistant
sein.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_tokens
stattdessen für neuere Modelle.max_completion_token
(ganze Zahl, optional)
Maximaler Tokengrenzwert für die Generierung, einschließlich sichtbarer Ausgabe- und Schlussfolgerungs-Token.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 dieser Wert ein Objekt ist, kann er Folgendes umfassen:
name
(Zeichenfolge, optional)
Der Name der aufzurufenden Funktion.arguments
(Objekt, optional)
Die Argumente, die an die Funktion übergeben werden sollen.
- Wenn dieser Wert ein Objekt ist, kann er Folgendes umfassen:
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 Modellchoices
(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": "Phi-4-mini-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": {} }
- Antworttext
{ "id": "chatcmpl-1234567890", "object": "chat.completion", "created": 1677851234, "model": "Phi-4-mini-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/embeddings
Verarbeitet Einbettungsgenerierungsanforderungen.
Kompatibel mit der OpenAI Embeddings-API
Anforderungstext:
model
(Zeichenfolge)
Das zu verwendende Einbettungsmodell (z. B."text-embedding-ada-002"
).input
(Zeichenfolge oder Array)
Eingabetext zum Einbetten. Dies kann eine einzelne Zeichenfolge oder ein Array von Zeichenfolgen/Token sein.encoding_format
(Zeichenfolge, optional)
Das Codierungsformat ("base64"
oder"float"
).
Antworttext:
object
(Zeichenfolge)
Immer"list"
.data
(Array)
Liste der Einbettungsobjekte, die jeweils Folgendes enthalten:object
(Zeichenfolge)
Immer"embedding"
.embedding
(Array)
Die Vektordarstellung des Eingabetexts.index
(ganze Zahl)
Die Position dieser Einbettung in das Eingabearray.
model
(Zeichenfolge)
Das Modell, das für die Einbettungsgenerierung verwendet wird.usage
(Objekt)
Tokenverwendungsstatistiken:prompt_tokens
(ganze Zahl)
Anzahl der Token im Prompt.total_tokens
(ganze Zahl)
Gesamtanzahl der verwendeten Tokens.
Beispiel:
- Anforderungstext
{ "model": "qwen_w_embeddings", "input": "Hello, how are you?" }
- Antworttext
{ "object": "list", "data": [ { "object": "embedding", "embedding": [0.1, 0.2, 0.3, ...], "index": 0 } ], "model": "qwen_w_embeddings", "usage": { "prompt_tokens": 10, "total_tokens": 10 } }
Benutzerdefinierte API
GET /foundry/list
Ruft eine Liste aller verfügbaren lokalen Foundry-Modelle im Katalog ab.
Antwort:
models
(Array)
Liste der Modellobjekte, die jeweils Folgendes enthalten: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 ModellsupportsToolCalling
: 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.
POST /openai/register
Registriert einen externen Modellanbieter für die Verwendung mit Foundry Local.
Anforderungstext:
TypeName
(Zeichenfolge)
Anbietername (z. B."deepseek"
)ModelName
(Zeichenfolge)
Modellname für die Registrierung (z. B."deepseek-chat"
)BaseUri
(Zeichenfolge)
Der OpenAI-kompatible Basis-URI für den Anbieter
Antwort:
- 200 OK (Anforderung erfolgreich)
Leerer Antwortkörper
Beispiel:
- Anforderungstext
{ "TypeName": "deepseek", "ModelName": "deepseek-chat", "BaseUri": "https://api.deepseek.com/v1" }
GET /openai/models
Ruft alle verfügbaren Modelle ab, einschließlich lokaler Modelle und registrierter externer Modelle.
Antwort:
- 200 OK (Anforderung erfolgreich)
Ein Zeichenfolgenarray von Modellnamen.
Beispiel:
- Antworttext
["Phi-4-mini-instruct-generic-cpu", "phi-3.5-mini-instruct-generic-cpu"]
GET /openai/load/{name}
Lädt 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 auftrue
festgelegt.ttl
(ganze Zahl, optional)
Gültigkeitsdauer in Sekunden. Wenn größer als 0, überschreibt den Parameterunload
.ep
(Zeichenfolge, optional)
Ausführungsanbieter für dieses Modell. Unterstützt:"dml"
,"cuda"
,"qnn"
,"cpu"
,"webgpu"
.
Wenn nicht angegeben, werden die Einstellungen vongenai_config.json
verwendet.
Antwort:
- 200 OK (Anforderung erfolgreich)
Leerer Antwortkörper
Beispiel:
- Anforderungs-URI
GET /openai/load/Phi-4-mini-instruct-generic-cpu?ttl=3600&ep=dml
GET /openai/unload/{name}
Entlädt ein Modell aus dem Speicher.
URI-Parameter:
name
(Zeichenfolge)
Der Name des zu entfernenden Modells.
Abfrageparameter:
force
(boolescher Wert, optional)
Wenn dieser Werttrue
ist, werden TTL-Einstellungen ignoriert und die Entfernung sofort durchgeführt.
Antwort:
- 200 OK (Anforderung erfolgreich)
Leerer Antwortkörper
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 (Anforderung erfolgreich)
Leerer Antwortkörper
GET /openai/loadedmodels
Ruft eine Liste der derzeit geladenen Modelle ab.
Antwort:
- 200 OK (Anforderung erfolgreich)
Ein Zeichenfolgenarray von Modellnamen.
Beispiel:
- Antworttext
["Phi-4-mini-instruct-generic-cpu", "phi-3.5-mini-instruct-generic-cpu"]
GET /openai/getgpudevice
Ruft die aktuell ausgewählte GPU-Geräte-ID ab.
Antwort:
- 200 OK (Anforderung erfolgreich)
Eine ganze Zahl, die die aktuelle GPU-Geräte-ID darstellt.
GET /openai/setgpudevice/{deviceId}
Legt das aktive GPU-Gerät fest.
URI-Parameter:
deviceId
(ganze Zahl)
Die zu verwendende GPU-Geräte-ID.
Antwort:
- 200 OK (Anforderung erfolgreich)
Leerer Antwortkörper
Beispiel:
- Anforderungs-URI
GET /openai/setgpudevice/1
POST /openai/download
Lädt ein Modell in den lokalen Speicher herunter.
Hinweis
Modelldownloads können erhebliche Zeit in Anspruch nehmen, insbesondere für große Modelle. Es wird empfohlen, einen hohen Timeout für diese Anforderung festzulegen, um vorzeitige Kündigungen zu vermeiden.
Anforderungstext:
model
(WorkspaceInferenceModel
Objekt)Uri
(Zeichenfolge)
Der Modell-URI, der heruntergeladen werden soll.Name
(Zeichenfolge) Der Modellname.ProviderType
(Zeichenfolge, optional)
Der Anbietertyp (z. B."AzureFoundryLocal"
,"HuggingFace"
).Path
(Zeichenfolge, optional)
Der Remotepfad, in dem das Modell gespeichert ist. In einem Repository "Hugging Face" wäre dies beispielsweise 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 Werttrue
ist, wird die Statusberichterstattung über HTTP-Datenstrom anstelle von Pipe erzwungen. Für AITK standardmäßigfalse
und für Foundry Localtrue
.
Streamingantwort:
Während des Downloads streamt der Server Statusaktualisierungen im Format:
("file name", percentage_complete)
Endgültiger Antworttext:
Success
(boolesch)
Ob der Download erfolgreich abgeschlossen wurde.ErrorMessage
(Zeichenfolge, optional)
Fehlerdetails, wenn der Download fehlgeschlagen ist.
Beispiel:
- Anfragekörper
{
"model":{
"Uri": "azureml://registries/azureml/models/Phi-4-mini-instruct-generic-cpu/versions/4",
"ProviderType": "AzureFoundryLocal",
"Name": "Phi-4-mini-instruct-generic-cpu",
"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/status
Ruft Serverstatusinformationen ab.
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:
- Antworttext
{ "Endpoints": ["http://localhost:5272"], "ModelDirPath": "/path/to/models", "PipeName": "inference_agent" }
POST /v1/chat/completions/tokenizer/encode/count
Zählt Token für eine bestimmte Chat-Abschlussanforderung ohne Ableitung.
Anforderungstext:
- Content-Type: application/json
- JSON-Objekt im
ChatCompletionCreateRequest
Format mit:model
(Zeichenfolge)
Modell, das für die Tokenisierung verwendet werden soll.messages
(Array)
Array von Nachrichtenobjekten mitrole
undcontent
.
Antworttext:
- Content-Type: 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" }
- Antworttext
{ "tokenCount": 23 }