Nous: Hermes 4 405B
Hermes 4 405B to tekstowy model hybrydowego rozumowania firmy Nous Research oparty na Llama 3.1 405B. Łączy sterowalny czat, jawny namysł, JSON trenowany pod kątem schematów i przeplatane wywołania funkcji do matematyki, programowania, pracy analitycznej i kontrolowanego pisania kreatywnego.
- Ailoot Ultra · OpenAI Chat
POST /v1/chat/completionsnousresearch/hermes-4-405b - Ailoot Ultra · Anthropic Messages
POST /v1/messagesnousresearch/hermes-4-405b
O modelu
Ten opis przedstawia możliwości modelu. Dane wejściowe, wyniki i opcje dostępne w Ailoot podano poniżej dla wybranej metody.
Hermes 4 405B to model rozumowania w trybie hybrydowym firmy Nous Research oparty na Llama 3.1 405B. Przyjmuje tekst i generuje tekst, w tym odpowiedź końcową, kod, uporządkowany JSON lub treść wywołania narzędzia. Producent rozwija tę edycję wokół zweryfikowanych zapisów rozumowania, silnej sterowalności przez użytkownika i wiernego zachowania formatu wyniku, utrzymując jednocześnie ogólne zadania asystenta i pisania kreatywnego.
Co zmienia się względem Hermes 3
Producent opisuje rozszerzony korpus treningu uzupełniającego, który liczy około 5 mln próbek i 60 mld tokenów oraz łączy dane z rozumowaniem i bez rozumowania. Hermes 4 dodaje jawny tryb hybrydowego rozumowania, poprawia docelowe zachowanie w matematyce, kodzie, STEM i logice oraz jest trenowany do przestrzegania schematów JSON i naprawiania nieprawidłowych obiektów. Są to zmiany edycji; nie należy zastępować ich reprezentacją promptów i wcześniejszym zachowaniem Hermes 3.
Dla zadania z rozumowaniem podaj kompletny problem, definicje i ograniczenia. Poproś o końcowe rozwiązanie lub artefakt kodu oddzielnie od analizy pośredniej. Praktyczny opis zadania brzmi: „Porównaj te warunki z proponowanym rozwiązaniem, wskaż niepoparty krok i zwróć poprawiony wniosek z wykorzystanymi założeniami”.
Format promptu i namysł
Hermes 4 używa formatu czatu Llama 3 z nagłówkami ról. Producent może aktywować rozumowanie przez flagę thinking w szablonie czatu lub instrukcję systemową definiującą to zachowanie. Gdy model rozważa problem, namysł jest ujęty w dedykowane znaczniki przed odpowiedzią końcową. Dodatkowe instrukcje systemowe mogą kształtować rolę, styl i format odpowiedzi.
Rozwiązanie referencyjne oferuje też keep_cots do zachowania treści namysłu. Jest to opcja szablonu, a nie stwierdzenie o nieograniczonej pamięci. Utrzymuj jasność zaakceptowanych faktów i wymagań zadania, aby pomysły pośrednie pozostawały odróżnialne od końcowych ustaleń. Dla pisania określ punkt widzenia, ton i materiał, który musi pozostać; dla ekstrakcji zdefiniuj żądany rekord, zamiast polegać na otwartym stylu asystenta.
Narzędzia i uporządkowane wyniki
Hermes 4 obsługuje wywołania funkcji przeplatane z rozumowaniem w turze asystenta. Narzędzia mają nazwy, opisy i schematy parametrów, dostarczane przez reprezentację systemową producenta lub pole tools interpretowane przez szablon. Model emituje obiekty wywołań JSON ujęte w znaczniki. Aplikacja parsuje i wykonuje wybraną funkcję oraz zwraca odpowiedź narzędzia, po czym model może kontynuować analizę i udzielić odpowiedzi.
Dla wyniku JSON podaj schemat i znaczenie każdego pola. Trening przestrzegania schematu lub naprawiania nieprawidłowych obiektów nie dowodzi, że każda zwrócona wartość jest zgodna z faktami. Porównaj obiekt ze źródłem, zachowaj dowody dla wyodrębnionych pól i zweryfikuj proponowane argumenty funkcji przed ich zastosowaniem.
Kontekst i wskazówki generowania
Opublikowana konfiguracja modelu ustawia max_position_embeddings na 131 072. Zaplanuj materiał źródłowy, rozmowę, rozumowanie, wyniki narzędzi i odpowiedź w obrębie kontekstu wybranego przepływu; to pole pozycji nie jest niezależnym sztywnym limitem wyjścia. Nous zaleca temperaturę 0.6, top-p 0.95 i top-k 20 dla swojego referencyjnego profilu próbkowania.
Przydatny wynik to odpowiedź poparta źródłami, propozycja kodu, uporządkowany rekord lub pisemny fragment, którego ograniczenia można sprawdzić. Przeglądaj wygenerowany kod w docelowej aplikacji i używaj rzeczywistych zwróconych obserwacji w kolejnych krokach. Zachowaj odrębność konkretnej edycji Hermes 4 405B, jej formatu czatu Llama i hybrydowego przepływu narzędzi od mniejszych wariantów, ChatML Hermes 3 i innych modeli pochodzących od Llama.
Zadanie praktyczne
Zadanie praktyczne
Przykład techniczny po angielsku
Repair an extracted record
Repair this draft record using only the source sentence. Source: 'Shipment R18 contains 14 blue lamps; delivery date is not yet agreed.' Draft: {shipment: 'R18', quantity: '41', colour: 'blue', delivery_date: 'Friday'}. Return valid JSON with shipment, quantity, colour and delivery_date; quantity must be an integer and an unknown date must be null. Briefly list the corrected fields afterward.Oczekiwany wynik
A requested JSON object with corrected quantity and unknown date, followed by a brief correction list.Sprawdź wynik
Parsing succeeds and no field contradicts the source; quantity is 14 and delivery_date is null.Ailoot Ultra · OpenAI Chat POST /v1/chat/completions nousresearch/hermes-4-405b
nousresearch/hermes-4-405bStart
Hermes 4 405B to tekstowy model hybrydowego rozumowania firmy Nous Research oparty na Llama 3.1 405B. Łączy sterowalny czat, jawny namysł, JSON trenowany pod kątem schematów i przeplatane wywołania funkcji do matematyki, programowania, pracy analitycznej i kontrolowanego pisania kreatywnego.
- Akceptowane dane wejściowe
- Tekst
- Wyniki
- Tekst
Dostępne w Ailoot · dane wejściowe i metody
Ailoot Ultra · OpenAI Chat POST /v1/chat/completions
- Wejście
text- Wyjście
text- Format wyjściowy
- json lub SSE
| Pole | Typ | Wymaganie | Wartości i limity | Domyślnie |
|---|---|---|---|---|
Polemodel | Typstring | WymaganieWymagane | Wartości i limity nousresearch/hermes-4-405b | Domyślnie— |
Polemessages | Typmessage[] | WymaganieWymagane | Wartości i limity Minimalna liczba elementów: 1 | Domyślnie— |
Polemessages[].role | Typstring | WymaganieWymagane | Wartości i limity Przykłady: system, user, assistant, tool, function Warunki: Te role są jawnie reprezentowane przez typy zgodności w kodzie źródłowym; dokładny zestaw ról pozostaje właściwy dla danego modelu. Zależy od modelu | Domyślnie— |
Polemessages[].content | Typstring|content_part[]|null | WymaganieOpcjonalne | Wartości i limity | Domyślnie— |
Polemessages[].tool_calls | Typtool_call[] | WymaganieOpcjonalne | Wartości i limity | Domyślnie— |
Polemessages[].tool_call_id | Typstring | WymaganieOpcjonalne | Wartości i limity Obowiązuje, gdy: role=tool; użyj rzeczywiście zwróconego ID | Domyślnie— |
Polemessages[].name | Typstring | WymaganieOpcjonalne | Wartości i limity | Domyślnie— |
Polemessages[].reasoning_content | Typstring | WymaganieOpcjonalne | Wartości i limity Obowiązuje, gdy: Przekazuj z powrotem rzeczywiście zwróconą treść rozumowania, gdy ten model jej używa | Domyślnie— |
Polemessages[].reasoning_details | Typobject|array | WymaganieOpcjonalne | Wartości i limity Zależy od modelu | Domyślnie— |
Polemax_tokens | Typinteger | WymaganieOpcjonalne | Wartości i limity Minimum: 1 Zależy od modelu | Domyślnie— |
Polemax_completion_tokens | Typinteger | WymaganieOpcjonalne | Wartości i limity Minimum: 1 Zależy od modelu | Domyślnie— |
Polestream | Typboolean | WymaganieOpcjonalne | Wartości i limity | Domyślniefalse |
Polestream_options.include_usage | Typboolean | WymaganieOpcjonalne | Wartości i limity Zależy od modelu | Domyślnie— |
Poletemperature | Typnumber | WymaganieOpcjonalne | Wartości i limity Zależy od modelu | Domyślnie— |
Poletop_p | Typnumber | WymaganieOpcjonalne | Wartości i limity Zależy od modelu | Domyślnie— |
Polestop | Typstring|string[] | WymaganieOpcjonalne | Wartości i limity Zależy od modelu | Domyślnie— |
Poletools | Typfunction_tool[] | WymaganieOpcjonalne | Wartości i limity Zależy od modelu | Domyślnie— |
Poletools[].type | Typstring | WymaganieOpcjonalne | Wartości i limity function Zależy od modelu | Domyślnie— |
Poletools[].function.name | Typstring | WymaganieWymagane | Wartości i limity Obowiązuje, gdy: udostępnione narzędzie funkcji | Domyślnie— |
Poletools[].function.description | Typstring | WymaganieOpcjonalne | Wartości i limity | Domyślnie— |
Poletools[].function.parameters | TypJSON_schema | WymaganieOpcjonalne | Wartości i limity | Domyślnie— |
Poletool_choice | Typstring|object | WymaganieOpcjonalne | Wartości i limity Zależy od modelu | Domyślnie— |
Poleparallel_tool_calls | Typboolean | WymaganieOpcjonalne | Wartości i limity Zależy od modelu | Domyślnie— |
Poleresponse_format | Typobject | WymaganieOpcjonalne | Wartości i limity Zależy od modelu | Domyślnie— |
Polereasoning_effort | Typstring | WymaganieOpcjonalne | Wartości i limity Zależy od modelu | Domyślnie— |
Polereasoning | Typobject | WymaganieOpcjonalne | Wartości i limity Zależy od modelu | Domyślnie— |
Poleservice_tier | Typstring | WymaganieOpcjonalne | Wartości i limity Zależy od modelu | Domyślnie— |
Poleinstructions | Typstring | WymaganieOpcjonalne | Wartości i limity Pole zgodności | Domyślnie— |
Polefunctions | Typfunction[] | WymaganieOpcjonalne | Wartości i limity Zależy od modelu | Domyślnie— |
Polefunction_call | Typstring|object | WymaganieOpcjonalne | Wartości i limity Zależy od modelu | Domyślnie— |
Poleprompt_cache_options | Typobject | WymaganieOpcjonalne | Wartości i limity Zależy od modelu | Domyślnie— |
Polemodalities | Typstring[] | WymaganieOpcjonalne | Wartości i limity text | Domyślnie— |
Poleprovider | Typobject | WymaganieOpcjonalne | Wartości i limity Warunki: provider.options jest odrzucane na tej tekstowej trasie Ultra | Domyślnie— |
Polecache_control.ttl | Typstring | WymaganieOpcjonalne | Wartości i limity Warunki: 1h jest odrzucane w rzeczywistych miejscach pamięci podręcznej promptów | Domyślnie— |
Kombinacje materiałów wejściowych
Tekst · tekst UTF8
messages[].content
Parametry i cykl życia metody
| Parametr | Kontrakt |
|---|---|
Parametrcontent_type | Kontraktapplication/json |
Parametrrequired | Kontraktmodel, messages |
Parametrmaterial_types | Kontrakttext |
Parametrmessages | Kontrakttablica wiadomości o strukturze role/content |
Parametrfile_material | Kontraktrzeczywisty dokument UTF-8 wstawiony jako dosłowny tekst; bez wywnioskowanego ID pliku |
Parametroptional_controls | Kontraktstream, temperature, top_p, stop, max_tokens, max_completion_tokens, reasoning, response_format, tools, tool_choice |
Parametrcontrol_scope | Kontraktwłaściwe dla modelu; narzędzia funkcji użytkownika różnią się od narzędzi hostowanych |
Parametroutput_modalities | Kontrakttext |
Parametrhosted_operations | Kontraktfalse |
Parametrmultimodal_input_binding | Kontraktnull |
Cykl życia: synchronous_or_streamed
Wyślij dokładne ID modelu wraz z messages.
Długość kontekstu nie jest limitem wyjścia.
Plik tekstowy może dostarczyć dosłowny tekst; wejścia obrazowe/dźwiękowe/obiekty plików wymagają dokładnego powiązania.
Cennik
Informacje taryfowe nie dodają opcji żądania. Obsługiwane parametry podano przy wybranej metodzie.
- Tryb szybki
- Stawka standardowa Gdy wybrany jest tryb szybki
- Tryb flex
- Stawka standardowa Gdy wybrany jest tryb flex
- Maksymalna intensywność rozumowania
- Stawka standardowa Gdy dla maksymalnej intensywności rozumowania stosowana jest domyślna korekta (default)
Stawki Ailoot
Ceny według konfiguracji
Dopasuj każdą opłatę do pokazanych warunków. Użyj jednej stawki dla każdego zestawu alternatywnych konfiguracji.
| Konfiguracja | Tabela stawek | Tokeny kontekstu, więcej niż | Tokeny kontekstu, do podanej wartości włącznie | Opłata |
|---|---|---|---|---|
| KonfiguracjaPodstawowe stawki za tokeny | Tabela stawekStawka podstawowa | Tokeny kontekstu, więcej niż— | Tokeny kontekstu, do podanej wartości włącznieBez górnej granicy | Opłata Wejście · Tokeny wejściowe $0.002 / 1K tokenów Wyjście · Tokeny wyjściowe $0.006 / 1K tokenów Wejście · Odczyt cache — / 1K tokenów Wejście · Zapis do cache — / 1K tokenów Wejście · Zapis do cache, 1 godz. — / 1K tokenów |
| KonfiguracjaPrzedział długości żądania 1 | Tabela stawek— | Tokeny kontekstu, więcej niż0 | Tokeny kontekstu, do podanej wartości włącznieBez górnej granicy | Opłata Wejście · Tokeny wejściowe $0.002 / 1K tokenów Wyjście · Tokeny wyjściowe $0.006 / 1K tokenów Wejście · Odczyt cache — / 1K tokenów Wejście · Zapis do cache — / 1K tokenów Wejście · Zapis do cache, 1 godz. — / 1K tokenów |
Ailoot rezerwuje szacowaną kwotę przed żądaniem. Po otrzymaniu wyniku rozlicza ostateczną opłatę według zmierzonego użycia. Rozliczenie strumieniowania korzysta z końcowego rekordu użycia. Jak działają rezerwacja i rozliczenie →
Przykładowe żądania
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": "nousresearch/hermes-4-405b", "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='nousresearch/hermes-4-405b',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='nousresearch/hermes-4-405b',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")
Odbieranie i zapisywanie wyników
Ailoot Ultra · OpenAI Chat
json lub SSE
Zachowaj wszystkie ukończone wyniki
Zachowaj każdą kompletną zwróconą odpowiedź, plik i część treści.
Zachowaj każdy wariant i jego treść/wywołania narzędzi/rozumowanie. W SSE składaj przyrosty według indeksu wariantu/narzędzia, zachowując końcowy powód zakończenia i dane użycia.
Jeśli trzeba sprawdzić pierwotną odpowiedź
Zachowaj ID i nagłówki żądań/odpowiedzi. Nie udostępniono ogólnego URL pobierania zadania tekstowego.
Pola odpowiedzi
| Pole | Typ |
|---|---|
Polechoices[].index | Typinteger |
Polechoices[].message.content | Typstring|null |
Polechoices[].message.tool_calls | Typtool_call[] |
Polechoices[].message.reasoning_content | Typstring |
Polechoices[].message.reasoning_details | Typobject|array |
Polechoices[].finish_reason | Typstring|null |
Poleusage | Typobject |
Błędy i dalsze kroki
| Odpowiedź | Warunek | Następny krok |
|---|---|---|
Odpowiedź400 · invalid_request_error | WarunekNieprawidłowe wymagane pola, sposób reprezentacji materiału lub wartość parametru | Następny krokPopraw wskazane pola przed nowym żądaniem utworzenia. |
Aliasy
Aliasy modelu
Ailoot Ultra nousresearch/hermes-4-405b
Aliasy ścieżek metod
Użyj ścieżek metod podanych powyżej.
Powiązane ID modeli
Ailoot Ultra · Anthropic Messages POST /v1/messages nousresearch/hermes-4-405b
nousresearch/hermes-4-405bStart
Hermes 4 405B to tekstowy model hybrydowego rozumowania firmy Nous Research oparty na Llama 3.1 405B. Łączy sterowalny czat, jawny namysł, JSON trenowany pod kątem schematów i przeplatane wywołania funkcji do matematyki, programowania, pracy analitycznej i kontrolowanego pisania kreatywnego.
- Akceptowane dane wejściowe
- Tekst
- Wyniki
- json · sse
Dostępne w Ailoot · dane wejściowe i metody
Ailoot Ultra · Anthropic Messages POST /v1/messages
- Wejście
text- Wyjście
json,sse- Format wyjściowy
- JSON lub SSE
| Pole | Typ | Wymaganie | Wartości i limity | Domyślnie |
|---|---|---|---|---|
Polemodel | Typstring | WymaganieWymagane | Wartości i limity nousresearch/hermes-4-405b | Domyślnie— |
Polemessages | Typmessage[] | WymaganieWymagane | Wartości i limity | Domyślnie— |
Polemessages[].role | Typstring | WymaganieWymagane | Wartości i limity user, assistant | Domyślnie— |
Polemessages[].content | Typstring | WymaganieWymagane | Wartości i limity | Domyślnie— |
Polemax_tokens | Typinteger | WymaganieWymagane | Wartości i limity | Domyślnie— |
Polestream | Typboolean | WymaganieOpcjonalne | Wartości i limity | Domyślniefalse |
Kombinacje materiałów wejściowych
Tekst · tekst UTF-8
ciąg messages[].content
Parametry i cykl życia metody
| Parametr | Kontrakt |
|---|---|
Parametrcontent_type | Kontraktapplication/json |
Parametrrequired | Kontraktmodel, messages, max_tokens |
Parametroptional_controls | Kontraktstream |
Parametrmaterial_types | Kontrakttext |
Parametrtext_file_material | KontraktOdczytaj rzeczywisty dokument UTF-8 i umieść jego tekst we wskazanym polu input lub w ciągu treści wiadomości. |
Cykl życia: synchronous_or_streamed
Cennik
Informacje taryfowe nie dodają opcji żądania. Obsługiwane parametry podano przy wybranej metodzie.
- Tryb szybki
- Stawka standardowa Gdy wybrany jest tryb szybki
- Tryb flex
- Stawka standardowa Gdy wybrany jest tryb flex
- Maksymalna intensywność rozumowania
- Stawka standardowa Gdy dla maksymalnej intensywności rozumowania stosowana jest domyślna korekta (default)
Stawki Ailoot
Ceny według konfiguracji
Dopasuj każdą opłatę do pokazanych warunków. Użyj jednej stawki dla każdego zestawu alternatywnych konfiguracji.
| Konfiguracja | Tabela stawek | Tokeny kontekstu, więcej niż | Tokeny kontekstu, do podanej wartości włącznie | Opłata |
|---|---|---|---|---|
| KonfiguracjaPodstawowe stawki za tokeny | Tabela stawekStawka podstawowa | Tokeny kontekstu, więcej niż— | Tokeny kontekstu, do podanej wartości włącznieBez górnej granicy | Opłata Wejście · Tokeny wejściowe $0.002 / 1K tokenów Wyjście · Tokeny wyjściowe $0.006 / 1K tokenów Wejście · Odczyt cache — / 1K tokenów Wejście · Zapis do cache — / 1K tokenów Wejście · Zapis do cache, 1 godz. — / 1K tokenów |
| KonfiguracjaPrzedział długości żądania 1 | Tabela stawek— | Tokeny kontekstu, więcej niż0 | Tokeny kontekstu, do podanej wartości włącznieBez górnej granicy | Opłata Wejście · Tokeny wejściowe $0.002 / 1K tokenów Wyjście · Tokeny wyjściowe $0.006 / 1K tokenów Wejście · Odczyt cache — / 1K tokenów Wejście · Zapis do cache — / 1K tokenów Wejście · Zapis do cache, 1 godz. — / 1K tokenów |
Ailoot rezerwuje szacowaną kwotę przed żądaniem. Po otrzymaniu wyniku rozlicza ostateczną opłatę według zmierzonego użycia. Rozliczenie strumieniowania korzysta z końcowego rekordu użycia. Jak działają rezerwacja i rozliczenie →
Przykładowe żądania
Ailoot Ultra · Anthropic Messages
{
"model": "nousresearch/hermes-4-405b",
"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': 'nousresearch/hermes-4-405b', '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': 'nousresearch/hermes-4-405b', '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))
Odbieranie i zapisywanie wyników
Ailoot Ultra · Anthropic Messages
JSON lub SSE
Zachowaj wszystkie ukończone wyniki
Zachowaj każdą kompletną zwróconą odpowiedź, plik i część treści.
Zachowaj wszystkie bloki treści, sygnatury myślenia i rzeczywiste ID użycia narzędzi. Złóż wszystkie przyrosty bloków SSE; pierwszy blok tekstowy nie jest pełnym wyjściem.
Jeśli trzeba sprawdzić pierwotną odpowiedź
Zachowaj ID i nagłówki żądań/odpowiedzi. Nie udostępniono ogólnego URL pobierania zadania tekstowego.
Pola odpowiedzi
| Pole | Typ |
|---|---|
Poleid | Typstring |
Polemodel | Typstring |
Polecontent[] | Typtext|thinking|tool_use|other content block |
Polestop_reason | Typstring|null |
Poleusage | Typobject |
Błędy i dalsze kroki
| Odpowiedź | Warunek | Następny krok |
|---|---|---|
Odpowiedź400 · invalid_request_error | WarunekNieprawidłowe wymagane pola, sposób reprezentacji materiału lub wartość parametru | Następny krokPopraw wskazane pola przed nowym żądaniem utworzenia. |
Aliasy
Aliasy modelu
Ailoot Ultra nousresearch/hermes-4-405b
Aliasy ścieżek metod
Użyj ścieżek metod podanych powyżej.
Powiązane ID modeli
FAQ · Nous: Hermes 4 405B
- Jakie dane wejściowe i wyniki są dostępne?
POST /v1/chat/completions·nousresearch/hermes-4-405b:text→textPOST /v1/messages·nousresearch/hermes-4-405b:text→json,sse- Jakich pól używa żądanie?
POST /v1/chat/completions·nousresearch/hermes-4-405b:model,messages,stream,modalities,providerPOST /v1/messages·nousresearch/hermes-4-405b:model,messages,max_tokens,stream- Jakie limity obowiązują?
POST /v1/chat/completions·nousresearch/hermes-4-405b:messages.min_items:1