{
  "aboutHtml": "<p>Översikt: en modell för flera indatamodaliteter</p><p>Qwen2.5-Omni-7B är Qwens heltäckande multimodala modell för text, bilder, ljud och video. Den kan förstå dessa indata tillsammans och generera text med naturligt tal i ett strömmat arbetsflöde. Använd den när en uppgift beror på både det synliga och det hörbara, eller när användaren ger instruktionen med rösten i stället för att skriva. Detta är exakt 7B-kontrollpunkten; kommersiella Omni-Turbo och senare Omni-utgåvor har egna kontrakt.</p><p>Viktiga funktioner och arkitektur</p><p>Thinker-Talker-utformningen kombinerar förståelse med talgenerering. Thinker bearbetar den multimodala uppgiften och producerar textinnehåll, medan Talker deltar i att forma det talade svaret. TMRoPE, tillverkarens tidsanpassade multimodala positionsschema, synkroniserar tidsstämplar från video med ljud. Arkitekturen är utformad för indata i block och responsiv röst- eller videointeraktion; detta designmål är ingen garanti för en bestämd svarstid i varje gränssnitt.</p><p>Tillverkarens uppgiftsomfattning inkluderar taligenkänning, talöversättning, ljudförståelse, bildresonemang, videoförståelse och talgenerering. Talade instruktioner kan därför ingå direkt i en multimodal fråga utan att alltid kräva en separat tillhandahållen skriven transkription. Håll måluppgiften tydlig: att förstå ett ljudklipp, besvara en talad fråga och generera ett talat svar är skilda användningar även om modellen stöder alla deras indata- eller utdataformer.</p><p>Förbereda ett multimodalt samtal</p><p>Tillhandahåll relevanta medier och ange hur svaret ska koppla ihop dem. För en demonstration med berättarröst ska modellen ombes skilja de synliga stegen från talarens förklaring och identifiera var de överensstämmer. För en bild med en ljudfråga ska bildens roll anges och ett kortfattat svar grundat i det synliga innehållet begäras. För ett rent ljudutdrag ska det anges om syftet är att känna igen tal, förklara ljud eller besvara en fråga om innehållet. Detta är utformade tillämpningar av de dokumenterade uppgifterna.</p><p>Tillverkarens exempel visar samtal med enbart text, enbart ljud, enbart video och blandade medier. Bevara en videos ursprungliga ordning och timing. Märk separata tillgångar så att modellen kan hänvisa till dem utan att behandla orelaterade belägg som en enda händelse. Resultatet kan vara enbart text eller text med tal; välj den användbara artefakten innan begäran förbereds.</p><p>Förbereda talutdata</p><p>Qwens recept för kontrollpunkten kräver dess dokumenterade systemprompt för ljudförmåga när talutdata behövs. Prompten identifierar Qwen och dess förmågor för hörsel, syn, text och tal; en orelaterad ersättning kan förhindra det förväntade ljudbeteendet. Detta är vägledning för tillverkarens kontrollpunktsflöde, inte ett påstående om att varje applikation exponerar kontroller för systemprompt eller ljudgenerering.</p><p>Den specifika kontrollpunkten erbjuder två röster: Chelsie, en varm kvinnlig röst, och Ethan, en livlig manlig röst. Chelsie är dokumenterat standardval när ingen talare väljs. Genereringsexemplet skriver tal med samplingsfrekvensen 24,000 Hz. Dessa två röster ska inte ersättas med beskrivningen av fyra röster för en separat namngiven kommersiell modell.</p><p>Använda ljud från video</p><p>En videos ljudspår kan vara relevant för dess innebörd, exempelvis talade instruktioner eller ett ljud som uppstår vid en synlig handling. Qwen exponerar use_audio_in_video vid medieförberedelse, bearbetning och generering. Inställningen måste vara konsekvent i alla tre steg och genom ett samtal över flera turer; inkonsekventa inställningar kan ge oväntade resultat. En visuell tolkning av enbart video skiljer sig därför från en audiovisuell tolkning, även när filen är densamma.</p><p>Enbart textutdata och batchning</p><p>Tillverkaren stöder enbart textutdata genom inställningen return_audio=False. Talker kan också stängas av efter laddning, vilket minskar GPU-minnet med ungefär 2 GB men gör ljudutdata otillgängliga i den instansen. Det dokumenterade batchningsexemplet med blandade prov kräver return_audio=False och kombinerar begäranden med text, bild, ljud och video. Det batchningsexemplet ska inte omvandlas till ett påstående om batchad talgenerering.</p><p>Kontext och väsentliga begränsningar</p><p>Kontrollpunktens konfiguration för textstommen anger högsta antal positioner till 32,768. Text, representerade medier och genererade svar förbrukar sekvensutrymme; värdet definierar inte självständigt en universell ljud- eller videovaraktighet. Tillverkarens resursexempel visar att längre video behöver betydligt mer minne, så ett kort relevant klipp är ofta mer praktiskt än en stor ovidkommande inspelning. Exemplen publicerar ingen separat hård maximal svarslängd eller universellt garanterad medievaraktighet.</p><p>Kontrollera talcitat och slutsatser mot källan, bevara tillräckligt med visuella detaljer för frågan och behåll ett textresultat när en granskare behöver inspektera den talade förklaringen. Modellens dokumenterade värde är gemensam förståelse och text-/talsvar, medan exakta röstkontroller, mediebearbetning och utleverans förblir egenskaper hos det valda gränssnittet.</p>",
  "aboutText": "Översikt: en modell för flera indatamodaliteter\n\nQwen2.5-Omni-7B är Qwens heltäckande multimodala modell för text, bilder, ljud och video. Den kan förstå dessa indata tillsammans och generera text med naturligt tal i ett strömmat arbetsflöde. Använd den när en uppgift beror på både det synliga och det hörbara, eller när användaren ger instruktionen med rösten i stället för att skriva. Detta är exakt 7B-kontrollpunkten; kommersiella Omni-Turbo och senare Omni-utgåvor har egna kontrakt.\n\nViktiga funktioner och arkitektur\n\nThinker-Talker-utformningen kombinerar förståelse med talgenerering. Thinker bearbetar den multimodala uppgiften och producerar textinnehåll, medan Talker deltar i att forma det talade svaret. TMRoPE, tillverkarens tidsanpassade multimodala positionsschema, synkroniserar tidsstämplar från video med ljud. Arkitekturen är utformad för indata i block och responsiv röst- eller videointeraktion; detta designmål är ingen garanti för en bestämd svarstid i varje gränssnitt.\n\nTillverkarens uppgiftsomfattning inkluderar taligenkänning, talöversättning, ljudförståelse, bildresonemang, videoförståelse och talgenerering. Talade instruktioner kan därför ingå direkt i en multimodal fråga utan att alltid kräva en separat tillhandahållen skriven transkription. Håll måluppgiften tydlig: att förstå ett ljudklipp, besvara en talad fråga och generera ett talat svar är skilda användningar även om modellen stöder alla deras indata- eller utdataformer.\n\nFörbereda ett multimodalt samtal\n\nTillhandahåll relevanta medier och ange hur svaret ska koppla ihop dem. För en demonstration med berättarröst ska modellen ombes skilja de synliga stegen från talarens förklaring och identifiera var de överensstämmer. För en bild med en ljudfråga ska bildens roll anges och ett kortfattat svar grundat i det synliga innehållet begäras. För ett rent ljudutdrag ska det anges om syftet är att känna igen tal, förklara ljud eller besvara en fråga om innehållet. Detta är utformade tillämpningar av de dokumenterade uppgifterna.\n\nTillverkarens exempel visar samtal med enbart text, enbart ljud, enbart video och blandade medier. Bevara en videos ursprungliga ordning och timing. Märk separata tillgångar så att modellen kan hänvisa till dem utan att behandla orelaterade belägg som en enda händelse. Resultatet kan vara enbart text eller text med tal; välj den användbara artefakten innan begäran förbereds.\n\nFörbereda talutdata\n\nQwens recept för kontrollpunkten kräver dess dokumenterade systemprompt för ljudförmåga när talutdata behövs. Prompten identifierar Qwen och dess förmågor för hörsel, syn, text och tal; en orelaterad ersättning kan förhindra det förväntade ljudbeteendet. Detta är vägledning för tillverkarens kontrollpunktsflöde, inte ett påstående om att varje applikation exponerar kontroller för systemprompt eller ljudgenerering.\n\nDen specifika kontrollpunkten erbjuder två röster: Chelsie, en varm kvinnlig röst, och Ethan, en livlig manlig röst. Chelsie är dokumenterat standardval när ingen talare väljs. Genereringsexemplet skriver tal med samplingsfrekvensen 24,000 Hz. Dessa två röster ska inte ersättas med beskrivningen av fyra röster för en separat namngiven kommersiell modell.\n\nAnvända ljud från video\n\nEn videos ljudspår kan vara relevant för dess innebörd, exempelvis talade instruktioner eller ett ljud som uppstår vid en synlig handling. Qwen exponerar use_audio_in_video vid medieförberedelse, bearbetning och generering. Inställningen måste vara konsekvent i alla tre steg och genom ett samtal över flera turer; inkonsekventa inställningar kan ge oväntade resultat. En visuell tolkning av enbart video skiljer sig därför från en audiovisuell tolkning, även när filen är densamma.\n\nEnbart textutdata och batchning\n\nTillverkaren stöder enbart textutdata genom inställningen return_audio=False. Talker kan också stängas av efter laddning, vilket minskar GPU-minnet med ungefär 2 GB men gör ljudutdata otillgängliga i den instansen. Det dokumenterade batchningsexemplet med blandade prov kräver return_audio=False och kombinerar begäranden med text, bild, ljud och video. Det batchningsexemplet ska inte omvandlas till ett påstående om batchad talgenerering.\n\nKontext och väsentliga begränsningar\n\nKontrollpunktens konfiguration för textstommen anger högsta antal positioner till 32,768. Text, representerade medier och genererade svar förbrukar sekvensutrymme; värdet definierar inte självständigt en universell ljud- eller videovaraktighet. Tillverkarens resursexempel visar att längre video behöver betydligt mer minne, så ett kort relevant klipp är ofta mer praktiskt än en stor ovidkommande inspelning. Exemplen publicerar ingen separat hård maximal svarslängd eller universellt garanterad medievaraktighet.\n\nKontrollera talcitat och slutsatser mot källan, bevara tillräckligt med visuella detaljer för frågan och behåll ett textresultat när en granskare behöver inspektera den talade förklaringen. Modellens dokumenterade värde är gemensam förståelse och text-/talsvar, medan exakta röstkontroller, mediebearbetning och utleverans förblir egenskaper hos det valda gränssnittet.",
  "editorialOverlay": {
    "copy_fields": {
      "practical_html": "<h3>Praktisk uppgift</h3><p>Tekniskt exempel på engelska</p><pre><code>Compare demonstration notes with narration\n\nCompare two text records of demonstration M2. Visual notes: &#x27;Operator closes the lid, then presses Start.&#x27; Narration transcript: &#x27;Press Start before closing the lid.&#x27; Identify the sequence disagreement and write one clarification question for the instructor. Use only these supplied records; do not claim to have watched or heard a clip.</code></pre><h4>Förväntat resultat</h4><pre><code>A source-linked sequence comparison and one targeted clarification question.</code></pre><h4>Kontrollera resultatet</h4><pre><code>The answer must preserve the opposing event order and avoid inventing a resolution.</code></pre>"
    },
    "copy_sha256": "a68e5dbd57bd58414ce4ab046b3f4ad0c3a82ef1e47b8ec631afd99da9b79fb3",
    "copy_source": {
      "locale": "sv",
      "pack_sha256": "0f56d90ba41881e1134accf82e57338f246f8753ca4c0cee929aaffada5d10e7",
      "record_model_id": "qwen2.5-omni-7b",
      "source_facts_sha256": "31c5e40a2ab11d6ba5fe084a5be19b1d931423afbee09549e5f69f8c1eb35acb",
      "validation_sha256": "a2ac2f28056280fc0b2ea34a501bf156d5ce155406e57e708edf30bfdf6bfdc6"
    },
    "html_sha256": "db8a6bea2253e7bd5847e0e8c94809528be66652c413569f5cafa64129c453d6",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "sv",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">Al</span><h2 id=\"sheet-title\">qwen2.5-omni-7b</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Stäng\">×</button></div><div class=\"idline\"><span>Alibaba /</span><code>qwen2.5-omni-7b</code><button type=\"button\" id=\"copy-id\">Kopiera ID</button></div><nav class=\"card-jump-nav\" aria-label=\"Modellkortets avsnitt\"><button type=\"button\" data-card-jump=\"overview\">Start</button><button type=\"button\" data-card-jump=\"methods\">Indata &amp; metoder</button><button type=\"button\" data-card-jump=\"pricing\">Priser</button><button type=\"button\" data-card-jump=\"examples\">Exempel</button><button type=\"button\" data-card-jump=\"results\">Resultat</button><button type=\"button\" data-card-jump=\"aliases\">Alias</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"API-metoder\"><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-0\" data-card-method=\"Ultra|chat|/v1/chat/completions|qwen2.5-omni-7b\">Chat</button><button type=\"button\" role=\"tab\" tabindex=\"-1\" aria-controls=\"card-method-content\" aria-selected=\"false\" id=\"card-method-tab-1\" data-card-method=\"Ultra|messages|/v1/messages|qwen2.5-omni-7b\">Messages</button></div><div id=\"card-method-content\" role=\"tabpanel\" aria-labelledby=\"card-method-tab-0\"><section class=\"card-section\" data-card-section=\"overview\"><h3 tabindex=\"-1\">Start</h3><p class=\"mdesc-full\">Qwen2.5-Omni-7B kombinerar förståelse av text, bilder, ljud och video med textutdata och naturligt tal. Dess Thinker-Talker-arkitektur tidsanpassar ljud till video, stöder strömmad interaktion och erbjuder två dokumenterade röster i exakt denna öppna kontrollpunkt.</p><dl class=\"card-io\" data-card-io><div><dt>Godkända indata</dt><dd>Text</dd></div><div><dt>Resultat</dt><dd>Text</dd></div></dl><details class=\"card-about\"><summary>Om modellen</summary><p class=\"note-s\" data-model-method-boundary>Den här beskrivningen omfattar modellens förmågor. Tillgängliga indata, utdata och alternativ i Ailoot anges nedan för den valda metoden.</p><div class=\"mabout\" id=\"m-about\"><p>Översikt: en modell för flera indatamodaliteter</p><p>Qwen2.5-Omni-7B är Qwens heltäckande multimodala modell för text, bilder, ljud och video. Den kan förstå dessa indata tillsammans och generera text med naturligt tal i ett strömmat arbetsflöde. Använd den när en uppgift beror på både det synliga och det hörbara, eller när användaren ger instruktionen med rösten i stället för att skriva. Detta är exakt 7B-kontrollpunkten; kommersiella Omni-Turbo och senare Omni-utgåvor har egna kontrakt.</p><p>Viktiga funktioner och arkitektur</p><p>Thinker-Talker-utformningen kombinerar förståelse med talgenerering. Thinker bearbetar den multimodala uppgiften och producerar textinnehåll, medan Talker deltar i att forma det talade svaret. TMRoPE, tillverkarens tidsanpassade multimodala positionsschema, synkroniserar tidsstämplar från video med ljud. Arkitekturen är utformad för indata i block och responsiv röst- eller videointeraktion; detta designmål är ingen garanti för en bestämd svarstid i varje gränssnitt.</p><p>Tillverkarens uppgiftsomfattning inkluderar taligenkänning, talöversättning, ljudförståelse, bildresonemang, videoförståelse och talgenerering. Talade instruktioner kan därför ingå direkt i en multimodal fråga utan att alltid kräva en separat tillhandahållen skriven transkription. Håll måluppgiften tydlig: att förstå ett ljudklipp, besvara en talad fråga och generera ett talat svar är skilda användningar även om modellen stöder alla deras indata- eller utdataformer.</p><p>Förbereda ett multimodalt samtal</p><p>Tillhandahåll relevanta medier och ange hur svaret ska koppla ihop dem. För en demonstration med berättarröst ska modellen ombes skilja de synliga stegen från talarens förklaring och identifiera var de överensstämmer. För en bild med en ljudfråga ska bildens roll anges och ett kortfattat svar grundat i det synliga innehållet begäras. För ett rent ljudutdrag ska det anges om syftet är att känna igen tal, förklara ljud eller besvara en fråga om innehållet. Detta är utformade tillämpningar av de dokumenterade uppgifterna.</p><p>Tillverkarens exempel visar samtal med enbart text, enbart ljud, enbart video och blandade medier. Bevara en videos ursprungliga ordning och timing. Märk separata tillgångar så att modellen kan hänvisa till dem utan att behandla orelaterade belägg som en enda händelse. Resultatet kan vara enbart text eller text med tal; välj den användbara artefakten innan begäran förbereds.</p><p>Förbereda talutdata</p><p>Qwens recept för kontrollpunkten kräver dess dokumenterade systemprompt för ljudförmåga när talutdata behövs. Prompten identifierar Qwen och dess förmågor för hörsel, syn, text och tal; en orelaterad ersättning kan förhindra det förväntade ljudbeteendet. Detta är vägledning för tillverkarens kontrollpunktsflöde, inte ett påstående om att varje applikation exponerar kontroller för systemprompt eller ljudgenerering.</p><p>Den specifika kontrollpunkten erbjuder två röster: Chelsie, en varm kvinnlig röst, och Ethan, en livlig manlig röst. Chelsie är dokumenterat standardval när ingen talare väljs. Genereringsexemplet skriver tal med samplingsfrekvensen 24,000 Hz. Dessa två röster ska inte ersättas med beskrivningen av fyra röster för en separat namngiven kommersiell modell.</p><p>Använda ljud från video</p><p>En videos ljudspår kan vara relevant för dess innebörd, exempelvis talade instruktioner eller ett ljud som uppstår vid en synlig handling. Qwen exponerar use_audio_in_video vid medieförberedelse, bearbetning och generering. Inställningen måste vara konsekvent i alla tre steg och genom ett samtal över flera turer; inkonsekventa inställningar kan ge oväntade resultat. En visuell tolkning av enbart video skiljer sig därför från en audiovisuell tolkning, även när filen är densamma.</p><p>Enbart textutdata och batchning</p><p>Tillverkaren stöder enbart textutdata genom inställningen return_audio=False. Talker kan också stängas av efter laddning, vilket minskar GPU-minnet med ungefär 2 GB men gör ljudutdata otillgängliga i den instansen. Det dokumenterade batchningsexemplet med blandade prov kräver return_audio=False och kombinerar begäranden med text, bild, ljud och video. Det batchningsexemplet ska inte omvandlas till ett påstående om batchad talgenerering.</p><p>Kontext och väsentliga begränsningar</p><p>Kontrollpunktens konfiguration för textstommen anger högsta antal positioner till 32,768. Text, representerade medier och genererade svar förbrukar sekvensutrymme; värdet definierar inte självständigt en universell ljud- eller videovaraktighet. Tillverkarens resursexempel visar att längre video behöver betydligt mer minne, så ett kort relevant klipp är ofta mer praktiskt än en stor ovidkommande inspelning. Exemplen publicerar ingen separat hård maximal svarslängd eller universellt garanterad medievaraktighet.</p><p>Kontrollera talcitat och slutsatser mot källan, bevara tillräckligt med visuella detaljer för frågan och behåll ett textresultat när en granskare behöver inspektera den talade förklaringen. Modellens dokumenterade värde är gemensam förståelse och text-/talsvar, medan exakta röstkontroller, mediebearbetning och utleverans förblir egenskaper hos det valda gränssnittet.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Tillgängligt i Ailoot · indata &amp; metoder</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · OpenAI Chat</b> <code>POST /v1/chat/completions</code></summary><dl class=\"method-capabilities\"><div><dt>Indatatyper</dt><dd><code>text</code></dd></div><div><dt>Utdatatyper</dt><dd><code>text</code></dd></div><div><dt>Utdataformat</dt><dd>json eller SSE</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Fält</th><th>Typ</th><th>Krav</th><th>Värden &amp; gränser</th><th>Standard</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Obligatoriskt</td><td data-cell-label=\"Värden &amp; gränser\"><span class=\"card-cell-label\">Värden &amp; gränser</span><div>qwen2.5-omni-7b</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">messages</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>message[]</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Obligatoriskt</td><td data-cell-label=\"Värden &amp; gränser\"><span class=\"card-cell-label\">Värden &amp; gränser</span><div>Minsta antal objekt: 1</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">messages[].role</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Obligatoriskt</td><td data-cell-label=\"Värden &amp; gränser\"><span class=\"card-cell-label\">Värden &amp; gränser</span><div>Exempel: system, user, assistant, tool, function</div><div>Villkor: Dessa roller representeras uttryckligen av källkodens kompatibilitetstyper; den exakta rolluppsättningen är fortfarande modellspecifik.</div><div class=\"note-s\">Beror på modellen</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">messages[].content</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string|content_part[]|null</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Valfritt</td><td data-cell-label=\"Värden &amp; gränser\"><span class=\"card-cell-label\">Värden &amp; gränser</span></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">messages[].tool_calls</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>tool_call[]</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Valfritt</td><td data-cell-label=\"Värden &amp; gränser\"><span class=\"card-cell-label\">Värden &amp; gränser</span></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">messages[].tool_call_id</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Valfritt</td><td data-cell-label=\"Värden &amp; gränser\"><span class=\"card-cell-label\">Värden &amp; gränser</span><div>Gäller när: role=tool; använd det faktiska returnerade ID:t</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">messages[].name</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Valfritt</td><td data-cell-label=\"Värden &amp; gränser\"><span class=\"card-cell-label\">Värden &amp; gränser</span></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">messages[].reasoning_content</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Valfritt</td><td data-cell-label=\"Värden &amp; gränser\"><span class=\"card-cell-label\">Värden &amp; gränser</span><div>Gäller när: Skicka tillbaka det faktiska returnerade resonemanget när modellen använder det</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">messages[].reasoning_details</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>object|array</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Valfritt</td><td data-cell-label=\"Värden &amp; gränser\"><span class=\"card-cell-label\">Värden &amp; gränser</span><div class=\"note-s\">Beror på modellen</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">max_tokens</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>integer</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Valfritt</td><td data-cell-label=\"Värden &amp; gränser\"><span class=\"card-cell-label\">Värden &amp; gränser</span><div>Minimum: 1</div><div class=\"note-s\">Beror på modellen</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">max_completion_tokens</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>integer</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Valfritt</td><td data-cell-label=\"Värden &amp; gränser\"><span class=\"card-cell-label\">Värden &amp; gränser</span><div>Minimum: 1</div><div class=\"note-s\">Beror på modellen</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">stream</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>boolean</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Valfritt</td><td data-cell-label=\"Värden &amp; gränser\"><span class=\"card-cell-label\">Värden &amp; gränser</span></td><td data-cell-label=\"Standard\" data-default=\"known\"><span class=\"card-cell-label\">Standard</span>false</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">stream_options.include_usage</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>boolean</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Valfritt</td><td data-cell-label=\"Värden &amp; gränser\"><span class=\"card-cell-label\">Värden &amp; gränser</span><div class=\"note-s\">Beror på modellen</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">temperature</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>number</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Valfritt</td><td data-cell-label=\"Värden &amp; gränser\"><span class=\"card-cell-label\">Värden &amp; gränser</span><div class=\"note-s\">Beror på modellen</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">top_p</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>number</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Valfritt</td><td data-cell-label=\"Värden &amp; gränser\"><span class=\"card-cell-label\">Värden &amp; gränser</span><div class=\"note-s\">Beror på modellen</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">stop</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string|string[]</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Valfritt</td><td data-cell-label=\"Värden &amp; gränser\"><span class=\"card-cell-label\">Värden &amp; gränser</span><div class=\"note-s\">Beror på modellen</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">tools</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>function_tool[]</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Valfritt</td><td data-cell-label=\"Värden &amp; gränser\"><span class=\"card-cell-label\">Värden &amp; gränser</span><div class=\"note-s\">Beror på modellen</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">tools[].type</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Valfritt</td><td data-cell-label=\"Värden &amp; gränser\"><span class=\"card-cell-label\">Värden &amp; gränser</span><div>function</div><div class=\"note-s\">Beror på modellen</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">tools[].function.name</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Obligatoriskt</td><td data-cell-label=\"Värden &amp; gränser\"><span class=\"card-cell-label\">Värden &amp; gränser</span><div>Gäller när: verktyg av typen funktion har tillhandahållits</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">tools[].function.description</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Valfritt</td><td data-cell-label=\"Värden &amp; gränser\"><span class=\"card-cell-label\">Värden &amp; gränser</span></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">tools[].function.parameters</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>JSON_schema</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Valfritt</td><td data-cell-label=\"Värden &amp; gränser\"><span class=\"card-cell-label\">Värden &amp; gränser</span></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">tool_choice</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string|object</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Valfritt</td><td data-cell-label=\"Värden &amp; gränser\"><span class=\"card-cell-label\">Värden &amp; gränser</span><div class=\"note-s\">Beror på modellen</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">parallel_tool_calls</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>boolean</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Valfritt</td><td data-cell-label=\"Värden &amp; gränser\"><span class=\"card-cell-label\">Värden &amp; gränser</span><div class=\"note-s\">Beror på modellen</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">response_format</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>object</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Valfritt</td><td data-cell-label=\"Värden &amp; gränser\"><span class=\"card-cell-label\">Värden &amp; gränser</span><div class=\"note-s\">Beror på modellen</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">reasoning_effort</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Valfritt</td><td data-cell-label=\"Värden &amp; gränser\"><span class=\"card-cell-label\">Värden &amp; gränser</span><div class=\"note-s\">Beror på modellen</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">reasoning</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>object</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Valfritt</td><td data-cell-label=\"Värden &amp; gränser\"><span class=\"card-cell-label\">Värden &amp; gränser</span><div class=\"note-s\">Beror på modellen</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">service_tier</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Valfritt</td><td data-cell-label=\"Värden &amp; gränser\"><span class=\"card-cell-label\">Värden &amp; gränser</span><div class=\"note-s\">Beror på modellen</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"source_compatibility\"><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">instructions</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Valfritt</td><td data-cell-label=\"Värden &amp; gränser\"><span class=\"card-cell-label\">Värden &amp; gränser</span><div class=\"note-s\">Kompatibilitetsfält</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">functions</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>function[]</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Valfritt</td><td data-cell-label=\"Värden &amp; gränser\"><span class=\"card-cell-label\">Värden &amp; gränser</span><div class=\"note-s\">Beror på modellen</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">function_call</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string|object</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Valfritt</td><td data-cell-label=\"Värden &amp; gränser\"><span class=\"card-cell-label\">Värden &amp; gränser</span><div class=\"note-s\">Beror på modellen</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">prompt_cache_options</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>object</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Valfritt</td><td data-cell-label=\"Värden &amp; gränser\"><span class=\"card-cell-label\">Värden &amp; gränser</span><div class=\"note-s\">Beror på modellen</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">modalities</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string[]</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Valfritt</td><td data-cell-label=\"Värden &amp; gränser\"><span class=\"card-cell-label\">Värden &amp; gränser</span><div>text</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">provider</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>object</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Valfritt</td><td data-cell-label=\"Värden &amp; gränser\"><span class=\"card-cell-label\">Värden &amp; gränser</span><div>Villkor: provider.options avvisas på denna Ultra-textrutt</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">cache_control.ttl</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Valfritt</td><td data-cell-label=\"Värden &amp; gränser\"><span class=\"card-cell-label\">Värden &amp; gränser</span><div>Villkor: 1h avvisas på de faktiska platserna för promptcache</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Kombinationer av indatamaterial</summary><p class=\"note-s\"><b>Text</b> · UTF8-text</p><p class=\"note-s\"><code>messages[].content</code></p></details><details class=\"note-s\" data-method-contract><summary>Metodparametrar och livscykel</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Parameter</th><th>Avtal</th></tr></thead><tbody><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>content_type</code></th><td data-cell-label=\"Avtal\"><span class=\"card-cell-label\">Avtal</span>application/json</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>required</code></th><td data-cell-label=\"Avtal\"><span class=\"card-cell-label\">Avtal</span>model, messages</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>material_types</code></th><td data-cell-label=\"Avtal\"><span class=\"card-cell-label\">Avtal</span>text</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>messages</code></th><td data-cell-label=\"Avtal\"><span class=\"card-cell-label\">Avtal</span>meddelandearray med strukturen role/content</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>file_material</code></th><td data-cell-label=\"Avtal\"><span class=\"card-cell-label\">Avtal</span>det faktiska UTF-8-dokumentet infogat som bokstavlig text; inget fil-ID härleds</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>optional_controls</code></th><td data-cell-label=\"Avtal\"><span class=\"card-cell-label\">Avtal</span>stream, temperature, top_p, stop, max_tokens, max_completion_tokens, reasoning, response_format, tools, tool_choice</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>control_scope</code></th><td data-cell-label=\"Avtal\"><span class=\"card-cell-label\">Avtal</span>modellspecifikt; användarens funktionsverktyg skiljer sig från värdbaserade verktyg</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>output_modalities</code></th><td data-cell-label=\"Avtal\"><span class=\"card-cell-label\">Avtal</span>text</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>hosted_operations</code></th><td data-cell-label=\"Avtal\"><span class=\"card-cell-label\">Avtal</span>false</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>multimodal_input_binding</code></th><td data-cell-label=\"Avtal\"><span class=\"card-cell-label\">Avtal</span>null</td></tr></tbody></table></div><p>Livscykel: <code>synchronous_or_streamed</code></p><p class=\"note-s\">Skicka det exakta modell-ID:t tillsammans med messages.</p><p class=\"note-s\">Kontextlängden är inte en utdatagräns.</p><p class=\"note-s\">En textfil kan tillhandahålla bokstavlig text; bild-/ljud-/filobjektsindata kräver exakt bindning.</p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Priser</h3><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Tariffuppgifter lägger inte till begäransalternativ. Parametrar som stöds anges för den valda metoden.</p><dl data-price-conditions><dt>Snabbt läge</dt><dd>Ej angivet <span class=\"note-s\">När snabbt läge är valt</span></dd><dt>Flex-läge</dt><dd>Ej angivet <span class=\"note-s\">När läget flex är valt</span></dd><dt>Högsta resonemangsnivå</dt><dd>Ej angivet <span class=\"note-s\">När den högsta resonemangsnivån använder standardjusteringen (default)</span></dd></dl></div><div data-declared-tariff-pricing><h4>Ailoot-priser</h4><h4>Priser efter konfiguration</h4><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Konfiguration</th><th>Prislista</th><th>Avgift</th></tr></thead><tbody><tr><th data-cell-label=\"Konfiguration\" scope=\"row\"><span class=\"card-cell-label\">Konfiguration</span>Grundpriser för token</th><td data-cell-label=\"Prislista\"><span class=\"card-cell-label\">Prislista</span>Grundpris</td><td data-cell-label=\"Avgift\"><span class=\"card-cell-label\">Avgift</span><div><span>Indata · Indatatoken</span> <b>$0.0046</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Utdata · Utdatatoken</span> <b>$0.0138</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Indata · Cacheläsning</span> <b>$0</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Indata · Skrivning till cache</span> <b>$0</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Indata · Skrivning till cache, 1 tim</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div></td></tr></tbody></table></div></div><p class=\"note-s\">Ailoot reserverar ett uppskattat belopp före en begäran. Efter resultatet slutregleras avgiften utifrån uppmätt förbrukning. Slutreglering för strömning använder den slutliga förbrukningsposten. <a href=\"/docs/sv/billing/reserve/\">Så fungerar reservation och slutreglering →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Exempelbegäranden</h3><h4>Ailoot Ultra · OpenAI Chat</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Kodvarianter\"><button class=\"cg-tab\" id=\"model-code-2476-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2476-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl</button><button class=\"cg-tab\" id=\"model-code-2476-tab-1\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2476-panel-1\" aria-selected=\"false\" tabindex=\"-1\">Python SDK</button><button class=\"cg-tab\" id=\"model-code-2476-tab-2\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2476-panel-2\" aria-selected=\"false\" tabindex=\"-1\">Python-strömning</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Kopiera kod\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-2476-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-2476-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\np=json.loads(&#39;{&quot;model&quot;: &quot;qwen2.5-omni-7b&quot;, &quot;messages&quot;: [{&quot;role&quot;: &quot;user&quot;, &quot;content&quot;: &quot;Explain the difference between an observation and a hypothesis in three sentences.&quot;}]}&#39;)\n\nPath(&quot;request.json&quot;).write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\nr=json.loads(Path(&quot;result.json&quot;).read_text())\nfor x in r.get(&quot;choices&quot;,[]):\n    if x.get(&quot;message&quot;,{}).get(&quot;content&quot;): print(x[&quot;message&quot;][&quot;content&quot;])\nPY_RESULT\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-2476-panel-1\" role=\"tabpanel\" aria-labelledby=\"model-code-2476-tab-1\" hidden><pre data-lang=\"python\"><code>from openai import OpenAI\nimport os\n\nif not os.environ.get(&quot;AILOOT_API_KEY&quot;, &quot;&quot;).strip(): raise SystemExit(&quot;Set AILOOT_API_KEY before making a request&quot;)\nclient=OpenAI(base_url=&quot;https://api.ailoot.ai/v1&quot;,api_key=os.environ[&quot;AILOOT_API_KEY&quot;],max_retries=0)\nresult=client.chat.completions.create(model=&#39;qwen2.5-omni-7b&#39;,messages=[{&quot;role&quot;:&quot;user&quot;,&quot;content&quot;:&quot;Explain observations and hypotheses in three sentences.&quot;}])\nimport base64, json\nfrom pathlib import Path\n\ndef save_result(data, stem=&quot;result&quot;):\n    # Keep every field, including usage, IDs, reasoning and tool requests.\n    Path(stem + &quot;.json&quot;).write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding=&quot;utf-8&quot;)\n    print(json.dumps(data, ensure_ascii=False, indent=2))\n    def save_blob(encoded, suffix, label):\n        raw = base64.b64decode(encoded, altchars=b&quot;-_&quot;, validate=True)\n        ext = &quot;png&quot; if raw.startswith(b&quot;\\x89PNG\\r\\n\\x1a\\n&quot;) else &quot;jpg&quot; if raw.startswith(b&quot;\\xff\\xd8&quot;) else &quot;webp&quot; if raw[:4] == b&quot;RIFF&quot; and raw[8:12] == b&quot;WEBP&quot; else suffix\n        file = Path(stem + &quot;-&quot; + label + &quot;.&quot; + ext)\n        file.write_bytes(raw)\n        print(&quot;Saved&quot;, file)\n    for index, block in enumerate(data.get(&quot;content&quot;) or []):\n        print(&quot;Content&quot;, index, json.dumps(block, ensure_ascii=False))\n    for choice in data.get(&quot;choices&quot;) or []:\n        print(&quot;Choice&quot;, choice.get(&quot;index&quot;), json.dumps(choice.get(&quot;message&quot;, choice.get(&quot;delta&quot;, {})), ensure_ascii=False))\n    for index, item in enumerate(data.get(&quot;output&quot;) or []):\n        print(&quot;Output&quot;, index, json.dumps(item, ensure_ascii=False))\n        if item.get(&quot;type&quot;) == &quot;image_generation_call&quot; and item.get(&quot;result&quot;):\n            save_blob(item[&quot;result&quot;], item.get(&quot;output_format&quot;) or &quot;bin&quot;, &quot;output-&quot; + str(index))\n    for ci, candidate in enumerate(data.get(&quot;candidates&quot;) or []):\n        for pi, part in enumerate((candidate.get(&quot;content&quot;) or {}).get(&quot;parts&quot;) or []):\n            print(&quot;Candidate/part&quot;, ci, pi, json.dumps(part, ensure_ascii=False))\n            blob = part.get(&quot;inlineData&quot;) or part.get(&quot;inline_data&quot;)\n            if blob and blob.get(&quot;data&quot;):\n                mime = blob.get(&quot;mimeType&quot;) or blob.get(&quot;mime_type&quot;)\n                suffix = {&quot;image/png&quot;:&quot;png&quot;, &quot;image/jpeg&quot;:&quot;jpg&quot;, &quot;image/webp&quot;:&quot;webp&quot;, &quot;audio/wav&quot;:&quot;wav&quot;, &quot;audio/mpeg&quot;:&quot;mp3&quot;, &quot;video/mp4&quot;:&quot;mp4&quot;}.get(mime, &quot;bin&quot;)\n                save_blob(blob[&quot;data&quot;], suffix, &quot;candidate-&quot; + str(ci) + &quot;-part-&quot; + str(pi))\n\nsave_result(result.to_dict(mode=&quot;json&quot;))\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-2476-panel-2\" role=\"tabpanel\" aria-labelledby=\"model-code-2476-tab-2\" hidden><pre data-lang=\"python\"><code>from openai import OpenAI\nimport os\nfrom pathlib import Path\n\nif not os.environ.get(&quot;AILOOT_API_KEY&quot;, &quot;&quot;).strip(): raise SystemExit(&quot;Set AILOOT_API_KEY before making a request&quot;)\nclient=OpenAI(base_url=&quot;https://api.ailoot.ai/v1&quot;,api_key=os.environ[&quot;AILOOT_API_KEY&quot;],max_retries=0)\nimport base64, json\nfrom pathlib import Path\n\ndef save_result(data, stem=&quot;result&quot;):\n    # Keep every field, including usage, IDs, reasoning and tool requests.\n    Path(stem + &quot;.json&quot;).write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding=&quot;utf-8&quot;)\n    print(json.dumps(data, ensure_ascii=False, indent=2))\n    def save_blob(encoded, suffix, label):\n        raw = base64.b64decode(encoded, altchars=b&quot;-_&quot;, validate=True)\n        ext = &quot;png&quot; if raw.startswith(b&quot;\\x89PNG\\r\\n\\x1a\\n&quot;) else &quot;jpg&quot; if raw.startswith(b&quot;\\xff\\xd8&quot;) else &quot;webp&quot; if raw[:4] == b&quot;RIFF&quot; and raw[8:12] == b&quot;WEBP&quot; else suffix\n        file = Path(stem + &quot;-&quot; + label + &quot;.&quot; + ext)\n        file.write_bytes(raw)\n        print(&quot;Saved&quot;, file)\n    for index, block in enumerate(data.get(&quot;content&quot;) or []):\n        print(&quot;Content&quot;, index, json.dumps(block, ensure_ascii=False))\n    for choice in data.get(&quot;choices&quot;) or []:\n        print(&quot;Choice&quot;, choice.get(&quot;index&quot;), json.dumps(choice.get(&quot;message&quot;, choice.get(&quot;delta&quot;, {})), ensure_ascii=False))\n    for index, item in enumerate(data.get(&quot;output&quot;) or []):\n        print(&quot;Output&quot;, index, json.dumps(item, ensure_ascii=False))\n        if item.get(&quot;type&quot;) == &quot;image_generation_call&quot; and item.get(&quot;result&quot;):\n            save_blob(item[&quot;result&quot;], item.get(&quot;output_format&quot;) or &quot;bin&quot;, &quot;output-&quot; + str(index))\n    for ci, candidate in enumerate(data.get(&quot;candidates&quot;) or []):\n        for pi, part in enumerate((candidate.get(&quot;content&quot;) or {}).get(&quot;parts&quot;) or []):\n            print(&quot;Candidate/part&quot;, ci, pi, json.dumps(part, ensure_ascii=False))\n            blob = part.get(&quot;inlineData&quot;) or part.get(&quot;inline_data&quot;)\n            if blob and blob.get(&quot;data&quot;):\n                mime = blob.get(&quot;mimeType&quot;) or blob.get(&quot;mime_type&quot;)\n                suffix = {&quot;image/png&quot;:&quot;png&quot;, &quot;image/jpeg&quot;:&quot;jpg&quot;, &quot;image/webp&quot;:&quot;webp&quot;, &quot;audio/wav&quot;:&quot;wav&quot;, &quot;audio/mpeg&quot;:&quot;mp3&quot;, &quot;video/mp4&quot;:&quot;mp4&quot;}.get(mime, &quot;bin&quot;)\n                save_blob(blob[&quot;data&quot;], suffix, &quot;candidate-&quot; + str(ci) + &quot;-part-&quot; + str(pi))\n\nwith client.chat.completions.stream(model=&#39;qwen2.5-omni-7b&#39;,messages=[{&quot;role&quot;:&quot;user&quot;,&quot;content&quot;:&quot;Explain observations and hypotheses in three sentences.&quot;}]) as stream:\n    with Path(&quot;stream-events.jsonl&quot;).open(&quot;w&quot;,encoding=&quot;utf-8&quot;) as log:\n        for event in stream:\n            payload=event.to_dict(mode=&quot;json&quot;)\n            log.write(json.dumps(payload,ensure_ascii=False)+&quot;\\n&quot;); log.flush()\n            print(json.dumps(payload,ensure_ascii=False))\n    final=stream.get_final_completion()\n    save_result(final.to_dict(mode=&quot;json&quot;),&quot;stream-result&quot;)\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Ta emot och spara resultat</h3><h4>Ailoot Ultra · OpenAI Chat</h4><p class=\"note-s\">json eller SSE</p><div class=\"card-result-process\" data-all-results><h5>Behåll alla färdiga resultat</h5><p class=\"note-s\">Behåll varje fullständigt returnerat svar, fil och innehållsdel.</p><p class=\"note-s\">Behåll varje svarsalternativ och dess innehåll/verktygsanrop/resonemang. Sätt i SSE samman deltauppdateringar efter svarsalternativets/verktygets index och behåll den slutliga avslutsorsaken och användningsuppgifterna.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Om det ursprungliga svaret behöver kontrolleras</h5><p class=\"note-s\">Behåll begärans/svarets ID:n och huvuden. Ingen generell URL för hämtning av textjobb tillhandahålls.</p></div><details class=\"card-about\" data-output-fields><summary>Svarsfält</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Fält</th><th>Typ</th></tr></thead><tbody><tr><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">choices[].index</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>integer</td></tr><tr><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">choices[].message.content</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>string|null</td></tr><tr><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">choices[].message.tool_calls</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>tool_call[]</td></tr><tr><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">choices[].message.reasoning_content</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>string</td></tr><tr><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">choices[].message.reasoning_details</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>object|array</td></tr><tr><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">choices[].finish_reason</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>string|null</td></tr><tr><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">usage</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>object</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Fel och nästa steg</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Svar</th><th>Villkor</th><th>Nästa steg</th></tr></thead><tbody><tr><th data-cell-label=\"Svar\" scope=\"row\"><span class=\"card-cell-label\">Svar</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Villkor\"><span class=\"card-cell-label\">Villkor</span>Ogiltiga obligatoriska fält, ogiltig representation av underlaget eller ogiltigt parametervärde</td><td data-cell-label=\"Nästa steg\"><span class=\"card-cell-label\">Nästa steg</span>Korrigera de angivna fälten före en ny begäran om att skapa.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Alias</h3><h4>Modellalias</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=qwen2.5-omni-7b&amp;route=Ultra&amp;caller=qwen2.5-omni-7b&amp;fmt=chat\"><code>qwen2.5-omni-7b</code></a></span></p><h4>Alias för metodsökvägar</h4><p class=\"note-s\">Använd metodsökvägarna som visas ovan.</p><h4>Relaterade anropar-ID:n</h4><p class=\"note-s\"><a href=\"#m=qwen2.5-omni-7b&amp;route=Ultra&amp;caller=qwen2.5-omni-7b&amp;fmt=chat\"><code>qwen2.5-omni-7b</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "qwen2.5-omni-7b",
        "fmt": "chat",
        "http": "POST",
        "path": "/v1/chat/completions",
        "request_model_id": "qwen2.5-omni-7b",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|chat|/v1/chat/completions|qwen2.5-omni-7b",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "cache_read": 0,
        "cache_write": 0,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Keep every choice and its content/tool calls/reasoning. In SSE assemble deltas by choice/tool index, retain the final finish reason and usage.",
            "authentication": {
              "api_key_source": "AILOOT_API_KEY",
              "header": "Authorization: Bearer"
            },
            "errors": [
              {
                "code": null,
                "condition": "Ogiltiga obligatoriska fält, ogiltig representation av underlaget eller ogiltigt parametervärde",
                "http_status": 400,
                "recovery": "Korrigera de angivna fälten före en ny begäran om att skapa.",
                "type": "invalid_request_error"
              }
            ],
            "hints": [
              "Model context is not an output cap.",
              "A model-dependent field needs the exact published model profile; unspecified defaults/enums are not guessed.",
              "Tool calls propose actions; the client application returns actual observations with the returned call ID.",
              "Guarded canonical keys must occur once; duplicate or case-varied model/tools/cap fields are rejected."
            ],
            "ignored_fields": [],
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/chat/completions"
              },
              "job_read": null,
              "mode": "synchronous_or_streamed",
              "unknown": "Behåll begärans/svarets ID:n och huvuden. Ingen generell URL för hämtning av textjobb tillhandahålls."
            },
            "material_combinations": [
              {
                "mode": "text",
                "representation": "messages[].content",
                "required_material": "UTF8-text"
              }
            ],
            "operation_modes": [
              "conversation",
              "function_tool_continuation",
              "streaming"
            ],
            "outputs": {
              "all_results": "Behåll varje svarsalternativ och dess innehåll/verktygsanrop/resonemang. Sätt i SSE samman deltauppdateringar efter svarsalternativets/verktygets index och behåll den slutliga avslutsorsaken och användningsuppgifterna.",
              "family": "text",
              "fields": [
                {
                  "description": null,
                  "name": "choices[].index",
                  "type": "integer"
                },
                {
                  "description": null,
                  "name": "choices[].message.content",
                  "type": "string|null"
                },
                {
                  "description": null,
                  "name": "choices[].message.tool_calls",
                  "type": "tool_call[]"
                },
                {
                  "description": null,
                  "name": "choices[].message.reasoning_content",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "choices[].message.reasoning_details",
                  "type": "object|array"
                },
                {
                  "description": null,
                  "name": "choices[].finish_reason",
                  "type": "string|null"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "json eller SSE"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "qwen2.5-omni-7b"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "min_items": 1,
                "name": "messages",
                "required": true,
                "type": "message[]"
              },
              {
                "availability": "model_dependent",
                "conditions": "Dessa roller representeras uttryckligen av källkodens kompatibilitetstyper; den exakta rolluppsättningen är fortfarande modellspecifik.",
                "default": null,
                "default_known": false,
                "enum": [
                  "system",
                  "user",
                  "assistant",
                  "tool",
                  "function"
                ],
                "enum_exhaustive": false,
                "enum_known": true,
                "name": "messages[].role",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].content",
                "required": false,
                "type": "string|content_part[]|null"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].tool_calls",
                "required": false,
                "type": "tool_call[]"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].tool_call_id",
                "required": false,
                "type": "string",
                "when": "role=tool; använd det faktiska returnerade ID:t"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].name",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].reasoning_content",
                "required": false,
                "type": "string",
                "when": "Skicka tillbaka det faktiska returnerade resonemanget när modellen använder det"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].reasoning_details",
                "required": false,
                "type": "object|array"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minimum": 1,
                "name": "max_tokens",
                "required": false,
                "type": "integer"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minimum": 1,
                "name": "max_completion_tokens",
                "required": false,
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": false,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "name": "stream",
                "required": false,
                "type": "boolean"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "stream_options.include_usage",
                "required": false,
                "type": "boolean"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "temperature",
                "required": false,
                "type": "number"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "top_p",
                "required": false,
                "type": "number"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "stop",
                "required": false,
                "type": "string|string[]"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tools",
                "required": false,
                "type": "function_tool[]"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": [
                  "function"
                ],
                "enum_known": true,
                "name": "tools[].type",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tools[].function.name",
                "required": true,
                "type": "string",
                "when": "verktyg av typen funktion har tillhandahållits"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tools[].function.description",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tools[].function.parameters",
                "required": false,
                "type": "JSON_schema"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tool_choice",
                "required": false,
                "type": "string|object"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "parallel_tool_calls",
                "required": false,
                "type": "boolean"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "response_format",
                "required": false,
                "type": "object"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "reasoning_effort",
                "required": false,
                "type": "string"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "reasoning",
                "required": false,
                "type": "object"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "service_tier",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_compatibility",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "instructions",
                "required": false,
                "type": "string"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "functions",
                "required": false,
                "type": "function[]"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "function_call",
                "required": false,
                "type": "string|object"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "prompt_cache_options",
                "required": false,
                "type": "object"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "text"
                ],
                "enum_known": true,
                "name": "modalities",
                "required": false,
                "type": "string[]"
              },
              {
                "availability": "source_interface",
                "conditions": "provider.options avvisas på denna Ultra-textrutt",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "provider",
                "required": false,
                "type": "object"
              },
              {
                "availability": "source_interface",
                "conditions": "1h avvisas på de faktiska platserna för promptcache",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "cache_control.ttl",
                "required": false,
                "type": "string"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": [
              "additional models/models list",
              "plugins",
              "route",
              "hosted tools; ordinary client function tools remain separate",
              "non-text output modalities",
              "provider.options overrides",
              "one-hour prompt-cache TTL"
            ]
          },
          "hints": [
            "Skicka det exakta modell-ID:t tillsammans med messages.",
            "Kontextlängden är inte en utdatagräns.",
            "En textfil kan tillhandahålla bokstavlig text; bild-/ljud-/filobjektsindata kräver exakt bindning."
          ],
          "input": {
            "content_type": "application/json",
            "control_scope": "modellspecifikt; användarens funktionsverktyg skiljer sig från värdbaserade verktyg",
            "file_material": "det faktiska UTF-8-dokumentet infogat som bokstavlig text; inget fil-ID härleds",
            "hosted_operations": false,
            "material_types": [
              "text"
            ],
            "messages": "meddelandearray med strukturen role/content",
            "multimodal_input_binding": null,
            "optional_controls": [
              "stream",
              "temperature",
              "top_p",
              "stop",
              "max_tokens",
              "max_completion_tokens",
              "reasoning",
              "response_format",
              "tools",
              "tool_choice"
            ],
            "output_modalities": [
              "text"
            ],
            "required": [
              "model",
              "messages"
            ]
          },
          "lifecycle": {
            "mode": "synchronous_or_streamed",
            "unknown": "preserve original request id; no generic chat job retrieval path"
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/chat/completions"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_chat"
          ],
          "output": {
            "content": "choices[].message.content or stream delta",
            "family": "text",
            "format": "json or supported SSE",
            "tool_calls": "retain actual returned function calls"
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Grundpriser för token",
            "units": [
              {
                "amount": "0.0046000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000046",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.0138000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0000138",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"qwen2.5-omni-7b\", \"messages\": [{\"role\": \"user\", \"content\": \"Explain the difference between an observation and a hypothesis in three sentences.\"}]}')\n\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path(\"result.json\").read_text())\nfor x in r.get(\"choices\",[]):\n    if x.get(\"message\",{}).get(\"content\"): print(x[\"message\"][\"content\"])\nPY_RESULT\n",
            "label": "curl · retained exact creation",
            "language": "bash"
          },
          {
            "code": "from openai import OpenAI\nimport os\n\nif not os.environ.get(\"AILOOT_API_KEY\", \"\").strip(): raise SystemExit(\"Set AILOOT_API_KEY before making a request\")\nclient=OpenAI(base_url=\"https://api.ailoot.ai/v1\",api_key=os.environ[\"AILOOT_API_KEY\"],max_retries=0)\nresult=client.chat.completions.create(model='qwen2.5-omni-7b',messages=[{\"role\":\"user\",\"content\":\"Explain observations and hypotheses in three sentences.\"}])\nimport base64, json\nfrom pathlib import Path\n\ndef save_result(data, stem=\"result\"):\n    # Keep every field, including usage, IDs, reasoning and tool requests.\n    Path(stem + \".json\").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding=\"utf-8\")\n    print(json.dumps(data, ensure_ascii=False, indent=2))\n    def save_blob(encoded, suffix, label):\n        raw = base64.b64decode(encoded, altchars=b\"-_\", validate=True)\n        ext = \"png\" if raw.startswith(b\"\\x89PNG\\r\\n\\x1a\\n\") else \"jpg\" if raw.startswith(b\"\\xff\\xd8\") else \"webp\" if raw[:4] == b\"RIFF\" and raw[8:12] == b\"WEBP\" else suffix\n        file = Path(stem + \"-\" + label + \".\" + ext)\n        file.write_bytes(raw)\n        print(\"Saved\", file)\n    for index, block in enumerate(data.get(\"content\") or []):\n        print(\"Content\", index, json.dumps(block, ensure_ascii=False))\n    for choice in data.get(\"choices\") or []:\n        print(\"Choice\", choice.get(\"index\"), json.dumps(choice.get(\"message\", choice.get(\"delta\", {})), ensure_ascii=False))\n    for index, item in enumerate(data.get(\"output\") or []):\n        print(\"Output\", index, json.dumps(item, ensure_ascii=False))\n        if item.get(\"type\") == \"image_generation_call\" and item.get(\"result\"):\n            save_blob(item[\"result\"], item.get(\"output_format\") or \"bin\", \"output-\" + str(index))\n    for ci, candidate in enumerate(data.get(\"candidates\") or []):\n        for pi, part in enumerate((candidate.get(\"content\") or {}).get(\"parts\") or []):\n            print(\"Candidate/part\", ci, pi, json.dumps(part, ensure_ascii=False))\n            blob = part.get(\"inlineData\") or part.get(\"inline_data\")\n            if blob and blob.get(\"data\"):\n                mime = blob.get(\"mimeType\") or blob.get(\"mime_type\")\n                suffix = {\"image/png\":\"png\", \"image/jpeg\":\"jpg\", \"image/webp\":\"webp\", \"audio/wav\":\"wav\", \"audio/mpeg\":\"mp3\", \"video/mp4\":\"mp4\"}.get(mime, \"bin\")\n                save_blob(blob[\"data\"], suffix, \"candidate-\" + str(ci) + \"-part-\" + str(pi))\n\nsave_result(result.to_dict(mode=\"json\"))\n",
            "label": "Python SDK · all choices",
            "language": "python"
          },
          {
            "code": "from openai import OpenAI\nimport os\nfrom pathlib import Path\n\nif not os.environ.get(\"AILOOT_API_KEY\", \"\").strip(): raise SystemExit(\"Set AILOOT_API_KEY before making a request\")\nclient=OpenAI(base_url=\"https://api.ailoot.ai/v1\",api_key=os.environ[\"AILOOT_API_KEY\"],max_retries=0)\nimport base64, json\nfrom pathlib import Path\n\ndef save_result(data, stem=\"result\"):\n    # Keep every field, including usage, IDs, reasoning and tool requests.\n    Path(stem + \".json\").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding=\"utf-8\")\n    print(json.dumps(data, ensure_ascii=False, indent=2))\n    def save_blob(encoded, suffix, label):\n        raw = base64.b64decode(encoded, altchars=b\"-_\", validate=True)\n        ext = \"png\" if raw.startswith(b\"\\x89PNG\\r\\n\\x1a\\n\") else \"jpg\" if raw.startswith(b\"\\xff\\xd8\") else \"webp\" if raw[:4] == b\"RIFF\" and raw[8:12] == b\"WEBP\" else suffix\n        file = Path(stem + \"-\" + label + \".\" + ext)\n        file.write_bytes(raw)\n        print(\"Saved\", file)\n    for index, block in enumerate(data.get(\"content\") or []):\n        print(\"Content\", index, json.dumps(block, ensure_ascii=False))\n    for choice in data.get(\"choices\") or []:\n        print(\"Choice\", choice.get(\"index\"), json.dumps(choice.get(\"message\", choice.get(\"delta\", {})), ensure_ascii=False))\n    for index, item in enumerate(data.get(\"output\") or []):\n        print(\"Output\", index, json.dumps(item, ensure_ascii=False))\n        if item.get(\"type\") == \"image_generation_call\" and item.get(\"result\"):\n            save_blob(item[\"result\"], item.get(\"output_format\") or \"bin\", \"output-\" + str(index))\n    for ci, candidate in enumerate(data.get(\"candidates\") or []):\n        for pi, part in enumerate((candidate.get(\"content\") or {}).get(\"parts\") or []):\n            print(\"Candidate/part\", ci, pi, json.dumps(part, ensure_ascii=False))\n            blob = part.get(\"inlineData\") or part.get(\"inline_data\")\n            if blob and blob.get(\"data\"):\n                mime = blob.get(\"mimeType\") or blob.get(\"mime_type\")\n                suffix = {\"image/png\":\"png\", \"image/jpeg\":\"jpg\", \"image/webp\":\"webp\", \"audio/wav\":\"wav\", \"audio/mpeg\":\"mp3\", \"video/mp4\":\"mp4\"}.get(mime, \"bin\")\n                save_blob(blob[\"data\"], suffix, \"candidate-\" + str(ci) + \"-part-\" + str(pi))\n\nwith client.chat.completions.stream(model='qwen2.5-omni-7b',messages=[{\"role\":\"user\",\"content\":\"Explain observations and hypotheses in three sentences.\"}]) as stream:\n    with Path(\"stream-events.jsonl\").open(\"w\",encoding=\"utf-8\") as log:\n        for event in stream:\n            payload=event.to_dict(mode=\"json\")\n            log.write(json.dumps(payload,ensure_ascii=False)+\"\\n\"); log.flush()\n            print(json.dumps(payload,ensure_ascii=False))\n    final=stream.get_final_completion()\n    save_result(final.to_dict(mode=\"json\"),\"stream-result\")\n",
            "label": "Python SDK streaming · all events",
            "language": "python"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "chat",
        "hints": [
          "Send exact model ID with messages.",
          "Context length is not an output cap.",
          "A text file may supply literal text; image/audio/file-object inputs need exact binding."
        ],
        "http": "POST",
        "in": 4.6,
        "input": [
          "text"
        ],
        "label": "OpenAI Chat",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": 13.8,
        "output": [
          "text"
        ],
        "path": "/v1/chat/completions",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "token",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": "0.0046000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000046",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.0138000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0000138",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "request_model_id": "qwen2.5-omni-7b",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [],
        "units": [
          {
            "amount": "0.0046000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000046",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0.0138000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.0000138",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      }
    },
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">Al</span><h2 id=\"sheet-title\">qwen2.5-omni-7b</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Stäng\">×</button></div><div class=\"idline\"><span>Alibaba /</span><code>qwen2.5-omni-7b</code><button type=\"button\" id=\"copy-id\">Kopiera ID</button></div><nav class=\"card-jump-nav\" aria-label=\"Modellkortets avsnitt\"><button type=\"button\" data-card-jump=\"overview\">Start</button><button type=\"button\" data-card-jump=\"methods\">Indata &amp; metoder</button><button type=\"button\" data-card-jump=\"pricing\">Priser</button><button type=\"button\" data-card-jump=\"examples\">Exempel</button><button type=\"button\" data-card-jump=\"results\">Resultat</button><button type=\"button\" data-card-jump=\"aliases\">Alias</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"API-metoder\"><button type=\"button\" role=\"tab\" tabindex=\"-1\" aria-controls=\"card-method-content\" aria-selected=\"false\" id=\"card-method-tab-0\" data-card-method=\"Ultra|chat|/v1/chat/completions|qwen2.5-omni-7b\">Chat</button><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-1\" data-card-method=\"Ultra|messages|/v1/messages|qwen2.5-omni-7b\">Messages</button></div><div id=\"card-method-content\" role=\"tabpanel\" aria-labelledby=\"card-method-tab-1\"><section class=\"card-section\" data-card-section=\"overview\"><h3 tabindex=\"-1\">Start</h3><p class=\"mdesc-full\">Qwen2.5-Omni-7B kombinerar förståelse av text, bilder, ljud och video med textutdata och naturligt tal. Dess Thinker-Talker-arkitektur tidsanpassar ljud till video, stöder strömmad interaktion och erbjuder två dokumenterade röster i exakt denna öppna kontrollpunkt.</p><dl class=\"card-io\" data-card-io><div><dt>Godkända indata</dt><dd>Text</dd></div><div><dt>Resultat</dt><dd>json · sse</dd></div></dl><details class=\"card-about\"><summary>Om modellen</summary><p class=\"note-s\" data-model-method-boundary>Den här beskrivningen omfattar modellens förmågor. Tillgängliga indata, utdata och alternativ i Ailoot anges nedan för den valda metoden.</p><div class=\"mabout\" id=\"m-about\"><p>Översikt: en modell för flera indatamodaliteter</p><p>Qwen2.5-Omni-7B är Qwens heltäckande multimodala modell för text, bilder, ljud och video. Den kan förstå dessa indata tillsammans och generera text med naturligt tal i ett strömmat arbetsflöde. Använd den när en uppgift beror på både det synliga och det hörbara, eller när användaren ger instruktionen med rösten i stället för att skriva. Detta är exakt 7B-kontrollpunkten; kommersiella Omni-Turbo och senare Omni-utgåvor har egna kontrakt.</p><p>Viktiga funktioner och arkitektur</p><p>Thinker-Talker-utformningen kombinerar förståelse med talgenerering. Thinker bearbetar den multimodala uppgiften och producerar textinnehåll, medan Talker deltar i att forma det talade svaret. TMRoPE, tillverkarens tidsanpassade multimodala positionsschema, synkroniserar tidsstämplar från video med ljud. Arkitekturen är utformad för indata i block och responsiv röst- eller videointeraktion; detta designmål är ingen garanti för en bestämd svarstid i varje gränssnitt.</p><p>Tillverkarens uppgiftsomfattning inkluderar taligenkänning, talöversättning, ljudförståelse, bildresonemang, videoförståelse och talgenerering. Talade instruktioner kan därför ingå direkt i en multimodal fråga utan att alltid kräva en separat tillhandahållen skriven transkription. Håll måluppgiften tydlig: att förstå ett ljudklipp, besvara en talad fråga och generera ett talat svar är skilda användningar även om modellen stöder alla deras indata- eller utdataformer.</p><p>Förbereda ett multimodalt samtal</p><p>Tillhandahåll relevanta medier och ange hur svaret ska koppla ihop dem. För en demonstration med berättarröst ska modellen ombes skilja de synliga stegen från talarens förklaring och identifiera var de överensstämmer. För en bild med en ljudfråga ska bildens roll anges och ett kortfattat svar grundat i det synliga innehållet begäras. För ett rent ljudutdrag ska det anges om syftet är att känna igen tal, förklara ljud eller besvara en fråga om innehållet. Detta är utformade tillämpningar av de dokumenterade uppgifterna.</p><p>Tillverkarens exempel visar samtal med enbart text, enbart ljud, enbart video och blandade medier. Bevara en videos ursprungliga ordning och timing. Märk separata tillgångar så att modellen kan hänvisa till dem utan att behandla orelaterade belägg som en enda händelse. Resultatet kan vara enbart text eller text med tal; välj den användbara artefakten innan begäran förbereds.</p><p>Förbereda talutdata</p><p>Qwens recept för kontrollpunkten kräver dess dokumenterade systemprompt för ljudförmåga när talutdata behövs. Prompten identifierar Qwen och dess förmågor för hörsel, syn, text och tal; en orelaterad ersättning kan förhindra det förväntade ljudbeteendet. Detta är vägledning för tillverkarens kontrollpunktsflöde, inte ett påstående om att varje applikation exponerar kontroller för systemprompt eller ljudgenerering.</p><p>Den specifika kontrollpunkten erbjuder två röster: Chelsie, en varm kvinnlig röst, och Ethan, en livlig manlig röst. Chelsie är dokumenterat standardval när ingen talare väljs. Genereringsexemplet skriver tal med samplingsfrekvensen 24,000 Hz. Dessa två röster ska inte ersättas med beskrivningen av fyra röster för en separat namngiven kommersiell modell.</p><p>Använda ljud från video</p><p>En videos ljudspår kan vara relevant för dess innebörd, exempelvis talade instruktioner eller ett ljud som uppstår vid en synlig handling. Qwen exponerar use_audio_in_video vid medieförberedelse, bearbetning och generering. Inställningen måste vara konsekvent i alla tre steg och genom ett samtal över flera turer; inkonsekventa inställningar kan ge oväntade resultat. En visuell tolkning av enbart video skiljer sig därför från en audiovisuell tolkning, även när filen är densamma.</p><p>Enbart textutdata och batchning</p><p>Tillverkaren stöder enbart textutdata genom inställningen return_audio=False. Talker kan också stängas av efter laddning, vilket minskar GPU-minnet med ungefär 2 GB men gör ljudutdata otillgängliga i den instansen. Det dokumenterade batchningsexemplet med blandade prov kräver return_audio=False och kombinerar begäranden med text, bild, ljud och video. Det batchningsexemplet ska inte omvandlas till ett påstående om batchad talgenerering.</p><p>Kontext och väsentliga begränsningar</p><p>Kontrollpunktens konfiguration för textstommen anger högsta antal positioner till 32,768. Text, representerade medier och genererade svar förbrukar sekvensutrymme; värdet definierar inte självständigt en universell ljud- eller videovaraktighet. Tillverkarens resursexempel visar att längre video behöver betydligt mer minne, så ett kort relevant klipp är ofta mer praktiskt än en stor ovidkommande inspelning. Exemplen publicerar ingen separat hård maximal svarslängd eller universellt garanterad medievaraktighet.</p><p>Kontrollera talcitat och slutsatser mot källan, bevara tillräckligt med visuella detaljer för frågan och behåll ett textresultat när en granskare behöver inspektera den talade förklaringen. Modellens dokumenterade värde är gemensam förståelse och text-/talsvar, medan exakta röstkontroller, mediebearbetning och utleverans förblir egenskaper hos det valda gränssnittet.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Tillgängligt i Ailoot · indata &amp; metoder</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Anthropic Messages</b> <code>POST /v1/messages</code></summary><dl class=\"method-capabilities\"><div><dt>Indatatyper</dt><dd><code>text</code></dd></div><div><dt>Utdatatyper</dt><dd><code>json</code>, <code>sse</code></dd></div><div><dt>Utdataformat</dt><dd>JSON eller SSE</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Fält</th><th>Typ</th><th>Krav</th><th>Värden &amp; gränser</th><th>Standard</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Obligatoriskt</td><td data-cell-label=\"Värden &amp; gränser\"><span class=\"card-cell-label\">Värden &amp; gränser</span><div>qwen2.5-omni-7b</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">messages</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>message[]</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Obligatoriskt</td><td data-cell-label=\"Värden &amp; gränser\"><span class=\"card-cell-label\">Värden &amp; gränser</span></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">messages[].role</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Obligatoriskt</td><td data-cell-label=\"Värden &amp; gränser\"><span class=\"card-cell-label\">Värden &amp; gränser</span><div>user, assistant</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">messages[].content</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Obligatoriskt</td><td data-cell-label=\"Värden &amp; gränser\"><span class=\"card-cell-label\">Värden &amp; gränser</span></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">max_tokens</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>integer</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Obligatoriskt</td><td data-cell-label=\"Värden &amp; gränser\"><span class=\"card-cell-label\">Värden &amp; gränser</span></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">stream</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>boolean</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Valfritt</td><td data-cell-label=\"Värden &amp; gränser\"><span class=\"card-cell-label\">Värden &amp; gränser</span></td><td data-cell-label=\"Standard\" data-default=\"known\"><span class=\"card-cell-label\">Standard</span>false</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Kombinationer av indatamaterial</summary><p class=\"note-s\"><b>Text</b> · UTF-8-text</p><p class=\"note-s\"><code>sträng i messages[].content</code></p></details><details class=\"note-s\" data-method-contract><summary>Metodparametrar och livscykel</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Parameter</th><th>Avtal</th></tr></thead><tbody><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>content_type</code></th><td data-cell-label=\"Avtal\"><span class=\"card-cell-label\">Avtal</span>application/json</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>required</code></th><td data-cell-label=\"Avtal\"><span class=\"card-cell-label\">Avtal</span>model, messages, max_tokens</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>optional_controls</code></th><td data-cell-label=\"Avtal\"><span class=\"card-cell-label\">Avtal</span>stream</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>material_types</code></th><td data-cell-label=\"Avtal\"><span class=\"card-cell-label\">Avtal</span>text</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>text_file_material</code></th><td data-cell-label=\"Avtal\"><span class=\"card-cell-label\">Avtal</span>Läs det faktiska UTF-8-dokumentet och placera texten i det angivna input-fältet eller i strängen för meddelandets innehåll.</td></tr></tbody></table></div><p>Livscykel: <code>synchronous_or_streamed</code></p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Priser</h3><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Tariffuppgifter lägger inte till begäransalternativ. Parametrar som stöds anges för den valda metoden.</p><dl data-price-conditions><dt>Snabbt läge</dt><dd>Ej angivet <span class=\"note-s\">När snabbt läge är valt</span></dd><dt>Flex-läge</dt><dd>Ej angivet <span class=\"note-s\">När läget flex är valt</span></dd><dt>Högsta resonemangsnivå</dt><dd>Ej angivet <span class=\"note-s\">När den högsta resonemangsnivån använder standardjusteringen (default)</span></dd></dl></div><div data-declared-tariff-pricing><h4>Ailoot-priser</h4><h4>Priser efter konfiguration</h4><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Konfiguration</th><th>Prislista</th><th>Avgift</th></tr></thead><tbody><tr><th data-cell-label=\"Konfiguration\" scope=\"row\"><span class=\"card-cell-label\">Konfiguration</span>Grundpriser för token</th><td data-cell-label=\"Prislista\"><span class=\"card-cell-label\">Prislista</span>Grundpris</td><td data-cell-label=\"Avgift\"><span class=\"card-cell-label\">Avgift</span><div><span>Indata · Indatatoken</span> <b>$0.0046</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Utdata · Utdatatoken</span> <b>$0.0138</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Indata · Cacheläsning</span> <b>$0</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Indata · Skrivning till cache</span> <b>$0</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Indata · Skrivning till cache, 1 tim</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div></td></tr></tbody></table></div></div><p class=\"note-s\">Ailoot reserverar ett uppskattat belopp före en begäran. Efter resultatet slutregleras avgiften utifrån uppmätt förbrukning. Slutreglering för strömning använder den slutliga förbrukningsposten. <a href=\"/docs/sv/billing/reserve/\">Så fungerar reservation och slutreglering →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Exempelbegäranden</h3><h4>Ailoot Ultra · Anthropic Messages</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Kodvarianter\"><button class=\"cg-tab\" id=\"model-code-2477-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2477-panel-0\" aria-selected=\"true\" tabindex=\"0\">Komplett minimal JSON-kropp</button><button class=\"cg-tab\" id=\"model-code-2477-tab-1\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2477-panel-1\" aria-selected=\"false\" tabindex=\"-1\">curl · använd ditt UTF-8-dokument</button><button class=\"cg-tab\" id=\"model-code-2477-tab-2\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2477-panel-2\" aria-selected=\"false\" tabindex=\"-1\">Python · spara hela resultatet</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Kopiera kod\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-2477-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-2477-tab-0\"><pre data-lang=\"json\"><code>{\n  &quot;model&quot;: &quot;qwen2.5-omni-7b&quot;,\n  &quot;max_tokens&quot;: 128,\n  &quot;messages&quot;: [\n    {\n      &quot;role&quot;: &quot;user&quot;,\n      &quot;content&quot;: &quot;Summarize the incident report.&quot;\n    }\n  ],\n  &quot;stream&quot;: false\n}</code></pre></div><div class=\"cg-pane\" id=\"model-code-2477-panel-1\" role=\"tabpanel\" aria-labelledby=\"model-code-2477-tab-1\" hidden><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}&quot;\nexport AILOOT_TEXT_FILE\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json, os\nfrom pathlib import Path\n\nsource_file = Path(os.environ[&#39;AILOOT_TEXT_FILE&#39;])\nif not source_file.is_file():\n    raise SystemExit(&#39;Set AILOOT_TEXT_FILE to your actual UTF-8 document&#39;)\ntext = source_file.read_text(encoding=&#39;utf-8&#39;)\nif not text.strip():\n    raise SystemExit(&#39;Choose a document containing text&#39;)\npayload = {&#39;model&#39;: &#39;qwen2.5-omni-7b&#39;, &#39;max_tokens&#39;: 128, &#39;messages&#39;: [{&#39;role&#39;: &#39;user&#39;, &#39;content&#39;: &#39;Summarize the incident report.&#39;}]}\npayload[&#39;messages&#39;][0][&#39;content&#39;] = &#39;Summarize this material and quote supporting source passages.\\n\\n&#39; + text\nPath(&#39;request.json&#39;).write_text(json.dumps(payload, ensure_ascii=False), encoding=&#39;utf-8&#39;)\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \\\n  -H &quot;x-api-key: $AILOOT_API_KEY&quot; -H &#39;anthropic-version: 2023-06-01&#39; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\n\nresult = json.loads(Path(&#39;result.json&#39;).read_text(encoding=&#39;utf-8&#39;))\nprint(json.dumps(result, ensure_ascii=False, indent=2))\nPY_RESULT\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-2477-panel-2\" role=\"tabpanel\" aria-labelledby=\"model-code-2477-tab-2\" hidden><pre data-lang=\"python\"><code>import json, os\nfrom pathlib import Path\n\nsource_file = Path(os.environ[&#39;AILOOT_TEXT_FILE&#39;])\nif not source_file.is_file():\n    raise SystemExit(&#39;Set AILOOT_TEXT_FILE to your actual UTF-8 document&#39;)\ntext = source_file.read_text(encoding=&#39;utf-8&#39;)\nif not text.strip():\n    raise SystemExit(&#39;Choose a document containing text&#39;)\npayload = {&#39;model&#39;: &#39;qwen2.5-omni-7b&#39;, &#39;max_tokens&#39;: 128, &#39;messages&#39;: [{&#39;role&#39;: &#39;user&#39;, &#39;content&#39;: &#39;Summarize the incident report.&#39;}]}\npayload[&#39;messages&#39;][0][&#39;content&#39;] = &#39;Summarize this material and quote supporting source passages.\\n\\n&#39; + text\nfrom urllib.request import Request, urlopen\nfrom urllib.error import HTTPError\n\napi_key = os.environ[&#39;AILOOT_API_KEY&#39;]\nif not api_key.strip():\n    raise SystemExit(&#39;Set AILOOT_API_KEY before making a request&#39;)\nheaders = {&#39;x-api-key&#39;: &#39;PLACEHOLDER_KEY&#39;, &#39;anthropic-version&#39;: &#39;2023-06-01&#39;, &#39;Content-Type&#39;: &#39;application/json&#39;}\nheaders[&#39;x-api-key&#39;] = api_key\nrequest = Request(&#39;https://api.ailoot.ai/v1/messages&#39;, data=json.dumps(payload, ensure_ascii=False).encode(&#39;utf-8&#39;), headers=headers, method=&#39;POST&#39;)\ntry:\n    with urlopen(request, timeout=120) as response:\n        raw = response.read()\n        Path(&#39;response-headers.txt&#39;).write_text(str(response.headers), encoding=&#39;utf-8&#39;)\nexcept HTTPError as error:\n    Path(&#39;result.json&#39;).write_bytes(error.read())\n    Path(&#39;response-headers.txt&#39;).write_text(str(error.headers), encoding=&#39;utf-8&#39;)\n    raise\nPath(&#39;result.json&#39;).write_bytes(raw)\nimport json\nfrom pathlib import Path\n\nresult = json.loads(Path(&#39;result.json&#39;).read_text(encoding=&#39;utf-8&#39;))\nprint(json.dumps(result, ensure_ascii=False, indent=2))\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Ta emot och spara resultat</h3><h4>Ailoot Ultra · Anthropic Messages</h4><p class=\"note-s\">JSON eller SSE</p><div class=\"card-result-process\" data-all-results><h5>Behåll alla färdiga resultat</h5><p class=\"note-s\">Behåll varje fullständigt returnerat svar, fil och innehållsdel.</p><p class=\"note-s\">Behåll alla innehållsblock, resonemangssignaturer och faktiska ID:n för verktygsanvändning. Sätt samman alla SSE-deltauppdateringar för blocken; ett första textblock är inte hela utdata.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Om det ursprungliga svaret behöver kontrolleras</h5><p class=\"note-s\">Behåll begärans/svarets ID:n och huvuden. Ingen generell URL för hämtning av textjobb tillhandahålls.</p></div><details class=\"card-about\" data-output-fields><summary>Svarsfält</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Fält</th><th>Typ</th></tr></thead><tbody><tr><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">id</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>string</td></tr><tr><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>string</td></tr><tr><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">content[]</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>text|thinking|tool_use|other content block</td></tr><tr><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">stop_reason</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>string|null</td></tr><tr><th data-cell-label=\"Fält\" scope=\"row\"><span class=\"card-cell-label\">Fält</span><code class=\"card-field-name\">usage</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>object</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Fel och nästa steg</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Svar</th><th>Villkor</th><th>Nästa steg</th></tr></thead><tbody><tr><th data-cell-label=\"Svar\" scope=\"row\"><span class=\"card-cell-label\">Svar</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Villkor\"><span class=\"card-cell-label\">Villkor</span>Ogiltiga obligatoriska fält, ogiltig representation av underlaget eller ogiltigt parametervärde</td><td data-cell-label=\"Nästa steg\"><span class=\"card-cell-label\">Nästa steg</span>Korrigera de angivna fälten före en ny begäran om att skapa.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Alias</h3><h4>Modellalias</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=qwen2.5-omni-7b&amp;route=Ultra&amp;caller=qwen2.5-omni-7b&amp;fmt=messages\"><code>qwen2.5-omni-7b</code></a></span></p><h4>Alias för metodsökvägar</h4><p class=\"note-s\">Använd metodsökvägarna som visas ovan.</p><h4>Relaterade anropar-ID:n</h4><p class=\"note-s\"><a href=\"#m=qwen2.5-omni-7b&amp;route=Ultra&amp;caller=qwen2.5-omni-7b&amp;fmt=messages\"><code>qwen2.5-omni-7b</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "qwen2.5-omni-7b",
        "fmt": "messages",
        "http": "POST",
        "path": "/v1/messages",
        "request_model_id": "qwen2.5-omni-7b",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|messages|/v1/messages|qwen2.5-omni-7b",
      "ordinal": 1,
      "rawMethod": {
        "available": null,
        "cache_read": 0,
        "cache_write": 0,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "authentication": {
              "api_key_source": "AILOOT_API_KEY",
              "headers": [
                "Authorization: Bearer",
                "x-api-key",
                "anthropic-version"
              ],
              "version_example": "2023-06-01"
            },
            "errors": [
              {
                "code": null,
                "condition": "Ogiltiga obligatoriska fält, ogiltig representation av underlaget eller ogiltigt parametervärde",
                "http_status": 400,
                "recovery": "Korrigera de angivna fälten före en ny begäran om att skapa.",
                "type": "invalid_request_error"
              }
            ],
            "example_body": {
              "max_tokens": 128,
              "messages": [
                {
                  "content": "Summarize the incident report.",
                  "role": "user"
                }
              ],
              "model": "qwen2.5-omni-7b",
              "stream": false
            },
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/messages"
              },
              "job_read": null,
              "mode": "synchronous_or_streamed",
              "unknown": "Behåll begärans/svarets ID:n och huvuden. Ingen generell URL för hämtning av textjobb tillhandahålls."
            },
            "material_combinations": [
              {
                "mode": "text",
                "representation": "sträng i messages[].content",
                "required_material": "UTF-8-text"
              }
            ],
            "operation_modes": [
              "synchronous_json",
              "streamed_SSE"
            ],
            "outputs": {
              "all_results": "Behåll alla innehållsblock, resonemangssignaturer och faktiska ID:n för verktygsanvändning. Sätt samman alla SSE-deltauppdateringar för blocken; ett första textblock är inte hela utdata.",
              "family": "protocol",
              "fields": [
                {
                  "description": null,
                  "name": "id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "model",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "content[]",
                  "type": "text|thinking|tool_use|other content block"
                },
                {
                  "description": null,
                  "name": "stop_reason",
                  "type": "string|null"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "JSON eller SSE"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "qwen2.5-omni-7b"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages",
                "required": true,
                "type": "message[]"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "user",
                  "assistant"
                ],
                "enum_known": true,
                "name": "messages[].role",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].content",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "max_tokens",
                "required": true,
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": false,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "name": "stream",
                "required": false,
                "type": "boolean"
              }
            ],
            "profile_binding": "Documented current stock Messages bridge; optional model capabilities are separate from this minimal text request.",
            "request_schema": {
              "additionalProperties": false,
              "properties": {
                "max_tokens": {
                  "minimum": 1,
                  "type": "integer"
                },
                "messages": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "content": {
                        "oneOf": [
                          {
                            "type": "string"
                          },
                          {
                            "items": {
                              "oneOf": [
                                {
                                  "properties": {
                                    "text": {
                                      "type": "string"
                                    },
                                    "type": {
                                      "const": "text"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "text"
                                  ],
                                  "type": "object"
                                },
                                {
                                  "properties": {
                                    "source": {
                                      "oneOf": [
                                        {
                                          "properties": {
                                            "type": {
                                              "const": "url"
                                            },
                                            "url": {
                                              "type": "string"
                                            }
                                          },
                                          "required": [
                                            "type",
                                            "url"
                                          ],
                                          "type": "object"
                                        },
                                        {
                                          "properties": {
                                            "data": {
                                              "type": "string"
                                            },
                                            "media_type": {
                                              "type": "string"
                                            },
                                            "type": {
                                              "const": "base64"
                                            }
                                          },
                                          "required": [
                                            "type",
                                            "media_type",
                                            "data"
                                          ],
                                          "type": "object"
                                        }
                                      ]
                                    },
                                    "type": {
                                      "const": "image"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "source"
                                  ],
                                  "type": "object"
                                }
                              ]
                            },
                            "type": "array"
                          }
                        ]
                      },
                      "role": {
                        "enum": [
                          "user",
                          "assistant"
                        ],
                        "type": "string"
                      }
                    },
                    "required": [
                      "role",
                      "content"
                    ],
                    "type": "object"
                  },
                  "minItems": 1,
                  "type": "array"
                },
                "model": {
                  "enum": [
                    "qwen2.5-omni-7b"
                  ],
                  "type": "string"
                },
                "stream": {
                  "default": false,
                  "type": "boolean"
                }
              },
              "required": [
                "model",
                "messages",
                "max_tokens"
              ],
              "type": "object"
            },
            "schema_template": {
              "max_tokens": 128,
              "messages": [
                {
                  "content": "Summarize the incident report.",
                  "role": "user"
                }
              ],
              "model": "qwen2.5-omni-7b",
              "stream": false
            },
            "unsupported": [
              "No query API key.",
              "Hosted/server-side tools and model-specific optional controls are not part of this minimal family example."
            ]
          },
          "input": {
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "optional_controls": [
              "stream"
            ],
            "required": [
              "model",
              "messages",
              "max_tokens"
            ],
            "text_file_material": "Läs det faktiska UTF-8-dokumentet och placera texten i det angivna input-fältet eller i strängen för meddelandets innehåll."
          },
          "lifecycle": {
            "create": {
              "http": "POST",
              "path": "/v1/messages"
            },
            "job_read": null,
            "mode": "synchronous_or_streamed",
            "unknown": "Keep request/response IDs and headers. No generic text job retrieval URL is supplied."
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/messages"
          },
          "output": {
            "all_results": "Keep all content blocks, thinking signatures and actual tool-use IDs. Assemble all SSE block deltas; a first text block is not the complete output.",
            "family": "protocol",
            "format": "JSON or SSE"
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Grundpriser för token",
            "units": [
              {
                "amount": "0.0046000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000046",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.0138000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0000138",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "{\n  \"model\": \"qwen2.5-omni-7b\",\n  \"max_tokens\": 128,\n  \"messages\": [\n    {\n      \"role\": \"user\",\n      \"content\": \"Summarize the incident report.\"\n    }\n  ],\n  \"stream\": false\n}",
            "label": "Complete minimal JSON body",
            "language": "json"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}\"\nexport AILOOT_TEXT_FILE\npython3 - <<'PY_REQUEST'\nimport json, os\nfrom pathlib import Path\n\nsource_file = Path(os.environ['AILOOT_TEXT_FILE'])\nif not source_file.is_file():\n    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')\ntext = source_file.read_text(encoding='utf-8')\nif not text.strip():\n    raise SystemExit('Choose a document containing text')\npayload = {'model': 'qwen2.5-omni-7b', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}\npayload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\\n\\n' + text\nPath('request.json').write_text(json.dumps(payload, ensure_ascii=False), encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \\\n  -H \"x-api-key: $AILOOT_API_KEY\" -H 'anthropic-version: 2023-06-01' -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\n\nresult = json.loads(Path('result.json').read_text(encoding='utf-8'))\nprint(json.dumps(result, ensure_ascii=False, indent=2))\nPY_RESULT\n",
            "label": "curl · use your UTF-8 document",
            "language": "bash"
          },
          {
            "code": "import json, os\nfrom pathlib import Path\n\nsource_file = Path(os.environ['AILOOT_TEXT_FILE'])\nif not source_file.is_file():\n    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')\ntext = source_file.read_text(encoding='utf-8')\nif not text.strip():\n    raise SystemExit('Choose a document containing text')\npayload = {'model': 'qwen2.5-omni-7b', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}\npayload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\\n\\n' + text\nfrom urllib.request import Request, urlopen\nfrom urllib.error import HTTPError\n\napi_key = os.environ['AILOOT_API_KEY']\nif not api_key.strip():\n    raise SystemExit('Set AILOOT_API_KEY before making a request')\nheaders = {'x-api-key': 'PLACEHOLDER_KEY', 'anthropic-version': '2023-06-01', 'Content-Type': 'application/json'}\nheaders['x-api-key'] = api_key\nrequest = Request('https://api.ailoot.ai/v1/messages', data=json.dumps(payload, ensure_ascii=False).encode('utf-8'), headers=headers, method='POST')\ntry:\n    with urlopen(request, timeout=120) as response:\n        raw = response.read()\n        Path('response-headers.txt').write_text(str(response.headers), encoding='utf-8')\nexcept HTTPError as error:\n    Path('result.json').write_bytes(error.read())\n    Path('response-headers.txt').write_text(str(error.headers), encoding='utf-8')\n    raise\nPath('result.json').write_bytes(raw)\nimport json\nfrom pathlib import Path\n\nresult = json.loads(Path('result.json').read_text(encoding='utf-8'))\nprint(json.dumps(result, ensure_ascii=False, indent=2))\n",
            "label": "Python · save the complete result",
            "language": "python"
          }
        ],
        "family": "anthropic",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "messages",
        "http": "POST",
        "in": 4.6,
        "input": [
          "text"
        ],
        "label": "Anthropic Messages",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": 13.8,
        "output": [
          "json",
          "sse"
        ],
        "path": "/v1/messages",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "token",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": "0.0046000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000046",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.0138000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0000138",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "request_model_id": "qwen2.5-omni-7b",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [],
        "units": [
          {
            "amount": "0.0046000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000046",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0.0138000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.0000138",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      }
    }
  ],
  "model_id": "qwen2.5-omni-7b",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "30fb2dca254f41540c26b0c49f5d17683b015c8c03494b8f8b1e95f4c0cd7f34",
    "input_html_sha256": "0ae48dd2d6174f3c1aa7415f3a0e9d02764ea565270a612e9586fcbfcff25b6a",
    "private_audit_sha256": "232639d7b91c6b41264432463c4a5524bbb546a0b95b5608faf541f8e314a027",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/sv/qwen2-5-omni-7b/",
    "description": "Qwen2.5-Omni-7B kombinerar förståelse av text, bilder, ljud och video med textutdata och naturligt tal. Dess Thinker-Talker-arkitektur tidsanpassar ljud till video, stöder strömmad interaktion och erbjuder två dokumenterade röster i exakt denna öppna kontrollpunkt.",
    "locale": "sv",
    "md_url": "https://ailoot.ai/models/sv/qwen2-5-omni-7b/index.md",
    "title": "qwen2.5-omni-7b — Ailoot",
    "url": "https://ailoot.ai/models/sv/qwen2-5-omni-7b/"
  },
  "practicalHtml": "<h3>Praktisk uppgift</h3><p>Tekniskt exempel på engelska</p><pre><code>Compare demonstration notes with narration\n\nCompare two text records of demonstration M2. Visual notes: &#x27;Operator closes the lid, then presses Start.&#x27; Narration transcript: &#x27;Press Start before closing the lid.&#x27; Identify the sequence disagreement and write one clarification question for the instructor. Use only these supplied records; do not claim to have watched or heard a clip.</code></pre><h4>Förväntat resultat</h4><pre><code>A source-linked sequence comparison and one targeted clarification question.</code></pre><h4>Kontrollera resultatet</h4><pre><code>The answer must preserve the opposing event order and avoid inventing a resolution.</code></pre>",
  "practicalText": "Praktisk uppgift Tekniskt exempel på engelska Compare demonstration notes with narration Compare two text records of demonstration M2. Visual notes: 'Operator closes the lid, then presses Start.' Narration transcript: 'Press Start before closing the lid.' Identify the sequence disagreement and write one clarification question for the instructor. Use only these supplied records; do not claim to have watched or heard a clip. Förväntat resultat A source-linked sequence comparison and one targeted clarification question. Kontrollera resultatet The answer must preserve the opposing event order and avoid inventing a resolution.",
  "rawModel": {
    "about": "Översikt: en modell för flera indatamodaliteter\n\nQwen2.5-Omni-7B är Qwens heltäckande multimodala modell för text, bilder, ljud och video. Den kan förstå dessa indata tillsammans och generera text med naturligt tal i ett strömmat arbetsflöde. Använd den när en uppgift beror på både det synliga och det hörbara, eller när användaren ger instruktionen med rösten i stället för att skriva. Detta är exakt 7B-kontrollpunkten; kommersiella Omni-Turbo och senare Omni-utgåvor har egna kontrakt.\n\nViktiga funktioner och arkitektur\n\nThinker-Talker-utformningen kombinerar förståelse med talgenerering. Thinker bearbetar den multimodala uppgiften och producerar textinnehåll, medan Talker deltar i att forma det talade svaret. TMRoPE, tillverkarens tidsanpassade multimodala positionsschema, synkroniserar tidsstämplar från video med ljud. Arkitekturen är utformad för indata i block och responsiv röst- eller videointeraktion; detta designmål är ingen garanti för en bestämd svarstid i varje gränssnitt.\n\nTillverkarens uppgiftsomfattning inkluderar taligenkänning, talöversättning, ljudförståelse, bildresonemang, videoförståelse och talgenerering. Talade instruktioner kan därför ingå direkt i en multimodal fråga utan att alltid kräva en separat tillhandahållen skriven transkription. Håll måluppgiften tydlig: att förstå ett ljudklipp, besvara en talad fråga och generera ett talat svar är skilda användningar även om modellen stöder alla deras indata- eller utdataformer.\n\nFörbereda ett multimodalt samtal\n\nTillhandahåll relevanta medier och ange hur svaret ska koppla ihop dem. För en demonstration med berättarröst ska modellen ombes skilja de synliga stegen från talarens förklaring och identifiera var de överensstämmer. För en bild med en ljudfråga ska bildens roll anges och ett kortfattat svar grundat i det synliga innehållet begäras. För ett rent ljudutdrag ska det anges om syftet är att känna igen tal, förklara ljud eller besvara en fråga om innehållet. Detta är utformade tillämpningar av de dokumenterade uppgifterna.\n\nTillverkarens exempel visar samtal med enbart text, enbart ljud, enbart video och blandade medier. Bevara en videos ursprungliga ordning och timing. Märk separata tillgångar så att modellen kan hänvisa till dem utan att behandla orelaterade belägg som en enda händelse. Resultatet kan vara enbart text eller text med tal; välj den användbara artefakten innan begäran förbereds.\n\nFörbereda talutdata\n\nQwens recept för kontrollpunkten kräver dess dokumenterade systemprompt för ljudförmåga när talutdata behövs. Prompten identifierar Qwen och dess förmågor för hörsel, syn, text och tal; en orelaterad ersättning kan förhindra det förväntade ljudbeteendet. Detta är vägledning för tillverkarens kontrollpunktsflöde, inte ett påstående om att varje applikation exponerar kontroller för systemprompt eller ljudgenerering.\n\nDen specifika kontrollpunkten erbjuder två röster: Chelsie, en varm kvinnlig röst, och Ethan, en livlig manlig röst. Chelsie är dokumenterat standardval när ingen talare väljs. Genereringsexemplet skriver tal med samplingsfrekvensen 24,000 Hz. Dessa två röster ska inte ersättas med beskrivningen av fyra röster för en separat namngiven kommersiell modell.\n\nAnvända ljud från video\n\nEn videos ljudspår kan vara relevant för dess innebörd, exempelvis talade instruktioner eller ett ljud som uppstår vid en synlig handling. Qwen exponerar use_audio_in_video vid medieförberedelse, bearbetning och generering. Inställningen måste vara konsekvent i alla tre steg och genom ett samtal över flera turer; inkonsekventa inställningar kan ge oväntade resultat. En visuell tolkning av enbart video skiljer sig därför från en audiovisuell tolkning, även när filen är densamma.\n\nEnbart textutdata och batchning\n\nTillverkaren stöder enbart textutdata genom inställningen return_audio=False. Talker kan också stängas av efter laddning, vilket minskar GPU-minnet med ungefär 2 GB men gör ljudutdata otillgängliga i den instansen. Det dokumenterade batchningsexemplet med blandade prov kräver return_audio=False och kombinerar begäranden med text, bild, ljud och video. Det batchningsexemplet ska inte omvandlas till ett påstående om batchad talgenerering.\n\nKontext och väsentliga begränsningar\n\nKontrollpunktens konfiguration för textstommen anger högsta antal positioner till 32,768. Text, representerade medier och genererade svar förbrukar sekvensutrymme; värdet definierar inte självständigt en universell ljud- eller videovaraktighet. Tillverkarens resursexempel visar att längre video behöver betydligt mer minne, så ett kort relevant klipp är ofta mer praktiskt än en stor ovidkommande inspelning. Exemplen publicerar ingen separat hård maximal svarslängd eller universellt garanterad medievaraktighet.\n\nKontrollera talcitat och slutsatser mot källan, bevara tillräckligt med visuella detaljer för frågan och behåll ett textresultat när en granskare behöver inspektera den talade förklaringen. Modellens dokumenterade värde är gemensam förståelse och text-/talsvar, medan exakta röstkontroller, mediebearbetning och utleverans förblir egenskaper hos det valda gränssnittet.",
    "alias_of": null,
    "aliases": [],
    "author": "Alibaba",
    "available": null,
    "canonical_model": "qwen2.5-omni-7b",
    "capabilities": {
      "context_length": 30720,
      "manufacturer_input": [],
      "manufacturer_output": []
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.0046000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000046",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0.0138000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.0000138",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          }
        ],
        "summary": "Fullständig prissättning för konfigurationen finns i detaljerna."
      }
    ],
    "ctx": null,
    "entity_type": "model",
    "formats": [
      "chat",
      "messages"
    ],
    "id": "qwen2.5-omni-7b",
    "input": [
      "text"
    ],
    "kind": "text",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "cache_read": 0,
        "cache_write": 0,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Keep every choice and its content/tool calls/reasoning. In SSE assemble deltas by choice/tool index, retain the final finish reason and usage.",
            "authentication": {
              "api_key_source": "AILOOT_API_KEY",
              "header": "Authorization: Bearer"
            },
            "errors": [
              {
                "code": null,
                "condition": "Ogiltiga obligatoriska fält, ogiltig representation av underlaget eller ogiltigt parametervärde",
                "http_status": 400,
                "recovery": "Korrigera de angivna fälten före en ny begäran om att skapa.",
                "type": "invalid_request_error"
              }
            ],
            "hints": [
              "Model context is not an output cap.",
              "A model-dependent field needs the exact published model profile; unspecified defaults/enums are not guessed.",
              "Tool calls propose actions; the client application returns actual observations with the returned call ID.",
              "Guarded canonical keys must occur once; duplicate or case-varied model/tools/cap fields are rejected."
            ],
            "ignored_fields": [],
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/chat/completions"
              },
              "job_read": null,
              "mode": "synchronous_or_streamed",
              "unknown": "Behåll begärans/svarets ID:n och huvuden. Ingen generell URL för hämtning av textjobb tillhandahålls."
            },
            "material_combinations": [
              {
                "mode": "text",
                "representation": "messages[].content",
                "required_material": "UTF8-text"
              }
            ],
            "operation_modes": [
              "conversation",
              "function_tool_continuation",
              "streaming"
            ],
            "outputs": {
              "all_results": "Behåll varje svarsalternativ och dess innehåll/verktygsanrop/resonemang. Sätt i SSE samman deltauppdateringar efter svarsalternativets/verktygets index och behåll den slutliga avslutsorsaken och användningsuppgifterna.",
              "family": "text",
              "fields": [
                {
                  "description": null,
                  "name": "choices[].index",
                  "type": "integer"
                },
                {
                  "description": null,
                  "name": "choices[].message.content",
                  "type": "string|null"
                },
                {
                  "description": null,
                  "name": "choices[].message.tool_calls",
                  "type": "tool_call[]"
                },
                {
                  "description": null,
                  "name": "choices[].message.reasoning_content",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "choices[].message.reasoning_details",
                  "type": "object|array"
                },
                {
                  "description": null,
                  "name": "choices[].finish_reason",
                  "type": "string|null"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "json eller SSE"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "qwen2.5-omni-7b"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "min_items": 1,
                "name": "messages",
                "required": true,
                "type": "message[]"
              },
              {
                "availability": "model_dependent",
                "conditions": "Dessa roller representeras uttryckligen av källkodens kompatibilitetstyper; den exakta rolluppsättningen är fortfarande modellspecifik.",
                "default": null,
                "default_known": false,
                "enum": [
                  "system",
                  "user",
                  "assistant",
                  "tool",
                  "function"
                ],
                "enum_exhaustive": false,
                "enum_known": true,
                "name": "messages[].role",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].content",
                "required": false,
                "type": "string|content_part[]|null"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].tool_calls",
                "required": false,
                "type": "tool_call[]"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].tool_call_id",
                "required": false,
                "type": "string",
                "when": "role=tool; använd det faktiska returnerade ID:t"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].name",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].reasoning_content",
                "required": false,
                "type": "string",
                "when": "Skicka tillbaka det faktiska returnerade resonemanget när modellen använder det"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].reasoning_details",
                "required": false,
                "type": "object|array"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minimum": 1,
                "name": "max_tokens",
                "required": false,
                "type": "integer"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minimum": 1,
                "name": "max_completion_tokens",
                "required": false,
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": false,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "name": "stream",
                "required": false,
                "type": "boolean"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "stream_options.include_usage",
                "required": false,
                "type": "boolean"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "temperature",
                "required": false,
                "type": "number"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "top_p",
                "required": false,
                "type": "number"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "stop",
                "required": false,
                "type": "string|string[]"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tools",
                "required": false,
                "type": "function_tool[]"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": [
                  "function"
                ],
                "enum_known": true,
                "name": "tools[].type",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tools[].function.name",
                "required": true,
                "type": "string",
                "when": "verktyg av typen funktion har tillhandahållits"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tools[].function.description",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tools[].function.parameters",
                "required": false,
                "type": "JSON_schema"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tool_choice",
                "required": false,
                "type": "string|object"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "parallel_tool_calls",
                "required": false,
                "type": "boolean"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "response_format",
                "required": false,
                "type": "object"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "reasoning_effort",
                "required": false,
                "type": "string"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "reasoning",
                "required": false,
                "type": "object"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "service_tier",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_compatibility",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "instructions",
                "required": false,
                "type": "string"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "functions",
                "required": false,
                "type": "function[]"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "function_call",
                "required": false,
                "type": "string|object"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "prompt_cache_options",
                "required": false,
                "type": "object"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "text"
                ],
                "enum_known": true,
                "name": "modalities",
                "required": false,
                "type": "string[]"
              },
              {
                "availability": "source_interface",
                "conditions": "provider.options avvisas på denna Ultra-textrutt",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "provider",
                "required": false,
                "type": "object"
              },
              {
                "availability": "source_interface",
                "conditions": "1h avvisas på de faktiska platserna för promptcache",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "cache_control.ttl",
                "required": false,
                "type": "string"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": [
              "additional models/models list",
              "plugins",
              "route",
              "hosted tools; ordinary client function tools remain separate",
              "non-text output modalities",
              "provider.options overrides",
              "one-hour prompt-cache TTL"
            ]
          },
          "hints": [
            "Skicka det exakta modell-ID:t tillsammans med messages.",
            "Kontextlängden är inte en utdatagräns.",
            "En textfil kan tillhandahålla bokstavlig text; bild-/ljud-/filobjektsindata kräver exakt bindning."
          ],
          "input": {
            "content_type": "application/json",
            "control_scope": "modellspecifikt; användarens funktionsverktyg skiljer sig från värdbaserade verktyg",
            "file_material": "det faktiska UTF-8-dokumentet infogat som bokstavlig text; inget fil-ID härleds",
            "hosted_operations": false,
            "material_types": [
              "text"
            ],
            "messages": "meddelandearray med strukturen role/content",
            "multimodal_input_binding": null,
            "optional_controls": [
              "stream",
              "temperature",
              "top_p",
              "stop",
              "max_tokens",
              "max_completion_tokens",
              "reasoning",
              "response_format",
              "tools",
              "tool_choice"
            ],
            "output_modalities": [
              "text"
            ],
            "required": [
              "model",
              "messages"
            ]
          },
          "lifecycle": {
            "mode": "synchronous_or_streamed",
            "unknown": "preserve original request id; no generic chat job retrieval path"
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/chat/completions"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_chat"
          ],
          "output": {
            "content": "choices[].message.content or stream delta",
            "family": "text",
            "format": "json or supported SSE",
            "tool_calls": "retain actual returned function calls"
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Grundpriser för token",
            "units": [
              {
                "amount": "0.0046000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000046",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.0138000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0000138",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"qwen2.5-omni-7b\", \"messages\": [{\"role\": \"user\", \"content\": \"Explain the difference between an observation and a hypothesis in three sentences.\"}]}')\n\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path(\"result.json\").read_text())\nfor x in r.get(\"choices\",[]):\n    if x.get(\"message\",{}).get(\"content\"): print(x[\"message\"][\"content\"])\nPY_RESULT\n",
            "label": "curl · retained exact creation",
            "language": "bash"
          },
          {
            "code": "from openai import OpenAI\nimport os\n\nif not os.environ.get(\"AILOOT_API_KEY\", \"\").strip(): raise SystemExit(\"Set AILOOT_API_KEY before making a request\")\nclient=OpenAI(base_url=\"https://api.ailoot.ai/v1\",api_key=os.environ[\"AILOOT_API_KEY\"],max_retries=0)\nresult=client.chat.completions.create(model='qwen2.5-omni-7b',messages=[{\"role\":\"user\",\"content\":\"Explain observations and hypotheses in three sentences.\"}])\nimport base64, json\nfrom pathlib import Path\n\ndef save_result(data, stem=\"result\"):\n    # Keep every field, including usage, IDs, reasoning and tool requests.\n    Path(stem + \".json\").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding=\"utf-8\")\n    print(json.dumps(data, ensure_ascii=False, indent=2))\n    def save_blob(encoded, suffix, label):\n        raw = base64.b64decode(encoded, altchars=b\"-_\", validate=True)\n        ext = \"png\" if raw.startswith(b\"\\x89PNG\\r\\n\\x1a\\n\") else \"jpg\" if raw.startswith(b\"\\xff\\xd8\") else \"webp\" if raw[:4] == b\"RIFF\" and raw[8:12] == b\"WEBP\" else suffix\n        file = Path(stem + \"-\" + label + \".\" + ext)\n        file.write_bytes(raw)\n        print(\"Saved\", file)\n    for index, block in enumerate(data.get(\"content\") or []):\n        print(\"Content\", index, json.dumps(block, ensure_ascii=False))\n    for choice in data.get(\"choices\") or []:\n        print(\"Choice\", choice.get(\"index\"), json.dumps(choice.get(\"message\", choice.get(\"delta\", {})), ensure_ascii=False))\n    for index, item in enumerate(data.get(\"output\") or []):\n        print(\"Output\", index, json.dumps(item, ensure_ascii=False))\n        if item.get(\"type\") == \"image_generation_call\" and item.get(\"result\"):\n            save_blob(item[\"result\"], item.get(\"output_format\") or \"bin\", \"output-\" + str(index))\n    for ci, candidate in enumerate(data.get(\"candidates\") or []):\n        for pi, part in enumerate((candidate.get(\"content\") or {}).get(\"parts\") or []):\n            print(\"Candidate/part\", ci, pi, json.dumps(part, ensure_ascii=False))\n            blob = part.get(\"inlineData\") or part.get(\"inline_data\")\n            if blob and blob.get(\"data\"):\n                mime = blob.get(\"mimeType\") or blob.get(\"mime_type\")\n                suffix = {\"image/png\":\"png\", \"image/jpeg\":\"jpg\", \"image/webp\":\"webp\", \"audio/wav\":\"wav\", \"audio/mpeg\":\"mp3\", \"video/mp4\":\"mp4\"}.get(mime, \"bin\")\n                save_blob(blob[\"data\"], suffix, \"candidate-\" + str(ci) + \"-part-\" + str(pi))\n\nsave_result(result.to_dict(mode=\"json\"))\n",
            "label": "Python SDK · all choices",
            "language": "python"
          },
          {
            "code": "from openai import OpenAI\nimport os\nfrom pathlib import Path\n\nif not os.environ.get(\"AILOOT_API_KEY\", \"\").strip(): raise SystemExit(\"Set AILOOT_API_KEY before making a request\")\nclient=OpenAI(base_url=\"https://api.ailoot.ai/v1\",api_key=os.environ[\"AILOOT_API_KEY\"],max_retries=0)\nimport base64, json\nfrom pathlib import Path\n\ndef save_result(data, stem=\"result\"):\n    # Keep every field, including usage, IDs, reasoning and tool requests.\n    Path(stem + \".json\").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding=\"utf-8\")\n    print(json.dumps(data, ensure_ascii=False, indent=2))\n    def save_blob(encoded, suffix, label):\n        raw = base64.b64decode(encoded, altchars=b\"-_\", validate=True)\n        ext = \"png\" if raw.startswith(b\"\\x89PNG\\r\\n\\x1a\\n\") else \"jpg\" if raw.startswith(b\"\\xff\\xd8\") else \"webp\" if raw[:4] == b\"RIFF\" and raw[8:12] == b\"WEBP\" else suffix\n        file = Path(stem + \"-\" + label + \".\" + ext)\n        file.write_bytes(raw)\n        print(\"Saved\", file)\n    for index, block in enumerate(data.get(\"content\") or []):\n        print(\"Content\", index, json.dumps(block, ensure_ascii=False))\n    for choice in data.get(\"choices\") or []:\n        print(\"Choice\", choice.get(\"index\"), json.dumps(choice.get(\"message\", choice.get(\"delta\", {})), ensure_ascii=False))\n    for index, item in enumerate(data.get(\"output\") or []):\n        print(\"Output\", index, json.dumps(item, ensure_ascii=False))\n        if item.get(\"type\") == \"image_generation_call\" and item.get(\"result\"):\n            save_blob(item[\"result\"], item.get(\"output_format\") or \"bin\", \"output-\" + str(index))\n    for ci, candidate in enumerate(data.get(\"candidates\") or []):\n        for pi, part in enumerate((candidate.get(\"content\") or {}).get(\"parts\") or []):\n            print(\"Candidate/part\", ci, pi, json.dumps(part, ensure_ascii=False))\n            blob = part.get(\"inlineData\") or part.get(\"inline_data\")\n            if blob and blob.get(\"data\"):\n                mime = blob.get(\"mimeType\") or blob.get(\"mime_type\")\n                suffix = {\"image/png\":\"png\", \"image/jpeg\":\"jpg\", \"image/webp\":\"webp\", \"audio/wav\":\"wav\", \"audio/mpeg\":\"mp3\", \"video/mp4\":\"mp4\"}.get(mime, \"bin\")\n                save_blob(blob[\"data\"], suffix, \"candidate-\" + str(ci) + \"-part-\" + str(pi))\n\nwith client.chat.completions.stream(model='qwen2.5-omni-7b',messages=[{\"role\":\"user\",\"content\":\"Explain observations and hypotheses in three sentences.\"}]) as stream:\n    with Path(\"stream-events.jsonl\").open(\"w\",encoding=\"utf-8\") as log:\n        for event in stream:\n            payload=event.to_dict(mode=\"json\")\n            log.write(json.dumps(payload,ensure_ascii=False)+\"\\n\"); log.flush()\n            print(json.dumps(payload,ensure_ascii=False))\n    final=stream.get_final_completion()\n    save_result(final.to_dict(mode=\"json\"),\"stream-result\")\n",
            "label": "Python SDK streaming · all events",
            "language": "python"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "chat",
        "hints": [
          "Send exact model ID with messages.",
          "Context length is not an output cap.",
          "A text file may supply literal text; image/audio/file-object inputs need exact binding."
        ],
        "http": "POST",
        "in": 4.6,
        "input": [
          "text"
        ],
        "label": "OpenAI Chat",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": 13.8,
        "output": [
          "text"
        ],
        "path": "/v1/chat/completions",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "token",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": "0.0046000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000046",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.0138000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0000138",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "request_model_id": "qwen2.5-omni-7b",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [],
        "units": [
          {
            "amount": "0.0046000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000046",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0.0138000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.0000138",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      },
      {
        "available": null,
        "cache_read": 0,
        "cache_write": 0,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "authentication": {
              "api_key_source": "AILOOT_API_KEY",
              "headers": [
                "Authorization: Bearer",
                "x-api-key",
                "anthropic-version"
              ],
              "version_example": "2023-06-01"
            },
            "errors": [
              {
                "code": null,
                "condition": "Ogiltiga obligatoriska fält, ogiltig representation av underlaget eller ogiltigt parametervärde",
                "http_status": 400,
                "recovery": "Korrigera de angivna fälten före en ny begäran om att skapa.",
                "type": "invalid_request_error"
              }
            ],
            "example_body": {
              "max_tokens": 128,
              "messages": [
                {
                  "content": "Summarize the incident report.",
                  "role": "user"
                }
              ],
              "model": "qwen2.5-omni-7b",
              "stream": false
            },
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/messages"
              },
              "job_read": null,
              "mode": "synchronous_or_streamed",
              "unknown": "Behåll begärans/svarets ID:n och huvuden. Ingen generell URL för hämtning av textjobb tillhandahålls."
            },
            "material_combinations": [
              {
                "mode": "text",
                "representation": "sträng i messages[].content",
                "required_material": "UTF-8-text"
              }
            ],
            "operation_modes": [
              "synchronous_json",
              "streamed_SSE"
            ],
            "outputs": {
              "all_results": "Behåll alla innehållsblock, resonemangssignaturer och faktiska ID:n för verktygsanvändning. Sätt samman alla SSE-deltauppdateringar för blocken; ett första textblock är inte hela utdata.",
              "family": "protocol",
              "fields": [
                {
                  "description": null,
                  "name": "id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "model",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "content[]",
                  "type": "text|thinking|tool_use|other content block"
                },
                {
                  "description": null,
                  "name": "stop_reason",
                  "type": "string|null"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "JSON eller SSE"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "qwen2.5-omni-7b"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages",
                "required": true,
                "type": "message[]"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "user",
                  "assistant"
                ],
                "enum_known": true,
                "name": "messages[].role",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].content",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "max_tokens",
                "required": true,
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": false,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "name": "stream",
                "required": false,
                "type": "boolean"
              }
            ],
            "profile_binding": "Documented current stock Messages bridge; optional model capabilities are separate from this minimal text request.",
            "request_schema": {
              "additionalProperties": false,
              "properties": {
                "max_tokens": {
                  "minimum": 1,
                  "type": "integer"
                },
                "messages": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "content": {
                        "oneOf": [
                          {
                            "type": "string"
                          },
                          {
                            "items": {
                              "oneOf": [
                                {
                                  "properties": {
                                    "text": {
                                      "type": "string"
                                    },
                                    "type": {
                                      "const": "text"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "text"
                                  ],
                                  "type": "object"
                                },
                                {
                                  "properties": {
                                    "source": {
                                      "oneOf": [
                                        {
                                          "properties": {
                                            "type": {
                                              "const": "url"
                                            },
                                            "url": {
                                              "type": "string"
                                            }
                                          },
                                          "required": [
                                            "type",
                                            "url"
                                          ],
                                          "type": "object"
                                        },
                                        {
                                          "properties": {
                                            "data": {
                                              "type": "string"
                                            },
                                            "media_type": {
                                              "type": "string"
                                            },
                                            "type": {
                                              "const": "base64"
                                            }
                                          },
                                          "required": [
                                            "type",
                                            "media_type",
                                            "data"
                                          ],
                                          "type": "object"
                                        }
                                      ]
                                    },
                                    "type": {
                                      "const": "image"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "source"
                                  ],
                                  "type": "object"
                                }
                              ]
                            },
                            "type": "array"
                          }
                        ]
                      },
                      "role": {
                        "enum": [
                          "user",
                          "assistant"
                        ],
                        "type": "string"
                      }
                    },
                    "required": [
                      "role",
                      "content"
                    ],
                    "type": "object"
                  },
                  "minItems": 1,
                  "type": "array"
                },
                "model": {
                  "enum": [
                    "qwen2.5-omni-7b"
                  ],
                  "type": "string"
                },
                "stream": {
                  "default": false,
                  "type": "boolean"
                }
              },
              "required": [
                "model",
                "messages",
                "max_tokens"
              ],
              "type": "object"
            },
            "schema_template": {
              "max_tokens": 128,
              "messages": [
                {
                  "content": "Summarize the incident report.",
                  "role": "user"
                }
              ],
              "model": "qwen2.5-omni-7b",
              "stream": false
            },
            "unsupported": [
              "No query API key.",
              "Hosted/server-side tools and model-specific optional controls are not part of this minimal family example."
            ]
          },
          "input": {
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "optional_controls": [
              "stream"
            ],
            "required": [
              "model",
              "messages",
              "max_tokens"
            ],
            "text_file_material": "Läs det faktiska UTF-8-dokumentet och placera texten i det angivna input-fältet eller i strängen för meddelandets innehåll."
          },
          "lifecycle": {
            "create": {
              "http": "POST",
              "path": "/v1/messages"
            },
            "job_read": null,
            "mode": "synchronous_or_streamed",
            "unknown": "Keep request/response IDs and headers. No generic text job retrieval URL is supplied."
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/messages"
          },
          "output": {
            "all_results": "Keep all content blocks, thinking signatures and actual tool-use IDs. Assemble all SSE block deltas; a first text block is not the complete output.",
            "family": "protocol",
            "format": "JSON or SSE"
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Grundpriser för token",
            "units": [
              {
                "amount": "0.0046000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000046",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.0138000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0000138",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "{\n  \"model\": \"qwen2.5-omni-7b\",\n  \"max_tokens\": 128,\n  \"messages\": [\n    {\n      \"role\": \"user\",\n      \"content\": \"Summarize the incident report.\"\n    }\n  ],\n  \"stream\": false\n}",
            "label": "Complete minimal JSON body",
            "language": "json"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}\"\nexport AILOOT_TEXT_FILE\npython3 - <<'PY_REQUEST'\nimport json, os\nfrom pathlib import Path\n\nsource_file = Path(os.environ['AILOOT_TEXT_FILE'])\nif not source_file.is_file():\n    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')\ntext = source_file.read_text(encoding='utf-8')\nif not text.strip():\n    raise SystemExit('Choose a document containing text')\npayload = {'model': 'qwen2.5-omni-7b', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}\npayload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\\n\\n' + text\nPath('request.json').write_text(json.dumps(payload, ensure_ascii=False), encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \\\n  -H \"x-api-key: $AILOOT_API_KEY\" -H 'anthropic-version: 2023-06-01' -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\n\nresult = json.loads(Path('result.json').read_text(encoding='utf-8'))\nprint(json.dumps(result, ensure_ascii=False, indent=2))\nPY_RESULT\n",
            "label": "curl · use your UTF-8 document",
            "language": "bash"
          },
          {
            "code": "import json, os\nfrom pathlib import Path\n\nsource_file = Path(os.environ['AILOOT_TEXT_FILE'])\nif not source_file.is_file():\n    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')\ntext = source_file.read_text(encoding='utf-8')\nif not text.strip():\n    raise SystemExit('Choose a document containing text')\npayload = {'model': 'qwen2.5-omni-7b', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}\npayload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\\n\\n' + text\nfrom urllib.request import Request, urlopen\nfrom urllib.error import HTTPError\n\napi_key = os.environ['AILOOT_API_KEY']\nif not api_key.strip():\n    raise SystemExit('Set AILOOT_API_KEY before making a request')\nheaders = {'x-api-key': 'PLACEHOLDER_KEY', 'anthropic-version': '2023-06-01', 'Content-Type': 'application/json'}\nheaders['x-api-key'] = api_key\nrequest = Request('https://api.ailoot.ai/v1/messages', data=json.dumps(payload, ensure_ascii=False).encode('utf-8'), headers=headers, method='POST')\ntry:\n    with urlopen(request, timeout=120) as response:\n        raw = response.read()\n        Path('response-headers.txt').write_text(str(response.headers), encoding='utf-8')\nexcept HTTPError as error:\n    Path('result.json').write_bytes(error.read())\n    Path('response-headers.txt').write_text(str(error.headers), encoding='utf-8')\n    raise\nPath('result.json').write_bytes(raw)\nimport json\nfrom pathlib import Path\n\nresult = json.loads(Path('result.json').read_text(encoding='utf-8'))\nprint(json.dumps(result, ensure_ascii=False, indent=2))\n",
            "label": "Python · save the complete result",
            "language": "python"
          }
        ],
        "family": "anthropic",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "messages",
        "http": "POST",
        "in": 4.6,
        "input": [
          "text"
        ],
        "label": "Anthropic Messages",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": 13.8,
        "output": [
          "json",
          "sse"
        ],
        "path": "/v1/messages",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "token",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": "0.0046000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000046",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.0138000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0000138",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "request_model_id": "qwen2.5-omni-7b",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [],
        "units": [
          {
            "amount": "0.0046000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000046",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0.0138000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.0000138",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "qwen2.5-omni-7b",
        "request_model_id": "qwen2.5-omni-7b",
        "route_label": "Ultra"
      }
    ],
    "name": "qwen2.5-omni-7b",
    "price": {
      "in": 4.6,
      "in_label": null,
      "out": 13.8,
      "out_label": null,
      "scope_label": "Token rates",
      "sort_in": 4.6,
      "sort_out": 13.8,
      "varies": false
    },
    "pricing_profiles": [
      {
        "dimensions": {
          "regime": "base"
        },
        "label": "OpenAI Chat · Base token rates",
        "units": [
          {
            "amount": "0.0046000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000046",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0.0138000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.0000138",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      },
      {
        "dimensions": {
          "regime": "base"
        },
        "label": "Anthropic Messages · Base token rates",
        "units": [
          {
            "amount": "0.0046000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000046",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0.0138000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.0000138",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      }
    ],
    "public_id": "qwen2.5-omni-7b",
    "short": "Qwen2.5-Omni-7B kombinerar förståelse av text, bilder, ljud och video med textutdata och naturligt tal. Dess Thinker-Talker-arkitektur tidsanpassar ljud till video, stöder strömmad interaktion och erbjuder två dokumenterade röster i exakt denna öppna kontrollpunkt."
  },
  "renderer_schema": {
    "method_order": "Original DTO methods order; every exact route/format/path/caller survives.",
    "prices": "Original public DTO fields and original native display HTML; no flattened or normalized offers."
  },
  "representation": "exact-public-dto-and-native-renderer-html",
  "representationNotes": {
    "current_reference": {
      "about_json_pointer": "/aboutHtml",
      "methods": [
        {
          "contract_json_pointer": "/methods/0/rawMethod/contract",
          "html_json_pointer": "/methods/0/html",
          "method_ordinal": 0
        },
        {
          "contract_json_pointer": "/methods/1/rawMethod/contract",
          "html_json_pointer": "/methods/1/html",
          "method_ordinal": 1
        }
      ],
      "role": "current-semantic-reference"
    },
    "raw_input": {
      "examples_role": "historical-input-not-current-ready-examples",
      "json_pointers": [
        "/rawModel",
        "/methods/0/rawMethod",
        "/methods/1/rawMethod"
      ],
      "role": "historical-owner-input"
    },
    "schema": "ailoot-native-model-representations-v1"
  },
  "schema": "ailoot-static-model-facts-v1",
  "schema_version": 1,
  "shortText": "Qwen2.5-Omni-7B kombinerar förståelse av text, bilder, ljud och video med textutdata och naturligt tal. Dess Thinker-Talker-arkitektur tidsanpassar ljud till video, stöder strömmad interaktion och erbjuder två dokumenterade röster i exakt denna öppna kontrollpunkt.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "333a6af01a981801f0cef98591e0be81e78ce19447c3bcec76b5a5ae03b4f150",
    "renderer_sha256": "8a45bb31b83d2551e6d975cf4683518c7cb445a54b9394a01947f4dd103f1051"
  },
  "sourceRevision": "2ca97a5b13d22c641b2d095abec08178bb53b18c6cfcf7c4b60957f4a3de5d68"
}
