modelli

qwen2.5-omni-7b

Markdown · JSON

qwen2.5-omni-7b

Qwen2.5-Omni-7B combina la comprensione di testo, immagini, audio e video con output testuale e parlato naturale. La sua architettura Thinker-Talker allinea l’audio ai tempi del video, supporta l’interazione in streaming e offre due voci documentate in questo specifico checkpoint aperto.

Informazioni sul modello

Questa descrizione illustra le funzionalità del modello. Gli input, gli output e le opzioni disponibili in Ailoot per il metodo selezionato sono elencati di seguito.

Panoramica: un modello per più modalità di input

Qwen2.5-Omni-7B è il modello multimodale end-to-end di Qwen per testo, immagini, audio e video. Può comprendere questi input insieme e generare testo con parlato naturale in un flusso in streaming. Utilizzarlo quando un’attività dipende sia da ciò che è visibile sia da ciò che è udibile, oppure quando l’utente impartisce l’istruzione a voce anziché digitandola. Questo è lo specifico checkpoint 7B; Omni-Turbo commerciale e le successive versioni Omni hanno contratti propri.

Funzionalità principali e architettura

Il design Thinker-Talker combina comprensione e generazione del parlato. Thinker elabora l’attività multimodale e produce contenuti testuali, mentre Talker partecipa alla formazione della risposta parlata. TMRoPE, lo schema posizionale multimodale del produttore allineato nel tempo, sincronizza i timestamp video con l’audio. L’architettura è progettata per input a blocchi e interazione vocale o video reattiva; questo obiettivo progettuale non costituisce una garanzia di tempi di risposta fissi per ogni interfaccia.

Le attività coperte dal produttore includono riconoscimento vocale, traduzione del parlato, comprensione audio, ragionamento sulle immagini, comprensione video e generazione del parlato. Le istruzioni vocali possono quindi partecipare direttamente a una domanda multimodale anziché richiedere sempre una trascrizione digitata separata. Mantenere chiaro l’obiettivo: comprendere una clip audio, rispondere a una domanda parlata e generare una risposta parlata sono usi distinti, anche se il modello supporta tutte le relative forme di input o output.

Preparare una conversazione multimodale

Fornire i media pertinenti e indicare come la risposta debba collegarli. Per una dimostrazione narrata, chiedere al modello di distinguere i passaggi visibili dalla spiegazione del parlante e di identificare dove coincidono. Per un’immagine con una domanda audio, identificare il ruolo dell’immagine e richiedere una risposta concisa fondata sul contenuto visibile. Per un estratto solo audio, specificare se l’obiettivo sia riconoscere il parlato, spiegare i suoni o rispondere a una domanda sul contenuto. Sono applicazioni redazionali delle attività documentate.

Gli esempi del produttore mostrano conversazioni solo testuali, solo audio, solo video e con media misti. Preservare l’ordine e i tempi originali di un video. Etichettare gli elementi separati affinché il modello possa riferirsi a essi senza trattare evidenze non correlate come un singolo evento. Il risultato può essere solo testo oppure testo con parlato; scegliere l’artefatto utile prima di preparare la richiesta.

Preparare l’output vocale

La procedura del checkpoint Qwen richiede il prompt di sistema documentato per le capacità audio quando serve output vocale. Il prompt identifica Qwen e le sue capacità uditive, visive, testuali e vocali; una sostituzione non pertinente può impedire il comportamento audio atteso. Sono indicazioni per il flusso del checkpoint del produttore, non un’affermazione che ogni applicazione esponga controlli sul prompt di sistema o sulla generazione audio.

Lo specifico checkpoint offre due voci: Chelsie, una voce femminile calda, ed Ethan, una voce maschile vivace. Chelsie è la voce predefinita documentata quando non viene selezionato un parlante. L’esempio di generazione scrive il parlato a una frequenza di campionamento di 24,000 Hz. Queste due voci non vanno sostituite con la descrizione a quattro voci di un modello commerciale con un nome distinto.

Usare l’audio del video

La traccia audio di un video può essere pertinente al suo significato, come istruzioni parlate o un suono prodotto da un’azione visibile. Qwen espone use_audio_in_video nella preparazione dei media, nell’elaborazione e nella generazione. L’impostazione deve restare coerente in tutte e tre le fasi e durante una conversazione su più turni; impostazioni incoerenti possono produrre risultati inattesi. Un’interpretazione solo visiva del video è quindi diversa da un’interpretazione audiovisiva, anche quando il file è lo stesso.

Output solo testuale e batch

Il produttore supporta l’output solo testuale impostando return_audio=False. Consente inoltre di disabilitare Talker dopo il caricamento, riducendo la memoria GPU di circa 2 GB, ma rendendo indisponibile l’output audio in quell’istanza. L’esempio documentato di batch con campioni misti richiede return_audio=False e combina richieste di testo, immagini, audio e video. Tale esempio di batch non deve essere trasformato in un’affermazione sulla generazione vocale in batch.

Contesto e limiti sostanziali

La configurazione della componente testuale del checkpoint imposta il massimo delle posizioni a 32,768. Testo, media rappresentati e risposte generate consumano spazio nella sequenza; questo valore non definisce autonomamente una durata universale di audio o video. Gli esempi di risorse del produttore mostrano che video più lunghi richiedono molta più memoria, quindi una clip breve e pertinente è spesso più pratica di una registrazione grande e non correlata. Gli esempi non pubblicano una lunghezza massima rigida separata della risposta né una durata dei media universalmente garantita.

Verificare citazioni del parlato e conclusioni rispetto alla fonte, conservare dettaglio visivo sufficiente per la domanda e mantenere un risultato testuale quando chi revisiona deve esaminare la spiegazione parlata. Il valore documentato del modello è la comprensione congiunta e la risposta testuale/vocale, mentre controlli vocali esatti, elaborazione dei media e consegna dell’output restano funzionalità dell’interfaccia scelta.

Caso pratico

Caso pratico

Esempio tecnico in inglese

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.

Risultato atteso

A source-linked sequence comparison and one targeted clarification question.

Verificare il risultato

The answer must preserve the opposing event order and avoid inventing a resolution.
Ailoot Ultra · OpenAI Chat POST /v1/chat/completions qwen2.5-omni-7b

qwen2.5-omni-7b

Alibaba /qwen2.5-omni-7b

Introduzione

Qwen2.5-Omni-7B combina la comprensione di testo, immagini, audio e video con output testuale e parlato naturale. La sua architettura Thinker-Talker allinea l’audio ai tempi del video, supporta l’interazione in streaming e offre due voci documentate in questo specifico checkpoint aperto.

Input accettati
Testo
Risultati
Testo

Disponibile in Ailoot · input e metodi

Ailoot Ultra · OpenAI Chat POST /v1/chat/completions
Tipi di input
text
Tipi di output
text
Formato di output
json o SSE
CampoTipoRequisitoValori e limitiPredefinito
CampomodelTipostringRequisitoObbligatorioValori e limiti
qwen2.5-omni-7b
Predefinito—
CampomessagesTipomessage[]RequisitoObbligatorioValori e limiti
Numero minimo di elementi: 1
Predefinito—
Campomessages[].roleTipostringRequisitoObbligatorioValori e limiti
Esempi: system, user, assistant, tool, function
Condizioni: Questi ruoli sono rappresentati esplicitamente dai tipi di compatibilità del codice sorgente; l’insieme esatto dei ruoli rimane specifico del modello.
Dipende dal modello
Predefinito—
Campomessages[].contentTipostring|content_part[]|nullRequisitoFacoltativoValori e limitiPredefinito—
Campomessages[].tool_callsTipotool_call[]RequisitoFacoltativoValori e limitiPredefinito—
Campomessages[].tool_call_idTipostringRequisitoFacoltativoValori e limiti
Si applica quando: role=tool; usa l’ID effettivamente restituito
Predefinito—
Campomessages[].nameTipostringRequisitoFacoltativoValori e limitiPredefinito—
Campomessages[].reasoning_contentTipostringRequisitoFacoltativoValori e limiti
Si applica quando: Reinserisci il ragionamento effettivamente restituito quando il modello lo utilizza
Predefinito—
Campomessages[].reasoning_detailsTipoobject|arrayRequisitoFacoltativoValori e limiti
Dipende dal modello
Predefinito—
Campomax_tokensTipointegerRequisitoFacoltativoValori e limiti
Minimo: 1
Dipende dal modello
Predefinito—
Campomax_completion_tokensTipointegerRequisitoFacoltativoValori e limiti
Minimo: 1
Dipende dal modello
Predefinito—
CampostreamTipobooleanRequisitoFacoltativoValori e limitiPredefinitofalse
Campostream_options.include_usageTipobooleanRequisitoFacoltativoValori e limiti
Dipende dal modello
Predefinito—
CampotemperatureTiponumberRequisitoFacoltativoValori e limiti
Dipende dal modello
Predefinito—
Campotop_pTiponumberRequisitoFacoltativoValori e limiti
Dipende dal modello
Predefinito—
CampostopTipostring|string[]RequisitoFacoltativoValori e limiti
Dipende dal modello
Predefinito—
CampotoolsTipofunction_tool[]RequisitoFacoltativoValori e limiti
Dipende dal modello
Predefinito—
Campotools[].typeTipostringRequisitoFacoltativoValori e limiti
function
Dipende dal modello
Predefinito—
Campotools[].function.nameTipostringRequisitoObbligatorioValori e limiti
Si applica quando: Funzione fornita come strumento
Predefinito—
Campotools[].function.descriptionTipostringRequisitoFacoltativoValori e limitiPredefinito—
Campotools[].function.parametersTipoJSON_schemaRequisitoFacoltativoValori e limitiPredefinito—
Campotool_choiceTipostring|objectRequisitoFacoltativoValori e limiti
Dipende dal modello
Predefinito—
Campoparallel_tool_callsTipobooleanRequisitoFacoltativoValori e limiti
Dipende dal modello
Predefinito—
Camporesponse_formatTipoobjectRequisitoFacoltativoValori e limiti
Dipende dal modello
Predefinito—
Camporeasoning_effortTipostringRequisitoFacoltativoValori e limiti
Dipende dal modello
Predefinito—
CamporeasoningTipoobjectRequisitoFacoltativoValori e limiti
Dipende dal modello
Predefinito—
Camposervice_tierTipostringRequisitoFacoltativoValori e limiti
Dipende dal modello
Predefinito—
CampoinstructionsTipostringRequisitoFacoltativoValori e limiti
Campo di compatibilità
Predefinito—
CampofunctionsTipofunction[]RequisitoFacoltativoValori e limiti
Dipende dal modello
Predefinito—
Campofunction_callTipostring|objectRequisitoFacoltativoValori e limiti
Dipende dal modello
Predefinito—
Campoprompt_cache_optionsTipoobjectRequisitoFacoltativoValori e limiti
Dipende dal modello
Predefinito—
CampomodalitiesTipostring[]RequisitoFacoltativoValori e limiti
text
Predefinito—
CampoproviderTipoobjectRequisitoFacoltativoValori e limiti
Condizioni: provider.options viene rifiutato su questa rotta testuale Ultra
Predefinito—
Campocache_control.ttlTipostringRequisitoFacoltativoValori e limiti
Condizioni: 1h viene rifiutato nelle posizioni effettive della cache dei prompt
Predefinito—
Combinazioni di materiali in input

Testo · Testo UTF8

messages[].content

Parametri e ciclo di vita del metodo
ParametroContratto
Parametrocontent_typeContrattoapplication/json
ParametrorequiredContrattomodel, messages
Parametromaterial_typesContrattotext
ParametromessagesContrattoArray di messaggi con struttura role/content
Parametrofile_materialContrattoDocumento UTF-8 effettivo inserito come testo letterale; nessun ID di file dedotto
Parametrooptional_controlsContrattostream, temperature, top_p, stop, max_tokens, max_completion_tokens, reasoning, response_format, tools, tool_choice
Parametrocontrol_scopeContrattoSpecifico del modello; gli strumenti di funzione dell’utente differiscono dagli strumenti ospitati
Parametrooutput_modalitiesContrattotext
Parametrohosted_operationsContrattofalse
Parametromultimodal_input_bindingContrattonull

Ciclo di vita: synchronous_or_streamed

Invia l’ID esatto del modello con messages.

La lunghezza del contesto non è un limite di uscita.

Un file di testo può fornire testo letterale; gli ingressi immagine/audio/oggetto file richiedono un’associazione esatta.

Tariffe

Le tariffe non aggiungono opzioni alla richiesta. I parametri supportati sono elencati nel metodo selezionato.

Modalità rapida
Non specificato Quando è selezionata la modalità rapida
Modalità flex
Non specificato Quando è selezionata la modalità flex
Sforzo massimo di ragionamento
Non specificato Quando lo sforzo massimo di ragionamento usa l'adeguamento predefinito (default)

Tariffe Ailoot

Prezzi per configurazione

ConfigurazioneListino delle tariffeCosto
ConfigurazioneTariffe di base dei tokenListino delle tariffeTariffa baseCosto
Input · Token in input $0.0046 / 1K token
Output · Token in output $0.0138 / 1K token
Input · Lettura dalla cache $0 / 1K token
Input · Scrittura nella cache $0 / 1K token
Input · Scrittura nella cache, 1 ora — / 1K token

Ailoot prenota un importo stimato prima di una richiesta. Dopo il risultato, addebita il costo finale in base all’utilizzo misurato. Per lo streaming, l’addebito usa il record finale di utilizzo. Come funzionano la prenotazione e l’addebito finale →

Esempi di richieste

Ailoot Ultra · OpenAI Chat

curlPython SDKStreaming Python
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "qwen2.5-omni-7b", "messages": [{"role": "user", "content": "Explain the difference between an observation and a hypothesis in three sentences."}]}')

Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path("result.json").read_text())
for x in r.get("choices",[]):
    if x.get("message",{}).get("content"): print(x["message"]["content"])
PY_RESULT
from openai import OpenAI
import os

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
result=client.chat.completions.create(model='qwen2.5-omni-7b',messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}])
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(result.to_dict(mode="json"))
from openai import OpenAI
import os
from pathlib import Path

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

with client.chat.completions.stream(model='qwen2.5-omni-7b',messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}]) as stream:
    with Path("stream-events.jsonl").open("w",encoding="utf-8") as log:
        for event in stream:
            payload=event.to_dict(mode="json")
            log.write(json.dumps(payload,ensure_ascii=False)+"\n"); log.flush()
            print(json.dumps(payload,ensure_ascii=False))
    final=stream.get_final_completion()
    save_result(final.to_dict(mode="json"),"stream-result")

Ricevi e salva i risultati

Ailoot Ultra · OpenAI Chat

json o SSE

Conserva tutti i risultati completati

Conserva ogni risposta, file e parte di contenuto restituiti per intero.

Conserva ogni scelta con contenuto, chiamate agli strumenti e ragionamento. In SSE assembla i delta per indice di scelta e strumento e conserva il motivo finale di completamento e i dati di utilizzo.

Se occorre verificare la risposta originale

Conserva gli ID e le intestazioni di richiesta/risposta. Non viene fornito alcun URL generico per recuperare un’attività testuale.

Campi della risposta
CampoTipo
Campochoices[].indexTipointeger
Campochoices[].message.contentTipostring|null
Campochoices[].message.tool_callsTipotool_call[]
Campochoices[].message.reasoning_contentTipostring
Campochoices[].message.reasoning_detailsTipoobject|array
Campochoices[].finish_reasonTipostring|null
CampousageTipoobject
Errori e passaggi successivi
RispostaCondizionePassaggio successivo
Risposta400 · invalid_request_errorCondizioneCampi obbligatori, rappresentazione del materiale o valore del parametro non validiPassaggio successivoCorreggi i campi indicati prima di una nuova richiesta di creazione.

Alias

Alias del modello

Ailoot Ultra qwen2.5-omni-7b

Alias dei percorsi dei metodi

Usa i percorsi dei metodi indicati sopra.

ID di chiamata correlati

qwen2.5-omni-7b

Ailoot Ultra · Anthropic Messages POST /v1/messages qwen2.5-omni-7b

qwen2.5-omni-7b

Alibaba /qwen2.5-omni-7b

Introduzione

Qwen2.5-Omni-7B combina la comprensione di testo, immagini, audio e video con output testuale e parlato naturale. La sua architettura Thinker-Talker allinea l’audio ai tempi del video, supporta l’interazione in streaming e offre due voci documentate in questo specifico checkpoint aperto.

Input accettati
Testo
Risultati
json · sse

Disponibile in Ailoot · input e metodi

Ailoot Ultra · Anthropic Messages POST /v1/messages
Tipi di input
text
Tipi di output
json, sse
Formato di output
JSON o SSE
CampoTipoRequisitoValori e limitiPredefinito
CampomodelTipostringRequisitoObbligatorioValori e limiti
qwen2.5-omni-7b
Predefinito—
CampomessagesTipomessage[]RequisitoObbligatorioValori e limitiPredefinito—
Campomessages[].roleTipostringRequisitoObbligatorioValori e limiti
user, assistant
Predefinito—
Campomessages[].contentTipostringRequisitoObbligatorioValori e limitiPredefinito—
Campomax_tokensTipointegerRequisitoObbligatorioValori e limitiPredefinito—
CampostreamTipobooleanRequisitoFacoltativoValori e limitiPredefinitofalse
Combinazioni di materiali in input

Testo · Testo UTF-8

Stringa messages[].content

Parametri e ciclo di vita del metodo
ParametroContratto
Parametrocontent_typeContrattoapplication/json
ParametrorequiredContrattomodel, messages, max_tokens
Parametrooptional_controlsContrattostream
Parametromaterial_typesContrattotext
Parametrotext_file_materialContrattoLeggi il documento UTF-8 effettivo e inserisci il testo nell’ingresso indicato o nella stringa del contenuto del messaggio.

Ciclo di vita: synchronous_or_streamed

Tariffe

Le tariffe non aggiungono opzioni alla richiesta. I parametri supportati sono elencati nel metodo selezionato.

Modalità rapida
Non specificato Quando è selezionata la modalità rapida
Modalità flex
Non specificato Quando è selezionata la modalità flex
Sforzo massimo di ragionamento
Non specificato Quando lo sforzo massimo di ragionamento usa l'adeguamento predefinito (default)

Tariffe Ailoot

Prezzi per configurazione

ConfigurazioneListino delle tariffeCosto
ConfigurazioneTariffe di base dei tokenListino delle tariffeTariffa baseCosto
Input · Token in input $0.0046 / 1K token
Output · Token in output $0.0138 / 1K token
Input · Lettura dalla cache $0 / 1K token
Input · Scrittura nella cache $0 / 1K token
Input · Scrittura nella cache, 1 ora — / 1K token

Ailoot prenota un importo stimato prima di una richiesta. Dopo il risultato, addebita il costo finale in base all’utilizzo misurato. Per lo streaming, l’addebito usa il record finale di utilizzo. Come funzionano la prenotazione e l’addebito finale →

Esempi di richieste

Ailoot Ultra · Anthropic Messages

Corpo JSON minimo completocurl · usa il tuo documento UTF-8Python · salva il risultato completo
{
  "model": "qwen2.5-omni-7b",
  "max_tokens": 128,
  "messages": [
    {
      "role": "user",
      "content": "Summarize the incident report."
    }
  ],
  "stream": false
}
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': 'qwen2.5-omni-7b', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
Path('request.json').write_text(json.dumps(payload, ensure_ascii=False), encoding='utf-8')
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \
  -H "x-api-key: $AILOOT_API_KEY" -H 'anthropic-version: 2023-06-01' -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))
PY_RESULT
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': 'qwen2.5-omni-7b', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
from urllib.request import Request, urlopen
from urllib.error import HTTPError

api_key = os.environ['AILOOT_API_KEY']
if not api_key.strip():
    raise SystemExit('Set AILOOT_API_KEY before making a request')
headers = {'x-api-key': 'PLACEHOLDER_KEY', 'anthropic-version': '2023-06-01', 'Content-Type': 'application/json'}
headers['x-api-key'] = api_key
request = Request('https://api.ailoot.ai/v1/messages', data=json.dumps(payload, ensure_ascii=False).encode('utf-8'), headers=headers, method='POST')
try:
    with urlopen(request, timeout=120) as response:
        raw = response.read()
        Path('response-headers.txt').write_text(str(response.headers), encoding='utf-8')
except HTTPError as error:
    Path('result.json').write_bytes(error.read())
    Path('response-headers.txt').write_text(str(error.headers), encoding='utf-8')
    raise
Path('result.json').write_bytes(raw)
import json
from pathlib import Path

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))

Ricevi e salva i risultati

Ailoot Ultra · Anthropic Messages

JSON o SSE

Conserva tutti i risultati completati

Conserva ogni risposta, file e parte di contenuto restituiti per intero.

Conserva tutti i blocchi di contenuto, le firme di ragionamento e gli ID effettivi di utilizzo degli strumenti. Assembla tutti i delta dei blocchi SSE; il primo blocco di testo non è l’uscita completa.

Se occorre verificare la risposta originale

Conserva gli ID e le intestazioni di richiesta/risposta. Non viene fornito alcun URL generico per recuperare un’attività testuale.

Campi della risposta
CampoTipo
CampoidTipostring
CampomodelTipostring
Campocontent[]Tipotext|thinking|tool_use|other content block
Campostop_reasonTipostring|null
CampousageTipoobject
Errori e passaggi successivi
RispostaCondizionePassaggio successivo
Risposta400 · invalid_request_errorCondizioneCampi obbligatori, rappresentazione del materiale o valore del parametro non validiPassaggio successivoCorreggi i campi indicati prima di una nuova richiesta di creazione.

Alias

Alias del modello

Ailoot Ultra qwen2.5-omni-7b

Alias dei percorsi dei metodi

Usa i percorsi dei metodi indicati sopra.

ID di chiamata correlati

qwen2.5-omni-7b

FAQ · qwen2.5-omni-7b
Quali input e risultati sono disponibili?

POST /v1/chat/completions · qwen2.5-omni-7b: text → text

POST /v1/messages · qwen2.5-omni-7b: text → json, sse

Quali campi usa la richiesta?

POST /v1/chat/completions · qwen2.5-omni-7b: model, messages, stream, modalities, provider

POST /v1/messages · qwen2.5-omni-7b: model, messages, max_tokens, stream

Quali limiti si applicano?

POST /v1/chat/completions · qwen2.5-omni-7b: messages.min_items: 1

Maggiori dettagli

Collega Ailoot a Claude Code, OpenCode, Hermes o alla tua applicazione.

L’azienda e il suo portafoglio di progetti

L’azienda e il suo portafoglio di progetti: milioni di clienti; vendite nell’ordine dei miliardi ogni mese.

Acquista token con uno sconto.

Sconto con abbonamento per lavoro regolare. Codici fino al 50% sull’acquisto di token.

Abbonamento
Scegli un piano scontato per richieste regolari.
Codice fino al 50%
Inserisci il codice all’acquisto. Il prezzo si aggiorna secondo la promozione.
Spese nella cronologia
Modello, token e importo sono salvati per ogni richiesta.

Scegli abbonamento · Consulta prezzi dei modelli

Collega l’API al prodotto che vendi.

SaaS, app e bot secondo offerta e accordo di licenza Ailoot. Per rivendere, richiedi una licenza reseller.

Applicazione commerciale
Integra generazione di testo, immagini, video e suono nelle funzioni a pagamento.
Licenza reseller
Invia descrizione del progetto e schema di accesso. Richiedi condizioni scritte per uso e rivendita.
Documenti sul sito
Offerta, accordo di licenza e politica sui dati sono disponibili prima della connessione.

Richiedi licenza reseller · Offerta e accordo di licenza