Dela via


Lokal REST API-referens för Foundry

Viktigt!

  • Foundry Local är tillgängligt i förhandsversionen. Offentliga förhandsversioner ger tidig åtkomst till funktioner som är i aktiv distribution.
  • Funktioner, metoder och processer kan ändra eller ha begränsade funktioner, före allmän tillgänglighet (GA).

Försiktighet

Det här API:et refererar till rest-API:et som är tillgängligt i Foundry Local CLI. Det här API:et är under aktiv utveckling och kan innehålla icke-bakåtkompatibla ändringar utan föregående meddelande. Vi rekommenderar starkt att du övervakar ändringsloggen innan du skapar produktionsprogram.

POST /v1/chat/completions

Den här slutpunkten bearbetar begäranden om chattens slutförande.
Det är fullt kompatibelt med OpenAI Chat Completions API.

begärandetext:

---Standard OpenAI-egenskaper---

  • model (sträng)
    Den specifika modell som ska användas för slutförande.
  • messages (matris)
    Konversationshistoriken som en lista över meddelanden.
    • Varje meddelande kräver:
      • role (sträng)
        Meddelandesändarrollen. Måste vara system, usereller assistant.
      • content (sträng)
        Den faktiska meddelandetexten.
  • temperature (tal, valfritt)
    Styr slumpmässighet, från 0 till 2. Högre värden (0,8) skapar olika utdata, medan lägre värden (0,2) skapar fokuserade och konsekventa utdata.
  • top_p (tal, valfritt)
    Styr tokenvalsdiversitet från 0 till 1. Ett värde på 0,1 innebär att endast de token med de 10 högsta%-sannolikheterna beaktas.
  • n (heltal, valfritt)
    Antal alternativa slutföranden som ska genereras för varje indatameddelande.
  • stream (booleskt, valfritt)
    När det är sant skickar du partiella meddelandesvar som serversända händelser och slutar med ett data: [DONE] meddelande.
  • stop (sträng eller matris, valfritt)
    Upp till 4 sekvenser som gör att modellen slutar generera ytterligare token.
  • max_tokens (heltal, valfritt)
    Maximalt antal token som ska genereras. Använd i stället för nyare modeller max_completion_tokens .
  • max_completion_tokens (heltal, valfritt)
    Maximalt antal token som modellen kan generera, inklusive synliga utdata och resonemangstoken.
  • presence_penalty (tal, valfritt)
    Värde mellan -2.0 och 2.0. Positiva värden uppmuntrar modellen att diskutera nya ämnen genom att nedsätta tecken som redan har dykt upp.
  • frequency_penalty (tal, valfritt)
    Värde mellan -2.0 och 2.0. Positiva värden motverkar upprepning genom att bestraffa tokens baserat på deras frekvens i texten.
  • logit_bias (karta, valfritt)
    Justerar sannolikheten för specifika tecken som visas i resultatet.
  • user (sträng, valfritt)
    En unik identifierare för slutanvändaren som hjälper till med övervakning och förebyggande av missbruk.
  • functions (matris, valfritt)
    Tillgängliga funktioner som modellen kan generera JSON-indata för.
    • Varje funktion måste innehålla:
      • name (sträng)
        Funktionsnamn.
      • description (sträng)
        Funktionsbeskrivning.
      • parameters (objekt)
        Funktionsparametrar som beskrivs som ett JSON-schemaobjekt.
  • function_call (sträng eller objekt, valfritt)
    Styr hur modellen svarar på funktionsanrop.
    • Om det är ett objekt kan följande inkluderas:
      • name (sträng, valfritt)
        Namnet på funktionen som ska anropas.
      • arguments (objekt, valfritt)
        Argumenten som ska skickas till funktionen.
  • metadata (objekt, valfritt)
    En ordlista med nyckel/värde-par för metadata.
  • top_k (tal, valfritt)
    Antalet vokabulärstoken med högsta sannolikhet som ska behållas för top-k-filtrering.
  • random_seed (heltal, valfritt)
    Frö för reproducerbar slumptalsgenerering.
  • ep (sträng, valfritt)
    Skriv över leverantören för ONNX-modeller. Stödjer: "dml", "cuda", "qnn", "cpu", "webgpu".
  • ttl (heltal, valfritt)
    Livslängd för modellen i minnet, angiven i sekunder.
  • tools (objekt, valfritt)
    Verktyg har beräknats för begäran.

Svarstext:

  • id (sträng)
    Unik identifierare för chattens slutförande.
  • object (sträng)
    Objekttypen, alltid "chat.completion".
  • created (heltal)
    Tidsstämpel för skapande i epoksekunder.
  • model (sträng)
    Den modell som används för slutförande.
  • choices (matris)
    Lista över slutförandealternativ som var och en innehåller:
    • index (heltal)
      Det här alternativets index.
    • message (objekt)
      Det genererade meddelandet med:
      • role (sträng)
        Alltid "assistant" för svar.
      • content (sträng)
        Den faktiska genererade texten.
    • finish_reason (sträng)
      Varför genereringen stoppades (t.ex. "stop", "length", "function_call").
  • usage (objekt)
    Tokenanvändningsstatistik:
    • prompt_tokens (heltal)
      Token i prompten.
    • completion_tokens (heltal)
      Token i genereringen.
    • total_tokens (heltal)
      Totalt antal token som används.

Example:

begäranens innehåll

  {
    "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": {}
  }

Svarsdel

  {
    "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

Hämta information om serverstatus.

Svarstext:

  • Endpoints (matris med strängar)
    HTTP-serverbindningsslutpunkterna.
  • ModelDirPath (sträng)
    Katalog där lokala modeller lagras.
  • PipeName (sträng)
    Det aktuella namnet på NamedPipe-servern.

Example:

Svarsdel

  {
    "Endpoints": ["http://localhost:5272"],
    "ModelDirPath": "/path/to/models",
    "PipeName": "inference_agent"
  }

GET /foundry/list

Hämta en lista över tillgängliga lokala Foundry-modeller i katalogen.

Svar:

  • models (matris)
    Matris med modellobjekt. Varje modell innehåller:
    • name: Den unika identifieraren för modellen.
    • displayName: Ett läsbart namn för modellen, ofta samma som namnet.
    • providerType: Den typ av leverantör som är värd för modellen (till exempel AzureFoundry).
    • uri: Resurs-URI:n som pekar på modellens plats i registret.
    • version: Modellens versionsnummer.
    • modelType: Modellens format eller typ (till exempel ONNX).
    • promptTemplate:
      • assistant: Mallen för assistentens svar.
      • prompt: Mallen för interaktionen mellan användarassistenten och användaren.
    • publisher: Entiteten eller organisationen som publicerade modellen.
    • task: Den primära uppgift som modellen är utformad för att utföra (till exempel slutförande av chatt).
    • runtime:
      • deviceType: Den typ av maskinvara som modellen är utformad för att köras på (till exempel CPU).
      • executionProvider: Körningsprovidern som används för att köra modellen.
    • fileSizeMb: Storleken på modellfilen i megabyte.
    • modelSettings:
      • parameters: En lista över konfigurerbara parametrar för modellen.
    • alias: Ett alternativt namn eller en förkortning för modellen
    • supportsToolCalling: Indikerar om modellen stödjer funktionalitet för att anropa verktyg.
    • license: Licenstypen som modellen distribueras under.
    • licenseDescription: En detaljerad beskrivning eller länk till licensvillkoren.
    • parentModelUri: URI:n för den överordnade modellen som modellen härleds från.

GET /openai/models

Hämta en lista över cachelagrade modeller, inklusive lokala och registrerade externa modeller.

Svar:

  • 200 Okej
    En matris med modellnamn som strängar.

Example:

Svarsdel

  ["Phi-4-mini-instruct-generic-cpu", "phi-3.5-mini-instruct-generic-cpu"]

POST /openai/download

Ladda ned en modell från katalogen till lokal lagring.

Anmärkning

Det kan ta lång tid att ladda ned stora modeller. Ange en hög tidsgräns för den här begäran för att undvika tidig uppsägning.

begärandetext:

  • model (WorkspaceInferenceModel objekt)
    • Uri (sträng)
      Modell-URI:n som ska laddas ned.
    • Name (sträng) Modellnamnet.
    • ProviderType (sträng, valfritt)
      Providertypen (till exempel "AzureFoundryLocal", "HuggingFace").
    • Path (sträng, valfritt)
      Fjärrsökväg till modellfilerna. I en lagringsplats för kramande ansikten är det till exempel sökvägen till modellfilerna.
    • PromptTemplate (Dictionary<string, string>valfritt)
      Innehåller:
      • system (sträng, valfritt)
        Mallen för systemmeddelandet.
      • user (sträng, valfritt) Mallen för användarens meddelande.
      • assistant (sträng, valfritt)
        Mallen för assistentens svar.
      • prompt (sträng, valfritt)
        Mallen för interaktionen mellan användarassistenten och användaren.
    • Publisher (sträng, valfritt)
      Modellens utgivare.
  • token (sträng, valfritt)
    Autentiseringstoken för skyddade modeller (GitHub eller Hugging Face).
  • progressToken (objekt, valfritt)
    Endast för AITK. Token för att spåra nedladdningsstatus.
  • customDirPath (sträng, valfritt)
    Anpassad nedladdningskatalog (används för CLI, behövs inte för AITK).
  • bufferSize (heltal, valfritt)
    HTTP-nedladdningsbuffertstorlek i KB. Ingen effekt på NIM- eller Azure Foundry-modeller.
  • ignorePipeReport (booleskt, valfritt)
    Om truetvingar fram förloppsrapportering via HTTP-ström i stället för pipe. Standardvärdet är false för AITK och true för Foundry Local.

Direktuppspelningssvar:

Under nedladdningen strömmar servern förloppsuppdateringar i formatet:

("file name", percentage_complete)

Slutsvarstext:

  • Success (boolesk)
    Om nedladdningen har slutförts.
  • ErrorMessage (sträng, valfritt)
    Felinformation om nedladdningen misslyckades.

Example:

Begäran om URI

POST /openai/download

begäranens innehåll

Observera att versionssuffixet måste anges i modellnamnet.

{
  "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|>"
    }
  }
}

Svarsström

  ("genai_config.json", 0.01)
  ("genai_config.json", 0.2)
  ("model.onnx.data", 0.5)
  ("model.onnx.data", 0.78)
  ...
  ("", 1)

Slutligt svar

  {
    "Success": true,
    "ErrorMessage": null
  }

GET /openai/load/{name}

Läs in en modell i minnet för snabbare slutsatsdragning.

URI-parametrar:

  • name (sträng)
    Modellnamnet som ska läsas in.

Frågeparametrar:

  • unload (booleskt, valfritt)
    Huruvida modellen automatiskt ska avlastas efter inaktiv tid. Standardinställningen är true.
  • ttl (heltal, valfritt)
    Livslängd i sekunder. Om det är större än 0 åsidosätter det här värdet parametern unload .
  • ep (sträng, valfritt)
    Utförandetjänst för att köra den här modellen. Stödjer: "dml", "cuda", "qnn", "cpu", "webgpu".
    Om det inte anges använder du inställningar från genai_config.json.

Svar:

  • 200 Okej
    Tom svarskropp

Example:

Begäran om URI

  GET /openai/load/Phi-4-mini-instruct-generic-cpu?ttl=3600&ep=dml

GET /openai/unload/{name}

Ta bort en modell från minnet.

URI-parametrar:

  • name (sträng) Modellnamnet som ska tas bort.

Frågeparametrar:

  • force (booleskt, valfritt) Om trueignorerar du TTL-inställningar och tas bort omedelbart.

Svar:

  • 200 OK Tom svarstext

Example:

Begäran om URI

GET /openai/unload/Phi-4-mini-instruct-generic-cpu?force=true

GET /openai/unloadall

Laddar ur alla modeller från minnet.

Svar:

  • 200 Okej
    Tom svarskropp

GET /openai/loadedmodels

Hämta listan över för närvarande laddade modeller.

Svar:

  • 200 Okej
    En matris med modellnamn som strängar.

Example:

Svarsdel

["Phi-4-mini-instruct-generic-cpu", "phi-3.5-mini-instruct-generic-cpu"]

GET /openai/getgpudevice

Hämta det aktuella GPU-enhets-ID:t.

Svar:

  • 200 Okej
    Ett heltal som representerar det aktuella GPU-enhets-ID:t.

GET /openai/setgpudevice/{deviceId}

Ange den aktiva GPU-enheten.

URI-parametrar:

  • deviceId (heltal)
    GPU-enhets-ID som ska användas.

Svar:

  • 200 Okej
    Tom svarskropp

Example:

  • Begäran-URI
    GET /openai/setgpudevice/1
    

There are no changes needed. The original translation can stay as: POST /v1/chat/completions/tokenizer/encode/count

Räknar token för en viss begäran om chattavslut utan att utföra slutsatsdragning.

begärandetext:

  • Innehållstyp: application/json
  • JSON-objekt i ChatCompletionCreateRequest format med:
    • model (sträng)
      Modell som ska användas för tokenisering.
    • messages (matris)
      Matris med meddelandeobjekt med role och content.

Svarstext:

  • Innehållstyp: application/json
  • JSON-objekt med tokenantal:
    • tokenCount (heltal)
      Antal token i begäran.

Example:

begäranens innehåll

  {
    "messages": [
      {
        "role": "system",
        "content": "This is a system message"
      },
      {
        "role": "user",
        "content": "Hello, what is Microsoft?"
      }
    ],
    "model": "Phi-4-mini-instruct-cuda-gpu"
  }

Svarsdel

  {
    "tokenCount": 23
  }