Thinking Machines: Inkling Small
„Thinking Machines Lab“ Inkling-Small – tai 276 mlrd. parametrų MoE modelis su 12 mlrd. aktyvių parametrų teksto, vaizdų ir garso samprotavimui. Jis kuria tekstą, palaiko įrankius naudojančias programas ir turi 1M modelio kontekstą, atskirai išskiriant trumpesnius gamintojo paslaugos kontekstus.
- Ailoot Ultra · OpenAI pokalbis
POST /v1/chat/completionsthinkingmachines/inkling-small - Ailoot Ultra · Anthropic pranešimai
POST /v1/messagesthinkingmachines/inkling-small
Apie modelį
Šis aprašas apima modelio galimybes. Pasirinktam metodui Ailoot prieinamos įvestys, išvestys ir parinktys nurodytos toliau.
Inkling-Small – tai mažesnis bendrosios paskirties multimodalinis „Thinking Machines Lab“ modelis. Oficialioje kortelėje nurodyta iš viso 276 mlrd. parametrų ir 12 mlrd. aktyvių parametrų. Jis priima tekstą, vaizdus bei garsą ir generuoja tekstą pokalbių, programavimo, samprotavimo, paieška papildytoms ir įrankius naudojančioms programoms. Tai atskiras leidimas nuo didesnio Inkling modelio.
Architektūra naudoja 42 dekoderio sluoksnius ir retąjį ekspertų pagrindą. Žetonas parenka šešis iš 256 maršrutizuojamų ekspertų ir du bendrus ekspertus, derinant vietinį ir globalų dėmesį. Vaizdo fragmentai ir diskretūs garso žetonai projektuojami į bendrą dekoderio reprezentaciją. Atskiri BF16 ir NVFP4 artefaktai turi savus tikslumo identifikatorius.
Gamintojas aprašo 1M modelio kontekstą, o jo mokymo paslauga siūlo 64K ir 256K konfigūracijas. Tai atskiros apimtys, o ne sukeičiamai naudojami langų dydžiai. Ilgai medžiagai nustatykite tikrąjį užduotyje naudojamą kontekstą ir palikite vietos modelio mąstymui bei galutiniam atsakymui. Bendras gamintojo Inkling atvaizdavimo komponentas priima baigtinę pastangų vertę nuo 0,0 iki mažiau nei 1,0 ir, jos nenurodžius, naudoja 0,9. Nulis skatina tiesioginį atsakymą, griežtai neuždrausdamas samprotavimo.
Įvesties parengimas yra konkretus. Kortelėje rekomenduojami vaizdai, kurių matmenys pageidautinai yra nuo 40 iki 4 096 pikselių. Garsas turi būti WAV su 16 kHz diskretizavimo dažniu ir šiam Small leidimui pageidautinai trumpesnis nei dvi minutės. Tai optimalios įvesties rekomendacijos, o ne pažadai, kad modelis atmeta kiekvieną jų neatitinkančią įvestį. Išvestis yra UTF-8 tekstas, o ne sugeneruota kalba ar vaizdo įrašas.
Klausimui apie vaizdą nurodykite tikrintiną ypatybę ir jos ryšį su rašytine užduotimi. Garsui įvardykite, ar naudingas rezultatas yra turinio paaiškinimas, santrauka ar kita tekstinė analizė. Pateikite medžiagai suprasti reikalingą žodyną ir kontekstą. Programavimo ar paieškos užduotyje turi būti aktualus šaltinis ar surinktos ištraukos ir pageidaujamas artefaktas.
Su įrankiais susietoje programoje modelis siūlo sąveikas, o programa grąžina jų rezultatus. Tęstiniuose pranešimuose išsaugokite šiuos stebėjimus, kad kitas žingsnis galėtų remtis tuo, kas įvyko. Gamintojas išleidžia modelį pritaikymui ir papildomam derinimui, o atskirai pritaikytas kontrolinis taškas išlieka atskiras nuo pradinio Small modelio.
Gamintojas nurodo kartais pasitaikančius nurodymų vykdymo sutrikimus, nepagrįstus faktinius teiginius ir prastėjimą ilguose pokalbiuose, taip pat netolygų veikimą mažiau atstovaujamose kalbose ir srityse. Jis taip pat aprašo multimodalinį saugos vertinimą ir išliekantį jautrumą kai kurioms netiesiogiai suformuluotoms užklausoms. Naudodami modelio rezultatą darbo eigoje, išlaikykite prieinamus šaltinio įrodymus ir konkrečiai programai skirtas išvesties kontrolės priemones.
Praktinė užduotis
Praktinė užduotis
Techninis pavyzdys anglų kalba
Answer from retrieved training material
Answer a new employee using only these retrieved passages. [DOC1] Draft reports may be edited by their author. [DOC2] Approved reports are locked; corrections create a new version. Question: 'I found a typo in an approved report. Can I edit it directly?' Give a concise answer, the supporting document label and one appropriate next step without claiming a change occurred.Laukiamas rezultatas
A short source-grounded answer with DOC2 support and a proposed version-based correction step.Rezultato patikra
Check the approved/draft distinction is preserved and no lock is bypassed in the suggestion.Ailoot Ultra · OpenAI pokalbis POST /v1/chat/completions thinkingmachines/inkling-small
thinkingmachines/inkling-small
thinkingmachines/inkling-smallPradžia
„Thinking Machines Lab“ Inkling-Small – tai 276 mlrd. parametrų MoE modelis su 12 mlrd. aktyvių parametrų teksto, vaizdų ir garso samprotavimui. Jis kuria tekstą, palaiko įrankius naudojančias programas ir turi 1M modelio kontekstą, atskirai išskiriant trumpesnius gamintojo paslaugos kontekstus.
- Leidžiamos įvestys
- Tekstas
- Rezultatai
- Tekstas
Prieinama Ailoot · įvestys ir metodai
Ailoot Ultra · OpenAI pokalbis POST /v1/chat/completions
- Įvestis
text- Išvestis
text- Išvesties formatas
- json arba SSE
| Laukas | Tipas | Reikalavimas | Reikšmės ir ribos | Numatyta |
|---|---|---|---|---|
Laukasmodel | Tipasstring | ReikalavimasPrivaloma | Reikšmės ir ribos thinkingmachines/inkling-small | Numatyta— |
Laukasmessages | Tipasmessage[] | ReikalavimasPrivaloma | Reikšmės ir ribos Mažiausias elementų skaičius: 1 | Numatyta— |
Laukasmessages[].role | Tipasstring | ReikalavimasPrivaloma | Reikšmės ir ribos Pavyzdžiai: system, user, assistant, tool, function Sąlygos: Šie vaidmenys aiškiai išreikšti šaltinio kodo suderinamumo tipuose; tikslus vaidmenų rinkinys priklauso nuo konkretaus modelio. Priklauso nuo modelio | Numatyta— |
Laukasmessages[].content | Tipasstring|content_part[]|null | ReikalavimasNeprivaloma | Reikšmės ir ribos | Numatyta— |
Laukasmessages[].tool_calls | Tipastool_call[] | ReikalavimasNeprivaloma | Reikšmės ir ribos | Numatyta— |
Laukasmessages[].tool_call_id | Tipasstring | ReikalavimasNeprivaloma | Reikšmės ir ribos Taikoma, kai: role=tool; naudokite tikrąjį grąžintą ID | Numatyta— |
Laukasmessages[].name | Tipasstring | ReikalavimasNeprivaloma | Reikšmės ir ribos | Numatyta— |
Laukasmessages[].reasoning_content | Tipasstring | ReikalavimasNeprivaloma | Reikšmės ir ribos Taikoma, kai: Grąžinkite tikrąjį gautą samprotavimą ten, kur šis modelis jį naudoja | Numatyta— |
Laukasmessages[].reasoning_details | Tipasobject|array | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
Laukasmax_tokens | Tipasinteger | ReikalavimasNeprivaloma | Reikšmės ir ribos Mažiausia reikšmė: 1 Priklauso nuo modelio | Numatyta— |
Laukasmax_completion_tokens | Tipasinteger | ReikalavimasNeprivaloma | Reikšmės ir ribos Mažiausia reikšmė: 1 Priklauso nuo modelio | Numatyta— |
Laukasstream | Tipasboolean | ReikalavimasNeprivaloma | Reikšmės ir ribos | Numatytafalse |
Laukasstream_options.include_usage | Tipasboolean | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
Laukastemperature | Tipasnumber | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
Laukastop_p | Tipasnumber | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
Laukasstop | Tipasstring|string[] | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
Laukastools | Tipasfunction_tool[] | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
Laukastools[].type | Tipasstring | ReikalavimasNeprivaloma | Reikšmės ir ribos function Priklauso nuo modelio | Numatyta— |
Laukastools[].function.name | Tipasstring | ReikalavimasPrivaloma | Reikšmės ir ribos Taikoma, kai: pateiktas funkcijos tipo įrankis | Numatyta— |
Laukastools[].function.description | Tipasstring | ReikalavimasNeprivaloma | Reikšmės ir ribos | Numatyta— |
Laukastools[].function.parameters | TipasJSON_schema | ReikalavimasNeprivaloma | Reikšmės ir ribos | Numatyta— |
Laukastool_choice | Tipasstring|object | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
Laukasparallel_tool_calls | Tipasboolean | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
Laukasresponse_format | Tipasobject | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
Laukasreasoning_effort | Tipasstring | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
Laukasreasoning | Tipasobject | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
Laukasservice_tier | Tipasstring | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
Laukasinstructions | Tipasstring | ReikalavimasNeprivaloma | Reikšmės ir ribos Suderinamumo laukas | Numatyta— |
Laukasfunctions | Tipasfunction[] | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
Laukasfunction_call | Tipasstring|object | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
Laukasprompt_cache_options | Tipasobject | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
Laukasmodalities | Tipasstring[] | ReikalavimasNeprivaloma | Reikšmės ir ribos text | Numatyta— |
Laukasprovider | Tipasobject | ReikalavimasNeprivaloma | Reikšmės ir ribos Sąlygos: provider.options šiame Ultra teksto maršrute atmetamas | Numatyta— |
Laukascache_control.ttl | Tipasstring | ReikalavimasNeprivaloma | Reikšmės ir ribos Sąlygos: 1h atmetamas tikrosiose užklausų podėlio vietose | Numatyta— |
Įvesties medžiagos deriniai
Tekstas · UTF8 tekstas
messages[].content
Metodo parametrai ir gyvavimo ciklas
| Parametras | Specifikacija |
|---|---|
Parametrascontent_type | Specifikacijaapplication/json |
Parametrasrequired | Specifikacijamodel, messages |
Parametrasmaterial_types | Specifikacijatext |
Parametrasmessages | Specifikacijapranešimų masyvas su role/content struktūra |
Parametrasfile_material | Specifikacijatikrasis UTF-8 dokumentas įterptas kaip pažodinis tekstas; failo ID nenumanomas |
Parametrasoptional_controls | Specifikacijastream, temperature, top_p, stop, max_tokens, max_completion_tokens, reasoning, response_format, tools, tool_choice |
Parametrascontrol_scope | Specifikacijapriklauso nuo modelio; naudotojo funkcijų įrankiai skiriasi nuo priglobtų įrankių |
Parametrasoutput_modalities | Specifikacijatext |
Parametrashosted_operations | Specifikacijafalse |
Parametrasmultimodal_input_binding | Specifikacijanull |
Gyvavimo ciklas: synchronous_or_streamed
Siųskite tikslų modelio ID kartu su messages.
Konteksto ilgis nėra išvesties limitas.
Teksto failas gali pateikti pažodinį tekstą; vaizdų / garso / failų objektų įvestims reikia tikslaus susiejimo.
Planai
Tarifų informacija neprideda užklausos parinkčių. Palaikomi parametrai nurodyti prie pasirinkto metodo.
- Spartusis režimas
- Standartinis įkainis Pasirinkus spartųjį režimą
- Flex režimas
- Standartinis įkainis Pasirinkus flex režimą
- Didžiausios samprotavimo pastangos
- Standartinis įkainis Kai didžiausioms samprotavimo pastangoms taikomas numatytasis koregavimas (default)
- Samprotavimo pastangos · high
- Standartinis įkainis Kai samprotavimo pastangų lygis yra high
- Samprotavimo pastangos · low
- Standartinis įkainis Kai samprotavimo pastangų lygis yra low
- Samprotavimo pastangos · max
- Standartinis įkainis Kai samprotavimo pastangų lygis yra max
- Samprotavimo pastangos · medium
- Standartinis įkainis Kai samprotavimo pastangų lygis yra medium
- Samprotavimo pastangos · minimal
- Standartinis įkainis Kai samprotavimo pastangų lygis yra minimal
- Samprotavimo pastangos · none
- Standartinis įkainis Kai samprotavimo pastangų lygis yra none
Ailoot įkainiai
Kainos pagal konfigūraciją
Kiekvieną mokestį susiekite su nurodytomis sąlygomis. Kiekvienam alternatyvių konfigūracijų rinkiniui taikykite vieną įkainį.
| Konfigūracija | Įkainių lentelė | Konteksto tokenų daugiau nei | Konteksto tokenų iki imtinai | Mokestis |
|---|---|---|---|---|
| KonfigūracijaBaziniai žetonų įkainiai | Įkainių lentelėBazinis įkainis | Konteksto tokenų daugiau nei— | Konteksto tokenų iki imtinaiBe viršutinės ribos | Mokestis Įvestis · Įvesties tokenai $0.0009 / 1K tokenų Išvestis · Išvesties tokenai $0.0024 / 1K tokenų Įvestis · Talpyklos skaitymas $0.0002 / 1K tokenų Įvestis · Rašymas į talpyklą — / 1K tokenų Įvestis · Rašymas į talpyklą, 1 val — / 1K tokenų |
| KonfigūracijaUžklausos ilgio pakopa 1 | Įkainių lentelė— | Konteksto tokenų daugiau nei0 | Konteksto tokenų iki imtinaiBe viršutinės ribos | Mokestis Įvestis · Įvesties tokenai $0.0009 / 1K tokenų Išvestis · Išvesties tokenai $0.0024 / 1K tokenų Įvestis · Talpyklos skaitymas $0.0002 / 1K tokenų Įvestis · Rašymas į talpyklą — / 1K tokenų Įvestis · Rašymas į talpyklą, 1 val — / 1K tokenų |
Ailoot prieš užklausą rezervuoja numatomą sumą. Gavus rezultatą, galutinis mokestis nuskaitomas pagal išmatuotą naudojimą. Srautinio atsakymo atsiskaitymui naudojamas galutinis naudojimo įrašas. Kaip veikia rezervavimas ir atsiskaitymas →
Užklausų pavyzdžiai
Ailoot Ultra · OpenAI pokalbis
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "thinkingmachines/inkling-small", "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='thinkingmachines/inkling-small',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='thinkingmachines/inkling-small',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")
Gauti ir išsaugoti rezultatus
Ailoot Ultra · OpenAI pokalbis
json arba SSE
Išsaugoti visus baigtus rezultatus
Išsaugokite kiekvieną visą grąžintą atsakymą, failą ir turinio dalį.
Išsaugokite kiekvieną variantą ir jo turinį / įrankių iškvietimus / samprotavimą. SSE prieaugius surinkite pagal varianto / įrankio indeksą; išsaugokite galutinę užbaigimo priežastį ir naudojimo duomenis.
Jei reikia patikrinti pradinį atsakymą
Išsaugokite užklausų / atsakymų ID ir antraštes. Bendras teksto užduoties gavimo URL nepateikiamas.
Atsakymo laukai
| Laukas | Tipas |
|---|---|
Laukaschoices[].index | Tipasinteger |
Laukaschoices[].message.content | Tipasstring|null |
Laukaschoices[].message.tool_calls | Tipastool_call[] |
Laukaschoices[].message.reasoning_content | Tipasstring |
Laukaschoices[].message.reasoning_details | Tipasobject|array |
Laukaschoices[].finish_reason | Tipasstring|null |
Laukasusage | Tipasobject |
Klaidos ir tolesni veiksmai
| Atsakymas | Sąlyga | Kitas žingsnis |
|---|---|---|
Atsakymas400 · invalid_request_error | SąlygaNetinkami privalomi laukai, medžiagos pateikimo forma arba parametro reikšmė | Kitas žingsnisPrieš naują kūrimo užklausą pataisykite nurodytus laukus. |
Pseudonimai
Modelių pseudonimai
Ailoot Ultra thinkingmachines/inkling-small
Metodų kelių pseudonimai
Naudokite aukščiau nurodytus metodų kelius.
Susiję ID iškvietimui
Ailoot Ultra · Anthropic pranešimai POST /v1/messages thinkingmachines/inkling-small
thinkingmachines/inkling-small
thinkingmachines/inkling-smallPradžia
„Thinking Machines Lab“ Inkling-Small – tai 276 mlrd. parametrų MoE modelis su 12 mlrd. aktyvių parametrų teksto, vaizdų ir garso samprotavimui. Jis kuria tekstą, palaiko įrankius naudojančias programas ir turi 1M modelio kontekstą, atskirai išskiriant trumpesnius gamintojo paslaugos kontekstus.
- Leidžiamos įvestys
- Tekstas
- Rezultatai
- json · sse
Prieinama Ailoot · įvestys ir metodai
Ailoot Ultra · Anthropic pranešimai POST /v1/messages
- Įvestis
text- Išvestis
json,sse- Išvesties formatas
- JSON arba SSE
| Laukas | Tipas | Reikalavimas | Reikšmės ir ribos | Numatyta |
|---|---|---|---|---|
Laukasmodel | Tipasstring | ReikalavimasPrivaloma | Reikšmės ir ribos thinkingmachines/inkling-small | Numatyta— |
Laukasmessages | Tipasmessage[] | ReikalavimasPrivaloma | Reikšmės ir ribos | Numatyta— |
Laukasmessages[].role | Tipasstring | ReikalavimasPrivaloma | Reikšmės ir ribos user, assistant | Numatyta— |
Laukasmessages[].content | Tipasstring | ReikalavimasPrivaloma | Reikšmės ir ribos | Numatyta— |
Laukasmax_tokens | Tipasinteger | ReikalavimasPrivaloma | Reikšmės ir ribos | Numatyta— |
Laukasstream | Tipasboolean | ReikalavimasNeprivaloma | Reikšmės ir ribos | Numatytafalse |
Įvesties medžiagos deriniai
Tekstas · UTF-8 tekstas
messages[].content eilutė
Metodo parametrai ir gyvavimo ciklas
| Parametras | Specifikacija |
|---|---|
Parametrascontent_type | Specifikacijaapplication/json |
Parametrasrequired | Specifikacijamodel, messages, max_tokens |
Parametrasoptional_controls | Specifikacijastream |
Parametrasmaterial_types | Specifikacijatext |
Parametrastext_file_material | SpecifikacijaPerskaitykite tikrąjį UTF-8 dokumentą ir įterpkite jo tekstą į nurodytą input lauką arba pranešimo turinio eilutę. |
Gyvavimo ciklas: synchronous_or_streamed
Planai
Tarifų informacija neprideda užklausos parinkčių. Palaikomi parametrai nurodyti prie pasirinkto metodo.
- Spartusis režimas
- Standartinis įkainis Pasirinkus spartųjį režimą
- Flex režimas
- Standartinis įkainis Pasirinkus flex režimą
- Didžiausios samprotavimo pastangos
- Standartinis įkainis Kai didžiausioms samprotavimo pastangoms taikomas numatytasis koregavimas (default)
- Samprotavimo pastangos · high
- Standartinis įkainis Kai samprotavimo pastangų lygis yra high
- Samprotavimo pastangos · low
- Standartinis įkainis Kai samprotavimo pastangų lygis yra low
- Samprotavimo pastangos · max
- Standartinis įkainis Kai samprotavimo pastangų lygis yra max
- Samprotavimo pastangos · medium
- Standartinis įkainis Kai samprotavimo pastangų lygis yra medium
- Samprotavimo pastangos · minimal
- Standartinis įkainis Kai samprotavimo pastangų lygis yra minimal
- Samprotavimo pastangos · none
- Standartinis įkainis Kai samprotavimo pastangų lygis yra none
Ailoot įkainiai
Kainos pagal konfigūraciją
Kiekvieną mokestį susiekite su nurodytomis sąlygomis. Kiekvienam alternatyvių konfigūracijų rinkiniui taikykite vieną įkainį.
| Konfigūracija | Įkainių lentelė | Konteksto tokenų daugiau nei | Konteksto tokenų iki imtinai | Mokestis |
|---|---|---|---|---|
| KonfigūracijaBaziniai žetonų įkainiai | Įkainių lentelėBazinis įkainis | Konteksto tokenų daugiau nei— | Konteksto tokenų iki imtinaiBe viršutinės ribos | Mokestis Įvestis · Įvesties tokenai $0.0009 / 1K tokenų Išvestis · Išvesties tokenai $0.0024 / 1K tokenų Įvestis · Talpyklos skaitymas $0.0002 / 1K tokenų Įvestis · Rašymas į talpyklą — / 1K tokenų Įvestis · Rašymas į talpyklą, 1 val — / 1K tokenų |
| KonfigūracijaUžklausos ilgio pakopa 1 | Įkainių lentelė— | Konteksto tokenų daugiau nei0 | Konteksto tokenų iki imtinaiBe viršutinės ribos | Mokestis Įvestis · Įvesties tokenai $0.0009 / 1K tokenų Išvestis · Išvesties tokenai $0.0024 / 1K tokenų Įvestis · Talpyklos skaitymas $0.0002 / 1K tokenų Įvestis · Rašymas į talpyklą — / 1K tokenų Įvestis · Rašymas į talpyklą, 1 val — / 1K tokenų |
Ailoot prieš užklausą rezervuoja numatomą sumą. Gavus rezultatą, galutinis mokestis nuskaitomas pagal išmatuotą naudojimą. Srautinio atsakymo atsiskaitymui naudojamas galutinis naudojimo įrašas. Kaip veikia rezervavimas ir atsiskaitymas →
Užklausų pavyzdžiai
Ailoot Ultra · Anthropic pranešimai
{
"model": "thinkingmachines/inkling-small",
"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': 'thinkingmachines/inkling-small', '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': 'thinkingmachines/inkling-small', '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))
Gauti ir išsaugoti rezultatus
Ailoot Ultra · Anthropic pranešimai
JSON arba SSE
Išsaugoti visus baigtus rezultatus
Išsaugokite kiekvieną visą grąžintą atsakymą, failą ir turinio dalį.
Išsaugokite visus turinio blokus, mąstymo parašus ir tikruosius įrankių naudojimo ID. Surinkite visus SSE blokų prieaugius; pirmasis teksto blokas nėra visa išvestis.
Jei reikia patikrinti pradinį atsakymą
Išsaugokite užklausų / atsakymų ID ir antraštes. Bendras teksto užduoties gavimo URL nepateikiamas.
Atsakymo laukai
| Laukas | Tipas |
|---|---|
Laukasid | Tipasstring |
Laukasmodel | Tipasstring |
Laukascontent[] | Tipastext|thinking|tool_use|other content block |
Laukasstop_reason | Tipasstring|null |
Laukasusage | Tipasobject |
Klaidos ir tolesni veiksmai
| Atsakymas | Sąlyga | Kitas žingsnis |
|---|---|---|
Atsakymas400 · invalid_request_error | SąlygaNetinkami privalomi laukai, medžiagos pateikimo forma arba parametro reikšmė | Kitas žingsnisPrieš naują kūrimo užklausą pataisykite nurodytus laukus. |
Pseudonimai
Modelių pseudonimai
Ailoot Ultra thinkingmachines/inkling-small
Metodų kelių pseudonimai
Naudokite aukščiau nurodytus metodų kelius.
Susiję ID iškvietimui
FAQ · Thinking Machines: Inkling Small
- Kokios įvestys ir rezultatai prieinami?
POST /v1/chat/completions·thinkingmachines/inkling-small:text→textPOST /v1/messages·thinkingmachines/inkling-small:text→json,sse- Kokius laukus naudoja užklausa?
POST /v1/chat/completions·thinkingmachines/inkling-small:model,messages,stream,modalities,providerPOST /v1/messages·thinkingmachines/inkling-small:model,messages,max_tokens,stream- Kokie apribojimai taikomi?
POST /v1/chat/completions·thinkingmachines/inkling-small:messages.min_items:1