Qwen2-VL-7B-Instruct-ultra
Qwen2-VL-7B-Instruct er Qwens instruktionsjusterede billed-sprogmodel til tekst, billeder og video med tekst som output. Brug den til at stille spørgsmål om dokumentsider, sammenligne billeder eller beskrive visuelle begivenheder med dynamisk billedopløsning og dokumenterede begrænsninger i optælling, rumligt ræsonnement og forståelse af lyd i video.
- Ailoot Ultra · OpenAI Chat
POST /v1/chat/completionsQwen2-VL-7B-Instruct-ultra - Ailoot Ultra · Anthropic Messages
POST /v1/messagesQwen2-VL-7B-Instruct-ultra
Om modellen
Denne beskrivelse dækker modellens funktioner. Tilgængelige input, output og indstillinger i Ailoot står nedenfor for den valgte metode.
Introduktion: billed-sprogudgaven med 7 milliarder parametre
Qwen2-VL-7B-Instruct er det instruktionsjusterede medlem af Qwen2-VL med 7 milliarder parametre. Den kombinerer tekstinstruktioner med billeder eller video og producerer tekstsvar. Nyttige output omfatter en forklaring af en side, en sammenligning af billeder, en beskrivelse af synlige begivenheder eller et svar på et spørgsmål om et diagram. Den er fortsat denne præcise Qwen2-VL-udgivelse; nyere Qwen2.5-VL- og Qwen3-VL-checkpoints har deres egne funktioner og identiteter.
Hvad Qwen2-VL tilføjer
Qwen beskriver visuel forståelse på tværs af forskellige billedopløsninger og billedformater samt besvarelse af spørgsmål om video, dialog og indholdsskabelse. Familiens dokumenterede videofunktion omfatter materiale på mere end 20 minutter. Varigheden alene fastslår ikke, hvor mange billeder en applikation behandler, eller garanterer, at alle begivenheder huskes. Flersproget billed- og tekstforståelse omfatter engelsk og kinesisk, mange europæiske sprog, japansk, koreansk, arabisk og vietnamesisk.
Producenten beskriver også integration med telefoner, robotter og andre enheder gennem visuelle observationer og tekstinstruktioner. Det er en applikationsarbejdsgang: Modellen fortolker det visuelle miljø og hjælper med at vælge handlinger, mens tilsluttet software eller hardware udfører dem. Genkendelse af en skærm giver den ikke i sig selv kontrol over skærmen.
Arkitekturændringer
Dynamisk opløsning omdanner et billede til et variabelt antal visuelle tokens i stedet for at tvinge alle input ind i samme repræsentation. M-ROPE adskiller positionsoplysninger for tekst, todimensionelle billeder og tredimensionelle videooplysninger og kombinerer rumlig og tidslig struktur. Den offentliggjorte 7B-konfiguration angiver 32.768 positioner. Tekst, visuelle tokens og genereret output deler det begrænsede sekvensbudget, så billedopløsning og videosampling påvirker mængden af materiale, en anmodning kan indeholde.
Forberedelse af billeder og samtaler
De officielle eksempler understøtter ét billede, flere billeder og samtaler med kun tekst. Vedhæft billedet med et specifikt spørgsmål i stedet for at stole på en bred instruktion som “analysér alt”. Ved en dokumentside skal du bede om navngivne felter og bevare tegnsætningen i citater. Ved to skærmbilleder af et design skal du mærke dem som det første og det andet og derefter bede om en tabel over synlige ændringer. Ved et diagram skal du bede om etiketter, enheder og de værdier, der underbygger en angivet tendens. Det er praktiske anvendelser af besvarelse af visuelle spørgsmål og ikke løfter om fejlfri udtrækning.
Producentens hjælpeværktøjer accepterer billeder fra lokale filer, kodede billeddata eller billedplaceringer; det dokumenterede videoeksempel bruger lokale videofiler eller en ordnet billedliste. Applikationens uploadformater er fortsat en særskilt grænsefladebeslutning. Bevar den oprindelige billedrækkefølge, og angiv det tidsinterval, en billedliste repræsenterer. Eksemplerne genererer tekst; dette checkpoint beskrives ikke som en billed- eller videogenerator.
Opløsning og videoforberedelse
Qwens processor bruger et standardinterval på fire til 16.384 visuelle tokens pr. billede. Den tilbyder min_pixels og max_pixels til at afveje detaljer mod hukommelse og beregning med et dokumenteret eksempel rettet mod 256–1.280 visuelle tokens. Billeder skaleres inden for de valgte grænser, mens billedformatet bevares. Udtrykkeligt angivne skalerede dimensioner afrundes til et multiplum af 28. En tæt tabel eller lille skrift kan kræve tilstrækkelig opløsning for at forblive læsbar; højere opløsning bruger også mere af det tilgængelige budget til visuelt indhold og kontekst.
Videoeksemplet viser en samplingfrekvens på ét billede pr. sekund og en indstillelig pixelgrænse. Det er eksempelindstillinger og ikke en universelt påkrævet frekvens eller hård mediegrænse. Ved en begivenhedsgennemgang skal du levere det relevante klip og bede om en ordnet beskrivelse af synlige ændringer. Tætliggende begivenheder kan kræve finere sampling end en bred sceneopsummering. Qwen2-VL forstår ikke lydoplysninger i videoer, så talt dialog eller lydeffekter kræver en særskilt lydarbejdsgang.
Kendte begrænsninger
Qwen angiver juni 2023 som skæringsdato for billedtræningsdata uden garanti for viden om senere personer, produkter eller begivenheder. Genkendelse af bestemte personer og immaterielle værker er ufuldstændig. Komplekse instruktioner i flere trin, optælling af objekter i tætpakkede scener og rumlige forhold, især i tre dimensioner, er dokumenterede svagheder. Opdel en kompliceret visuel opgave i tydelige spørgsmål, bed om det synlige grundlag for resultatet, og kontrollér udtrukne tal og citeret tekst mod billedet. En plausibel billedtekst bør ikke behandles som en præcis optælling eller en målt tredimensionel placering.
Modelkortets korte genereringseksempler fastlægger ikke en særskilt hård outputgrænse. Planlæg svarstørrelsen sammen med tekst og visuelt input, og bevar nok detaljer i kilden til det konkrete spørgsmål. Det gør modelvalg og inputforberedelse mere nyttige end at antage, at ethvert billede eller enhver lang video giver et lige pålideligt svar.
Praktisk opgave
Praktisk opgave
Teknisk eksempel på engelsk
Compare transcribed dashboard changes
Compare these dashboard descriptions supplied as text. First: heading 'Orders', filter 'All dates', total 240. Second: heading 'Orders', filter 'This week', total 38. Return a table of changed and unchanged fields, then explain why the totals alone do not establish a fall in orders. Use only the descriptions and keep the filter labels exact.Forventet resultat
A field-comparison table and a short explanation of the different date scopes.Kontrollér resultatet
The result does not treat totals from All dates and This week as comparable periods.Ailoot Ultra · OpenAI Chat POST /v1/chat/completions Qwen2-VL-7B-Instruct-ultra
Qwen2-VL-7B-Instruct-ultraStart
Qwen2-VL-7B-Instruct er Qwens instruktionsjusterede billed-sprogmodel til tekst, billeder og video med tekst som output. Brug den til at stille spørgsmål om dokumentsider, sammenligne billeder eller beskrive visuelle begivenheder med dynamisk billedopløsning og dokumenterede begrænsninger i optælling, rumligt ræsonnement og forståelse af lyd i video.
- Accepterede input
- Tekst
- Resultater
- Tekst
Tilgængelig i Ailoot · input og metoder
Ailoot Ultra · OpenAI Chat POST /v1/chat/completions
- Inputtyper
text- Outputtyper
text- Outputformat
- json eller SSE
| Felt | Type | Krav | Værdier og grænser | Standard |
|---|---|---|---|---|
Feltmodel | Typestring | KravPåkrævet | Værdier og grænser Qwen2-VL-7B-Instruct-ultra | Standard— |
Feltmessages | Typemessage[] | KravPåkrævet | Værdier og grænser Minimumsantal elementer: 1 | Standard— |
Feltmessages[].role | Typestring | KravPåkrævet | Værdier og grænser Eksempler: system, user, assistant, tool, function Betingelser: Disse roller er eksplicit repræsenteret i kildekodens kompatibilitetstyper; modellens præcise rollesæt er fortsat modelspecifikt. Afhænger af modellen | Standard— |
Feltmessages[].content | Typestring|content_part[]|null | KravValgfrit | Værdier og grænser | Standard— |
Feltmessages[].tool_calls | Typetool_call[] | KravValgfrit | Værdier og grænser | Standard— |
Feltmessages[].tool_call_id | Typestring | KravValgfrit | Værdier og grænser Gælder når: role=tool; brug det faktisk returnerede ID | Standard— |
Feltmessages[].name | Typestring | KravValgfrit | Værdier og grænser | Standard— |
Feltmessages[].reasoning_content | Typestring | KravValgfrit | Værdier og grænser Gælder når: Send det faktisk returnerede ræsonnement tilbage, når modellen bruger det | Standard— |
Feltmessages[].reasoning_details | Typeobject|array | KravValgfrit | Værdier og grænser Afhænger af modellen | Standard— |
Feltmax_tokens | Typeinteger | KravValgfrit | Værdier og grænser Minimum: 1 Afhænger af modellen | Standard— |
Feltmax_completion_tokens | Typeinteger | KravValgfrit | Værdier og grænser Minimum: 1 Afhænger af modellen | Standard— |
Feltstream | Typeboolean | KravValgfrit | Værdier og grænser | Standardfalse |
Feltstream_options.include_usage | Typeboolean | KravValgfrit | Værdier og grænser Afhænger af modellen | Standard— |
Felttemperature | Typenumber | KravValgfrit | Værdier og grænser Afhænger af modellen | Standard— |
Felttop_p | Typenumber | KravValgfrit | Værdier og grænser Afhænger af modellen | Standard— |
Feltstop | Typestring|string[] | KravValgfrit | Værdier og grænser Afhænger af modellen | Standard— |
Felttools | Typefunction_tool[] | KravValgfrit | Værdier og grænser Afhænger af modellen | Standard— |
Felttools[].type | Typestring | KravValgfrit | Værdier og grænser function Afhænger af modellen | Standard— |
Felttools[].function.name | Typestring | KravPåkrævet | Værdier og grænser Gælder når: funktionsværktøj angivet | Standard— |
Felttools[].function.description | Typestring | KravValgfrit | Værdier og grænser | Standard— |
Felttools[].function.parameters | TypeJSON_schema | KravValgfrit | Værdier og grænser | Standard— |
Felttool_choice | Typestring|object | KravValgfrit | Værdier og grænser Afhænger af modellen | Standard— |
Feltparallel_tool_calls | Typeboolean | KravValgfrit | Værdier og grænser Afhænger af modellen | Standard— |
Feltresponse_format | Typeobject | KravValgfrit | Værdier og grænser Afhænger af modellen | Standard— |
Feltreasoning_effort | Typestring | KravValgfrit | Værdier og grænser Afhænger af modellen | Standard— |
Feltreasoning | Typeobject | KravValgfrit | Værdier og grænser Afhænger af modellen | Standard— |
Feltservice_tier | Typestring | KravValgfrit | Værdier og grænser Afhænger af modellen | Standard— |
Feltinstructions | Typestring | KravValgfrit | Værdier og grænser Kompatibilitetsfelt | Standard— |
Feltfunctions | Typefunction[] | KravValgfrit | Værdier og grænser Afhænger af modellen | Standard— |
Feltfunction_call | Typestring|object | KravValgfrit | Værdier og grænser Afhænger af modellen | Standard— |
Feltprompt_cache_options | Typeobject | KravValgfrit | Værdier og grænser Afhænger af modellen | Standard— |
Feltmodalities | Typestring[] | KravValgfrit | Værdier og grænser text | Standard— |
Feltprovider | Typeobject | KravValgfrit | Værdier og grænser Betingelser: provider.options afvises på denne Ultra-tekstrute | Standard— |
Feltcache_control.ttl | Typestring | KravValgfrit | Værdier og grænser Betingelser: 1h afvises på de faktiske placeringer for promptcaching | Standard— |
Kombinationer af inputmaterialer
Tekst · UTF8-tekst
messages[].content
Metodeparametre og livscyklus
| Parameter | Kontrakt |
|---|---|
Parametercontent_type | Kontraktapplication/json |
Parameterrequired | Kontraktmodel, messages |
Parametermaterial_types | Kontrakttext |
Parametermessages | Kontraktbeskedarray med strukturen role/content |
Parameterfile_material | Kontraktfaktisk UTF-8-dokument indsat som bogstavelig tekst; intet fil-ID udledes |
Parameteroptional_controls | Kontraktstream, temperature, top_p, stop, max_tokens, max_completion_tokens, reasoning, response_format, tools, tool_choice |
Parametercontrol_scope | Kontraktmodelspecifikt; brugerens funktionsværktøjer er forskellige fra hostede værktøjer |
Parameteroutput_modalities | Kontrakttext |
Parameterhosted_operations | Kontraktfalse |
Parametermultimodal_input_binding | Kontraktnull |
Livscyklus: synchronous_or_streamed
Send det præcise model-ID med messages.
Kontekstlængde er ikke et outputloft.
En tekstfil kan levere bogstavelig tekst; billed-, lyd- og filobjektinput kræver en præcis binding.
Priser
Tarifoplysninger tilføjer ikke anmodningsmuligheder. Understøttede parametre står ved den valgte metode.
- Hurtig tilstand
- Ikke angivet Når hurtig tilstand er valgt
- flex-tilstand
- Ikke angivet Når flex-tilstanden er valgt
- Maksimal ræsonneringsindsats
- Ikke angivet Når default-justeringen anvendes ved maksimal ræsonneringsindsats
Ailoot-takster
Priser efter konfiguration
| Konfiguration | Takstplan | Beløb |
|---|---|---|
| KonfigurationGrundtakster for tokens | TakstplanGrundtakst | Beløb Input · Inputtokens $0.00058 / 1K tokens Output · Outputtokens $0.00142 / 1K tokens Input · Cachelæsning $0 / 1K tokens Input · Cacheskrivning $0 / 1K tokens Input · Cacheskrivning, 1 time — / 1K tokens |
Ailoot reserverer et estimeret beløb før en anmodning. Efter resultatet afregnes det endelige beløb ud fra det målte forbrug. Ved streaming bruges den endelige forbrugsregistrering til afregningen. Sådan fungerer reservation og afregning →
Eksempelanmodninger
Ailoot Ultra · OpenAI Chat
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-VL-7B-Instruct-ultra", "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-VL-7B-Instruct-ultra',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-VL-7B-Instruct-ultra',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")
Hent og gem resultater
Ailoot Ultra · OpenAI Chat
json eller SSE
Behold alle færdige resultater
Gem hvert fuldstændigt returneret svar, hver fil og hver indholdsdel.
Bevar hvert valg og dets indhold, værktøjskald og ræsonnement. Saml i SSE deltaer efter valg-/værktøjsindeks, og bevar den endelige afslutningsårsag og forbrugsoplysningerne.
Hvis det oprindelige svar skal kontrolleres
Bevar anmodnings-/svar-ID’er og headere. Der leveres ingen generel URL til at hente tekstjob.
Svarfelter
| Felt | Type |
|---|---|
Feltchoices[].index | Typeinteger |
Feltchoices[].message.content | Typestring|null |
Feltchoices[].message.tool_calls | Typetool_call[] |
Feltchoices[].message.reasoning_content | Typestring |
Feltchoices[].message.reasoning_details | Typeobject|array |
Feltchoices[].finish_reason | Typestring|null |
Feltusage | Typeobject |
Fejl og næste trin
| Svar | Betingelse | Næste trin |
|---|---|---|
Svar400 · invalid_request_error | BetingelseUgyldige obligatoriske felter, materialerepræsentation eller parameterværdi | Næste trinRet de angivne felter før en ny oprettelsesanmodning. |
Aliaser
Modelaliaser
Ailoot Ultra Qwen2-VL-7B-Instruct-ultra
Aliaser for metodestier
Brug metodestierne vist ovenfor.
Relaterede kalder-ID’er
Ailoot Ultra · Anthropic Messages POST /v1/messages Qwen2-VL-7B-Instruct-ultra
Qwen2-VL-7B-Instruct-ultraStart
Qwen2-VL-7B-Instruct er Qwens instruktionsjusterede billed-sprogmodel til tekst, billeder og video med tekst som output. Brug den til at stille spørgsmål om dokumentsider, sammenligne billeder eller beskrive visuelle begivenheder med dynamisk billedopløsning og dokumenterede begrænsninger i optælling, rumligt ræsonnement og forståelse af lyd i video.
- Accepterede input
- Tekst
- Resultater
- json · sse
Tilgængelig i Ailoot · input og metoder
Ailoot Ultra · Anthropic Messages POST /v1/messages
- Inputtyper
text- Outputtyper
json,sse- Outputformat
- JSON eller SSE
| Felt | Type | Krav | Værdier og grænser | Standard |
|---|---|---|---|---|
Feltmodel | Typestring | KravPåkrævet | Værdier og grænser Qwen2-VL-7B-Instruct-ultra | Standard— |
Feltmessages | Typemessage[] | KravPåkrævet | Værdier og grænser | Standard— |
Feltmessages[].role | Typestring | KravPåkrævet | Værdier og grænser user, assistant | Standard— |
Feltmessages[].content | Typestring | KravPåkrævet | Værdier og grænser | Standard— |
Feltmax_tokens | Typeinteger | KravPåkrævet | Værdier og grænser | Standard— |
Feltstream | Typeboolean | KravValgfrit | Værdier og grænser | Standardfalse |
Kombinationer af inputmaterialer
Tekst · UTF-8-tekst
messages[].content som streng
Metodeparametre og livscyklus
| Parameter | Kontrakt |
|---|---|
Parametercontent_type | Kontraktapplication/json |
Parameterrequired | Kontraktmodel, messages, max_tokens |
Parameteroptional_controls | Kontraktstream |
Parametermaterial_types | Kontrakttext |
Parametertext_file_material | KontraktLæs det faktiske UTF-8-dokument, og indsæt teksten i det angivne input eller beskedens indholdsstreng. |
Livscyklus: synchronous_or_streamed
Priser
Tarifoplysninger tilføjer ikke anmodningsmuligheder. Understøttede parametre står ved den valgte metode.
- Hurtig tilstand
- Ikke angivet Når hurtig tilstand er valgt
- flex-tilstand
- Ikke angivet Når flex-tilstanden er valgt
- Maksimal ræsonneringsindsats
- Ikke angivet Når default-justeringen anvendes ved maksimal ræsonneringsindsats
Ailoot-takster
Priser efter konfiguration
| Konfiguration | Takstplan | Beløb |
|---|---|---|
| KonfigurationGrundtakster for tokens | TakstplanGrundtakst | Beløb Input · Inputtokens $0.00058 / 1K tokens Output · Outputtokens $0.00142 / 1K tokens Input · Cachelæsning $0 / 1K tokens Input · Cacheskrivning $0 / 1K tokens Input · Cacheskrivning, 1 time — / 1K tokens |
Ailoot reserverer et estimeret beløb før en anmodning. Efter resultatet afregnes det endelige beløb ud fra det målte forbrug. Ved streaming bruges den endelige forbrugsregistrering til afregningen. Sådan fungerer reservation og afregning →
Eksempelanmodninger
Ailoot Ultra · Anthropic Messages
{
"model": "Qwen2-VL-7B-Instruct-ultra",
"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-VL-7B-Instruct-ultra', '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-VL-7B-Instruct-ultra', '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))
Hent og gem resultater
Ailoot Ultra · Anthropic Messages
JSON eller SSE
Behold alle færdige resultater
Gem hvert fuldstændigt returneret svar, hver fil og hver indholdsdel.
Bevar alle indholdsblokke, ræsonnementssignaturer og faktiske værktøjsbrugs-ID’er. Saml alle SSE-blokdeltaer; den første tekstblok er ikke hele outputtet.
Hvis det oprindelige svar skal kontrolleres
Bevar anmodnings-/svar-ID’er og headere. Der leveres ingen generel URL til at hente tekstjob.
Svarfelter
| Felt | Type |
|---|---|
Feltid | Typestring |
Feltmodel | Typestring |
Feltcontent[] | Typetext|thinking|tool_use|other content block |
Feltstop_reason | Typestring|null |
Feltusage | Typeobject |
Fejl og næste trin
| Svar | Betingelse | Næste trin |
|---|---|---|
Svar400 · invalid_request_error | BetingelseUgyldige obligatoriske felter, materialerepræsentation eller parameterværdi | Næste trinRet de angivne felter før en ny oprettelsesanmodning. |
Aliaser
Modelaliaser
Ailoot Ultra Qwen2-VL-7B-Instruct-ultra
Aliaser for metodestier
Brug metodestierne vist ovenfor.
Relaterede kalder-ID’er
FAQ · Qwen2-VL-7B-Instruct-ultra
- Hvilke input og resultater er tilgængelige?
POST /v1/chat/completions·Qwen2-VL-7B-Instruct-ultra:text→textPOST /v1/messages·Qwen2-VL-7B-Instruct-ultra:text→json,sse- Hvilke felter bruger anmodningen?
POST /v1/chat/completions·Qwen2-VL-7B-Instruct-ultra:model,messages,stream,modalities,providerPOST /v1/messages·Qwen2-VL-7B-Instruct-ultra:model,messages,max_tokens,stream- Hvilke grænser gælder?
POST /v1/chat/completions·Qwen2-VL-7B-Instruct-ultra:messages.min_items:1