Sao10K: Llama 3.1 Euryale 70B v2.2
Euryale v2.2 van Sao10K is een tekst-fine-tune van Llama 3.1 70B voor conversaties met meerdere beurten, rollenspel en creatief schrijven. Het combineert geordend conversationeel en creatief trainingsmateriaal met Llama 3 Instruct-prompts en een configuratie met 131.072 posities.
- Ailoot Ultra · OpenAI Chat
POST /v1/chat/completionssao10k/l3.1-euryale-70b - Ailoot Ultra · Anthropic Messages
POST /v1/messagessao10k/l3.1-euryale-70b
Over het model
Deze beschrijving gaat over de mogelijkheden van het model. De via Ailoot beschikbare invoer, uitvoer en opties staan hieronder voor de geselecteerde methode.
Llama 3.1 Euryale 70B v2.2 is de editie van Sao10K voor conversatie en creatief schrijven op basis van Llama 3.1. De maker beschrijft één fine-tuningrun over twee epochs, waarbij de datasets gescheiden en geordend blijven: eerst conversationele instructies, gevolgd door creatief schrijven, rollenspel en materiaal voor creatieve instructies. Het model werkt met schriftelijke prompts en conversaties en genereert tekst.
De release breidt de eerdere Euryale-trainingsmix uit met conversaties met meerdere beurten, aanvullende voorbeelden voor rollenspel en schrijven, naleving van de systeemprompt en materiaal voor redeneren of ruimtelijk inzicht. De maker filtert veelvoorkomende schrijf- en gegevensfouten, maar merkt op dat sommige onvolmaakte resultaten kunnen blijven voorkomen. Die trainingskeuzes beschrijven deze editie en maken ze niet uitwisselbaar met v2.3, die de Llama 3.3-basis gebruikt.
De gepubliceerde configuratie heeft 80 lagen, 64 query-attentionkoppen en acht key/value-koppen, met maximaal 131.072 posities en Llama 3-rotatieschaling. Bereid de personagebeschrijving, relevante geschiedenis en het gevraagde antwoord binnen de context van de toepassing voor. Het aantal posities van de modelconfiguratie stelt geen afzonderlijke onbeperkte generatielengte vast.
De maker beveelt Llama 3 Instruct-opmaak aan, met temperature 1.2 en sampling met een minimale waarschijnlijkheid van 0.2 in de voorgestelde opstelling. De release benadrukt het experimenteren met de systeemprompt en de toon van deze editie. Een personagetaak moet de spreker, de relatie, de huidige situatie en eventuele te behouden scènefeiten bepalen voordat de volgende gebruikersbeurt wordt gegeven.
Vraag voor rollenspel de volgende bijdrage van het genoemde personage en laat de keuzes van de andere deelnemer aan die deelnemer over. Lever voor creatief schrijven de passage aan en leg uit of het doel een vervolg, een herziening van de stem of een verandering van het verteltempo is. Een expliciet stoppunt maakt de gegenereerde tekst makkelijker te gebruiken als één beurt of één scène in plaats van een ongecontroleerde uitbreiding van het verhaal.
Controleer de concepttekst op continuïteit, de gevraagde stem en de betekenis van de laatste instructie. De maker merkt op dat een antwoord soms verkeerd kan lopen en beschrijft een nieuwe generatiepoging als een praktische reactie op dat gedrag. Houd de vastgelegde verhaalfeiten en de correctie in de prompt, zodat de volgende concepttekst een bepaald doel heeft. Dit is een tekstschrijfwerkwijze met uitvoer die moet worden gecontroleerd en bewerkt.
Praktische taak
Praktische taak
Technisch voorbeeld in het Engels
A character reply that respects established history
Continue as ferryman Oren for two or three short replies. He is courteous, cannot lie and previously promised never to carry royal soldiers. I play a traveller who reveals a royal badge and asks for passage. Preserve that promise, show Oren's conflict through dialogue and a small action, then leave my character's next choice open.Verwacht resultaat
Two or three in-character replies preserving the promise and ending before the traveller responds.Resultaat controleren
Oren neither lies nor casually breaks the established promise, and the traveller's decision remains with the player.Ailoot Ultra · OpenAI Chat POST /v1/chat/completions sao10k/l3.1-euryale-70b
sao10k/l3.1-euryale-70bAan de slag
Euryale v2.2 van Sao10K is een tekst-fine-tune van Llama 3.1 70B voor conversaties met meerdere beurten, rollenspel en creatief schrijven. Het combineert geordend conversationeel en creatief trainingsmateriaal met Llama 3 Instruct-prompts en een configuratie met 131.072 posities.
- Toegestane invoer
- Tekst
- Resultaten
- Tekst
Beschikbaar in Ailoot · invoer en methoden
Ailoot Ultra · OpenAI Chat POST /v1/chat/completions
- Invoer
text- Uitvoer
text- Uitvoerformaat
- json of SSE
| Veld | Type | Vereiste | Waarden en limieten | Standaard |
|---|---|---|---|---|
Veldmodel | Typestring | VereisteVereist | Waarden en limieten sao10k/l3.1-euryale-70b | Standaard— |
Veldmessages | Typemessage[] | VereisteVereist | Waarden en limieten Minimumaantal items: 1 | Standaard— |
Veldmessages[].role | Typestring | VereisteVereist | Waarden en limieten Voorbeelden: system, user, assistant, tool, function Voorwaarden: Deze rollen worden expliciet weergegeven door compatibiliteitstypen in de broncode; de exacte rollenverzameling van het model blijft modelspecifiek. Afhankelijk van het model | Standaard— |
Veldmessages[].content | Typestring|content_part[]|null | VereisteOptioneel | Waarden en limieten | Standaard— |
Veldmessages[].tool_calls | Typetool_call[] | VereisteOptioneel | Waarden en limieten | Standaard— |
Veldmessages[].tool_call_id | Typestring | VereisteOptioneel | Waarden en limieten Geldt wanneer: role=tool; gebruik het werkelijk teruggegeven ID | Standaard— |
Veldmessages[].name | Typestring | VereisteOptioneel | Waarden en limieten | Standaard— |
Veldmessages[].reasoning_content | Typestring | VereisteOptioneel | Waarden en limieten Geldt wanneer: Stuur de werkelijk teruggegeven redeneringen terug wanneer dit model ze gebruikt | Standaard— |
Veldmessages[].reasoning_details | Typeobject|array | VereisteOptioneel | Waarden en limieten Afhankelijk van het model | Standaard— |
Veldmax_tokens | Typeinteger | VereisteOptioneel | Waarden en limieten Minimum: 1 Afhankelijk van het model | Standaard— |
Veldmax_completion_tokens | Typeinteger | VereisteOptioneel | Waarden en limieten Minimum: 1 Afhankelijk van het model | Standaard— |
Veldstream | Typeboolean | VereisteOptioneel | Waarden en limieten | Standaardfalse |
Veldstream_options.include_usage | Typeboolean | VereisteOptioneel | Waarden en limieten Afhankelijk van het model | Standaard— |
Veldtemperature | Typenumber | VereisteOptioneel | Waarden en limieten Afhankelijk van het model | Standaard— |
Veldtop_p | Typenumber | VereisteOptioneel | Waarden en limieten Afhankelijk van het model | Standaard— |
Veldstop | Typestring|string[] | VereisteOptioneel | Waarden en limieten Afhankelijk van het model | Standaard— |
Veldtools | Typefunction_tool[] | VereisteOptioneel | Waarden en limieten Afhankelijk van het model | Standaard— |
Veldtools[].type | Typestring | VereisteOptioneel | Waarden en limieten function Afhankelijk van het model | Standaard— |
Veldtools[].function.name | Typestring | VereisteVereist | Waarden en limieten Geldt wanneer: functietool opgegeven | Standaard— |
Veldtools[].function.description | Typestring | VereisteOptioneel | Waarden en limieten | Standaard— |
Veldtools[].function.parameters | TypeJSON_schema | VereisteOptioneel | Waarden en limieten | Standaard— |
Veldtool_choice | Typestring|object | VereisteOptioneel | Waarden en limieten Afhankelijk van het model | Standaard— |
Veldparallel_tool_calls | Typeboolean | VereisteOptioneel | Waarden en limieten Afhankelijk van het model | Standaard— |
Veldresponse_format | Typeobject | VereisteOptioneel | Waarden en limieten Afhankelijk van het model | Standaard— |
Veldreasoning_effort | Typestring | VereisteOptioneel | Waarden en limieten Afhankelijk van het model | Standaard— |
Veldreasoning | Typeobject | VereisteOptioneel | Waarden en limieten Afhankelijk van het model | Standaard— |
Veldservice_tier | Typestring | VereisteOptioneel | Waarden en limieten Afhankelijk van het model | Standaard— |
Veldinstructions | Typestring | VereisteOptioneel | Waarden en limieten Compatibiliteitsveld | Standaard— |
Veldfunctions | Typefunction[] | VereisteOptioneel | Waarden en limieten Afhankelijk van het model | Standaard— |
Veldfunction_call | Typestring|object | VereisteOptioneel | Waarden en limieten Afhankelijk van het model | Standaard— |
Veldprompt_cache_options | Typeobject | VereisteOptioneel | Waarden en limieten Afhankelijk van het model | Standaard— |
Veldmodalities | Typestring[] | VereisteOptioneel | Waarden en limieten text | Standaard— |
Veldprovider | Typeobject | VereisteOptioneel | Waarden en limieten Voorwaarden: provider.options wordt op deze Ultra-tekstroute geweigerd | Standaard— |
Veldcache_control.ttl | Typestring | VereisteOptioneel | Waarden en limieten Voorwaarden: 1h wordt op de daadwerkelijke locaties voor promptcaching geweigerd | Standaard— |
Combinaties van invoermaterialen
Tekst · UTF8-tekst
messages[].content
Methodeparameters en levenscyclus
| Parameter | Contract |
|---|---|
Parametercontent_type | Contractapplication/json |
Parameterrequired | Contractmodel, messages |
Parametermaterial_types | Contracttext |
Parametermessages | Contractberichtenarray met de structuur role/content |
Parameterfile_material | Contractwerkelijk UTF-8-document ingevoegd als letterlijke tekst; er wordt geen bestands-ID afgeleid |
Parameteroptional_controls | Contractstream, temperature, top_p, stop, max_tokens, max_completion_tokens, reasoning, response_format, tools, tool_choice |
Parametercontrol_scope | Contractmodelspecifiek; functietools van de gebruiker verschillen van gehoste tools |
Parameteroutput_modalities | Contracttext |
Parameterhosted_operations | Contractfalse |
Parametermultimodal_input_binding | Contractnull |
Levenscyclus: synchronous_or_streamed
Stuur het exacte model-ID mee met messages.
Contextlengte is geen uitvoerlimiet.
Een tekstbestand kan letterlijke tekst aanleveren; beeld-, audio- en bestandsobjectinvoer vereisen een exacte koppeling.
Tarieven
Tariefverwijzingen voegen geen verzoekopties toe. Ondersteunde parameters staan bij de geselecteerde methode.
- Snelle modus
- Standaardtarief Wanneer de snelle modus geselecteerd is
- Flex-modus
- Standaardtarief Wanneer de flex-modus geselecteerd is
- Maximale redeneerinspanning
- Standaardtarief Wanneer voor maximale redeneerinspanning de default-aanpassing wordt gebruikt
Ailoot-tarieven
Prijzen per configuratie
Koppel elke kostenpost aan de getoonde voorwaarden. Gebruik één tarief voor elke groep alternatieve configuraties.
| Configuratie | Tariefstaffel | Contexttokens, meer dan | Contexttokens, tot en met | Kosten |
|---|---|---|---|---|
| ConfiguratieBasistarieven voor tokens | TariefstaffelBasistarief | Contexttokens, meer dan— | Contexttokens, tot en metGeen bovengrens | Kosten Invoer · Invoertokens $0.0017 / 1K tokens Uitvoer · Uitvoertokens $0.0017 / 1K tokens Invoer · Cache lezen — / 1K tokens Invoer · Cache schrijven — / 1K tokens Invoer · Cache schrijven, 1 uur — / 1K tokens |
| ConfiguratieAanvraaglengte · niveau 1 | Tariefstaffel— | Contexttokens, meer dan0 | Contexttokens, tot en metGeen bovengrens | Kosten Invoer · Invoertokens $0.0017 / 1K tokens Uitvoer · Uitvoertokens $0.0017 / 1K tokens Invoer · Cache lezen — / 1K tokens Invoer · Cache schrijven — / 1K tokens Invoer · Cache schrijven, 1 uur — / 1K tokens |
Ailoot reserveert vóór een verzoek een geschat bedrag. Na het resultaat worden de uiteindelijke kosten afgerekend op basis van het gemeten verbruik. Bij streaming gebeurt de afrekening op basis van de definitieve verbruiksregistratie. Zo werken reservering en afrekening →
Voorbeeldverzoeken
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": "sao10k/l3.1-euryale-70b", "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='sao10k/l3.1-euryale-70b',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='sao10k/l3.1-euryale-70b',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")
Resultaten ophalen en opslaan
Ailoot Ultra · OpenAI Chat
json of SSE
Alle voltooide resultaten bewaren
Bewaar elk volledig teruggegeven antwoord, bestand en inhoudsonderdeel.
Bewaar elke keuze en de bijbehorende inhoud, toolaanroepen en redeneringen. Voeg in SSE delta’s samen per keuze-/toolindex en bewaar de uiteindelijke reden van beëindiging en de verbruiksgegevens.
Als het oorspronkelijke antwoord moet worden gecontroleerd
Bewaar aanvraag-/antwoord-ID’s en headers. Er wordt geen algemene URL meegeleverd om teksttaken op te halen.
Antwoordvelden
| Veld | Type |
|---|---|
Veldchoices[].index | Typeinteger |
Veldchoices[].message.content | Typestring|null |
Veldchoices[].message.tool_calls | Typetool_call[] |
Veldchoices[].message.reasoning_content | Typestring |
Veldchoices[].message.reasoning_details | Typeobject|array |
Veldchoices[].finish_reason | Typestring|null |
Veldusage | Typeobject |
Fouten en vervolgstappen
| Antwoord | Voorwaarde | Volgende stap |
|---|---|---|
Antwoord400 · invalid_request_error | VoorwaardeVerplichte velden, de materiaalrepresentatie of een parameterwaarde zijn ongeldig | Volgende stapCorrigeer de aangegeven velden vóór een nieuwe aanmaakaanvraag. |
Aliasnamen
Modelaliasnamen
Ailoot Ultra sao10k/l3.1-euryale-70b
Aliasnamen voor methodepaden
Gebruik de hierboven getoonde methodepaden.
Gerelateerde aanroeper-ID’s
Ailoot Ultra · Anthropic Messages POST /v1/messages sao10k/l3.1-euryale-70b
sao10k/l3.1-euryale-70bAan de slag
Euryale v2.2 van Sao10K is een tekst-fine-tune van Llama 3.1 70B voor conversaties met meerdere beurten, rollenspel en creatief schrijven. Het combineert geordend conversationeel en creatief trainingsmateriaal met Llama 3 Instruct-prompts en een configuratie met 131.072 posities.
- Toegestane invoer
- Tekst
- Resultaten
- json · sse
Beschikbaar in Ailoot · invoer en methoden
Ailoot Ultra · Anthropic Messages POST /v1/messages
- Invoer
text- Uitvoer
json,sse- Uitvoerformaat
- JSON of SSE
| Veld | Type | Vereiste | Waarden en limieten | Standaard |
|---|---|---|---|---|
Veldmodel | Typestring | VereisteVereist | Waarden en limieten sao10k/l3.1-euryale-70b | Standaard— |
Veldmessages | Typemessage[] | VereisteVereist | Waarden en limieten | Standaard— |
Veldmessages[].role | Typestring | VereisteVereist | Waarden en limieten user, assistant | Standaard— |
Veldmessages[].content | Typestring | VereisteVereist | Waarden en limieten | Standaard— |
Veldmax_tokens | Typeinteger | VereisteVereist | Waarden en limieten | Standaard— |
Veldstream | Typeboolean | VereisteOptioneel | Waarden en limieten | Standaardfalse |
Combinaties van invoermaterialen
Tekst · UTF-8-tekst
messages[].content als tekenreeks
Methodeparameters en levenscyclus
| Parameter | Contract |
|---|---|
Parametercontent_type | Contractapplication/json |
Parameterrequired | Contractmodel, messages, max_tokens |
Parameteroptional_controls | Contractstream |
Parametermaterial_types | Contracttext |
Parametertext_file_material | ContractLees het werkelijke UTF-8-document en plaats de tekst ervan in de aangegeven invoer of in de inhoudstekenreeks van een bericht. |
Levenscyclus: synchronous_or_streamed
Tarieven
Tariefverwijzingen voegen geen verzoekopties toe. Ondersteunde parameters staan bij de geselecteerde methode.
- Snelle modus
- Standaardtarief Wanneer de snelle modus geselecteerd is
- Flex-modus
- Standaardtarief Wanneer de flex-modus geselecteerd is
- Maximale redeneerinspanning
- Standaardtarief Wanneer voor maximale redeneerinspanning de default-aanpassing wordt gebruikt
Ailoot-tarieven
Prijzen per configuratie
Koppel elke kostenpost aan de getoonde voorwaarden. Gebruik één tarief voor elke groep alternatieve configuraties.
| Configuratie | Tariefstaffel | Contexttokens, meer dan | Contexttokens, tot en met | Kosten |
|---|---|---|---|---|
| ConfiguratieBasistarieven voor tokens | TariefstaffelBasistarief | Contexttokens, meer dan— | Contexttokens, tot en metGeen bovengrens | Kosten Invoer · Invoertokens $0.0017 / 1K tokens Uitvoer · Uitvoertokens $0.0017 / 1K tokens Invoer · Cache lezen — / 1K tokens Invoer · Cache schrijven — / 1K tokens Invoer · Cache schrijven, 1 uur — / 1K tokens |
| ConfiguratieAanvraaglengte · niveau 1 | Tariefstaffel— | Contexttokens, meer dan0 | Contexttokens, tot en metGeen bovengrens | Kosten Invoer · Invoertokens $0.0017 / 1K tokens Uitvoer · Uitvoertokens $0.0017 / 1K tokens Invoer · Cache lezen — / 1K tokens Invoer · Cache schrijven — / 1K tokens Invoer · Cache schrijven, 1 uur — / 1K tokens |
Ailoot reserveert vóór een verzoek een geschat bedrag. Na het resultaat worden de uiteindelijke kosten afgerekend op basis van het gemeten verbruik. Bij streaming gebeurt de afrekening op basis van de definitieve verbruiksregistratie. Zo werken reservering en afrekening →
Voorbeeldverzoeken
Ailoot Ultra · Anthropic Messages
{
"model": "sao10k/l3.1-euryale-70b",
"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': 'sao10k/l3.1-euryale-70b', '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': 'sao10k/l3.1-euryale-70b', '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))
Resultaten ophalen en opslaan
Ailoot Ultra · Anthropic Messages
JSON of SSE
Alle voltooide resultaten bewaren
Bewaar elk volledig teruggegeven antwoord, bestand en inhoudsonderdeel.
Bewaar alle inhoudsblokken, handtekeningen van redeneringen en werkelijke toolgebruik-ID’s. Voeg alle SSE-blokdelta’s samen; het eerste tekstblok is niet de volledige uitvoer.
Als het oorspronkelijke antwoord moet worden gecontroleerd
Bewaar aanvraag-/antwoord-ID’s en headers. Er wordt geen algemene URL meegeleverd om teksttaken op te halen.
Antwoordvelden
| Veld | Type |
|---|---|
Veldid | Typestring |
Veldmodel | Typestring |
Veldcontent[] | Typetext|thinking|tool_use|other content block |
Veldstop_reason | Typestring|null |
Veldusage | Typeobject |
Fouten en vervolgstappen
| Antwoord | Voorwaarde | Volgende stap |
|---|---|---|
Antwoord400 · invalid_request_error | VoorwaardeVerplichte velden, de materiaalrepresentatie of een parameterwaarde zijn ongeldig | Volgende stapCorrigeer de aangegeven velden vóór een nieuwe aanmaakaanvraag. |
Aliasnamen
Modelaliasnamen
Ailoot Ultra sao10k/l3.1-euryale-70b
Aliasnamen voor methodepaden
Gebruik de hierboven getoonde methodepaden.
Gerelateerde aanroeper-ID’s
FAQ · Sao10K: Llama 3.1 Euryale 70B v2.2
- Welke invoer en resultaten zijn beschikbaar?
POST /v1/chat/completions·sao10k/l3.1-euryale-70b:text→textPOST /v1/messages·sao10k/l3.1-euryale-70b:text→json,sse- Welke velden gebruikt het verzoek?
POST /v1/chat/completions·sao10k/l3.1-euryale-70b:model,messages,stream,modalities,providerPOST /v1/messages·sao10k/l3.1-euryale-70b:model,messages,max_tokens,stream- Welke limieten gelden?
POST /v1/chat/completions·sao10k/l3.1-euryale-70b:messages.min_items:1