Source: https://ailoot.ai/models/hu/nvidia-nemotron-3-5-content-safety/
Canonical: https://ailoot.ai/models/hu/nvidia-nemotron-3-5-content-safety/
Language: hu

# NVIDIA: Nemotron 3.5 Content Safety

[Markdown](https://ailoot.ai/models/hu/nvidia-nemotron-3-5-content-safety/index.md) · [JSON](https://ailoot.ai/models/hu/nvidia-nemotron-3-5-content-safety/facts.json)

## [NVIDIA: Nemotron 3.5 Content Safety](https://ailoot.ai/models/hu/nvidia-nemotron-3-5-content-safety/)

A Nemotron 3.5 Content Safety az NVIDIA 4 milliárd paraméteres, multimodális védelmi modellje promptok és válaszok ellenőrzéséhez. Szöveget és képeket fogad, majd biztonságos vagy nem biztonságos besorolást, biztonsági címkéket és opcionális következtetést ad vissza, 12 nyelvre kiterjedően.

- [**Ailoot · OpenAI Chat** `POST /v1/chat/completions` `nvidia/nemotron-3.5-content-safety`](https://ailoot.ai/models/hu/nvidia-nemotron-3-5-content-safety/#method-0)
- [**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions` `nvidia/nemotron-3.5-content-safety`](https://ailoot.ai/models/hu/nvidia-nemotron-3-5-content-safety/#method-1)
- [**Ailoot Ultra · Anthropic Messages** `POST /v1/messages` `nvidia/nemotron-3.5-content-safety`](https://ailoot.ai/models/hu/nvidia-nemotron-3-5-content-safety/#method-2)
- [**Ailoot · OpenAI Chat** `POST /v1/chat/completions` `nemotron-content-safety`](https://ailoot.ai/models/hu/nvidia-nemotron-3-5-content-safety/#method-3)
- [**Ailoot · OpenAI Chat** `POST /v1/chat/completions` `nemotron-content-safety-latest`](https://ailoot.ai/models/hu/nvidia-nemotron-3-5-content-safety/#method-4)

A modellről

Ez a leírás a modell képességeit ismerteti. Az Ailootban elérhető bemenetek, kimenetek és lehetőségek alább, a kiválasztott metódusnál láthatók.

A Nemotron 3.5 Content Safety az NVIDIA kompakt, multimodális védelmi modellje, amelyet a négymilliárd paraméteres Google Gemma-3-4B modellből finomhangoltak. Nyelvi és látás-nyelvi modellek bemeneteit és válaszait ellenőrzi. Szöveget és képeket fogad; kimenete biztonságos vagy nem biztonságos besorolást, biztonsági kategóriacímkéket és opcionálisan következtetési menetet tartalmazó szöveg.

#### A prompt és a válasz ellenőrzése

Adja meg az értékelendő anyagot, és azonosítsa, melyik rész a felhasználói bemenet és melyik a modell válasza. Őrizze meg a kapcsolatukat, ha a válasz egy utasítástól vagy képi forrástól függ. Egy hasznos ellenőrzési eredmény együtt tartja a besorolást azzal a pontos tartalommal, amelyet értékelt, hogy egy későbbi olvasó megvizsgálhassa a megjelölt elem indokát.

A profil egy nagyobb alkalmazáson belül promptmoderáláshoz, válaszmoderáláshoz, tartalomosztályozáshoz és biztonsági ellenőrzéshez alkalmas. A kapcsolódó alkalmazás választja ki a szabályzat szerinti műveletet, például egy elem ellenőrzésre való megőrzését vagy egy munkafolyamat folytatását. Ezt a műveletet különítse el a modell által visszaadott besorolástól.

#### Multimodális bizonyíték és következtetés

Az átadott kép az értékelt tartalom része lehet. Azonosítóját őrizze meg a kapcsolódó szöveggel együtt, hogy a biztonsági címke a megfelelő forráshoz kötve maradjon. A közzétett profil 12 nyelvre terjed ki, és 131 072 tokenes kontextusablakot sorol fel. A tervezett nyelvből származó, reprezentatív anyagot használjon, és hosszabb bemenetnél őrizze meg az értékelést meghatározó részleteket.

A következtetés a dokumentált profilban be- és kikapcsolható. Ha szerepel a kimenetben, a magyarázatot a besorolással és az eredeti tartalommal együtt vizsgálja meg. Egy kategóriacímke és magyarázata külön célt szolgál: az egyik a szabályzati döntést támogatja, a másik segít az ellenőrzőnek megérteni az értékelést.

#### A besorolás használata szabályzati munkafolyamatban

A modell biztonsági eredményt ad vissza, nem pedig maga hajtja végre a szabályzati műveletet. A kimenetet rendelje a tartalom azonosítójához, a kétértelmű eseteket ellenőrizze a forrás alapján, és őrizze meg az alkalmazás vagy az ellenőrző által később hozott döntéseket. A közzétett felület nem tesz elérhetővé függvényeszközöket és nem kényszerít ki JSON-válaszformátumot, ezért az alkalmazásnak ellenőriznie kell a ténylegesen visszaadott eredményt, mielőtt feldolgozza annak mezőit.

A hasznos védelmi eredmény összekapcsolja az értékelt promptot vagy választ, a releváns képhivatkozásokat, a besorolást, a kategóriacímkéket és az esetlegesen visszaadott következtetést. A szabályzati munkafolyamat auditálásakor vagy javításakor ezeket a részeket tartsa együtt.

Gyakorlati feladat

### Gyakorlati feladat

Technikai példa angolul

```
Review a benign prompt-response pair

Review this exact text pair for content safety. User: 'How can I organize my public reading list by author?' Assistant: 'Sort the entries by the author surname, keeping titles with their authors.' Identify the user prompt and assistant response separately. Return documented safe or unsafe classifications and, if supplied, a brief reason. Do not execute a moderation action.
```

#### Várt eredmény

```
A safety result associated separately with the supplied prompt and response, using safe/unsafe labels.
```

#### Az eredmény ellenőrzése

```
Check classifications stay attached to the correct text and no undocumented category vocabulary is added.
```

**Ailoot · OpenAI Chat** `POST /v1/chat/completions` `nvidia/nemotron-3.5-content-safety`

[`nvidia/nemotron-3.5-content-safety`](https://ailoot.ai/models/hu/#m=nvidia%2Fnemotron-3.5-content-safety&route=Core&caller=nvidia%2Fnemotron-3.5-content-safety&fmt=chat)

NVIDIA /`nvidia/nemotron-3.5-content-safety`

Modell ID-ja

- `nvidia/nemotron-3.5-content-safety`
- `nemotron-content-safety`
- `nemotron-content-safety-latest`

### Kezdő lépések

A Nemotron 3.5 Content Safety az NVIDIA 4 milliárd paraméteres, multimodális védelmi modellje promptok és válaszok ellenőrzéséhez. Szöveget és képeket fogad, majd biztonságos vagy nem biztonságos besorolást, biztonsági címkéket és opcionális következtetést ad vissza, 12 nyelvre kiterjedően.

Elfogadott bemenetek

Szöveg

Eredmények

Szöveg

### Elérhető az Ailootban · bemenetek és metódusok

**Ailoot · OpenAI Chat** `POST /v1/chat/completions`

Bemenet

`text`

Kimenet

`text`

Kontextus

4096 tokens

Maximális kimenet

1024 tokens

Kimeneti formátum

json vagy SSE

| Mező | Típus | Követelmény | Értékek és korlátok | Alapértelmezett |
| --- | --- | --- | --- | --- |
| Mező`model` | Típus`string` | KövetelményKötelező | Értékek és korlátok nvidia/nemotron-3.5-content-safety | Alapértelmezett— |
| Mező`messages` | Típus`message[]` | KövetelményKötelező | Értékek és korlátok Minimális elemszám: 1 | Alapértelmezett— |
| Mező`messages[].role` | Típus`string` | KövetelményKötelező | Értékek és korlátok Példák: system, user, assistant, tool, function Feltételek: Ezeket a szerepeket a forráskód kompatibilitási típusai kifejezetten reprezentálják; a pontos szerepkészlet továbbra is modellspecifikus. Modelltől függ | Alapértelmezett— |
| Mező`messages[].content` | Típus`string\|content_part[]\|null` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`messages[].tool_calls` | Típus`tool_call[]` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`messages[].tool_call_id` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Akkor alkalmazandó, ha: role=tool; használja a ténylegesen visszaadott ID-t | Alapértelmezett— |
| Mező`messages[].name` | Típus`string` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`messages[].reasoning_content` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Akkor alkalmazandó, ha: Küldje vissza a ténylegesen visszaadott gondolkodási tartalmat, ha ez a modell használja | Alapértelmezett— |
| Mező`messages[].reasoning_details` | Típus`object\|array` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`max_tokens` | Típus`integer` | KövetelményOpcionális | Értékek és korlátok Minimum: 1 Modelltől függ | Alapértelmezett— |
| Mező`max_completion_tokens` | Típus`integer` | KövetelményOpcionális | Értékek és korlátok Minimum: 1 Modelltől függ | Alapértelmezett— |
| Mező`stream` | Típus`boolean` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezettfalse |
| Mező`stream_options.include_usage` | Típus`boolean` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`temperature` | Típus`number` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`top_p` | Típus`number` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`stop` | Típus`string\|string[]` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`tools` | Típus`function_tool[]` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`tools[].type` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`tools[].function.name` | Típus`string` | KövetelményKötelező | Értékek és korlátok Akkor alkalmazandó, ha: Függvényeszköz megadva | Alapértelmezett— |
| Mező`tools[].function.description` | Típus`string` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`tools[].function.parameters` | Típus`JSON_schema` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`tool_choice` | Típus`string\|object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`parallel_tool_calls` | Típus`boolean` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`response_format` | Típus`object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`reasoning_effort` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`reasoning` | Típus`object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`service_tier` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`instructions` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Kompatibilitási mező | Alapértelmezett— |
| Mező`functions` | Típus`function[]` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`function_call` | Típus`string\|object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`prompt_cache_options` | Típus`object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |

Bemeneti anyagok kombinációi

**Szöveg** · UTF8 szöveg

`messages[].content`

Metódus paraméterei és életciklusa

| Paraméter | Szerződés |
| --- | --- |
| Paraméter`material_types` | Szerződéstext |
| Paraméter`required` | Szerződésmodel, messages |
| Paraméter`optional_controls` | Szerződésnull |
| Paraméter`content_type` | Szerződésapplication/json |
| Paraméter`text_file_material` | Szerződésa tényleges UTF-8 tartalom szövegként beillesztve; a fájlazonosítók/URLs külön, pontos támogatást igényelnek |

Életciklus: `exact retained published method`

A metódusok szerkezete és azonosítói pontosak; a beszállítói képesség különbözik a kérelmek befogadásától.

### Díjcsomagok

#### Ailoot-metódusok díjai

Bemenet

0,0002 USD */ 1K*

Kimenet

0,0002 USD */ 1K*

Gyorsítótár olvasása

0,0002 USD */ 1K*

Írás a gyorsítótárba

0,0002 USD */ 1K*

Írás a gyorsítótárba, 5 perc

0,0002 USD */ 1K tokens*

Az Ailoot a kérés előtt becsült összeget foglal le. Az eredmény után a mért használat alapján elszámolja a végső díjat. Folyamatos átvitel esetén a végső használati rekordot használja. [A foglalás és az elszámolás működése →](https://ailoot.ai/docs/hu/billing/reserve/)

#### A referencia-díjszabás részletei

A modellszintű referenciatáblázatok nem módosítják a metódusválasztást, az árajánlatokat vagy a díjakat. A tényleges díjak a kiválasztott Ailoot-metódus díjtételeit használják.

Modell referenciatáblázatai

#### Árak beállításonként

Minden díjat a megjelenített feltételekhez rendeljen. Az alternatív beállítások minden csoportjához egy díjtételt használjon.

| Beállítás | Díjtáblázat | Kontextustokenek, több mint | Kontextustokenek, legfeljebb | Díj |
| --- | --- | --- | --- | --- |
| BeállításOpenAI Chat · Alap tokendíjak | DíjtáblázatAlapdíj | Kontextustokenek, több mint— | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0004** / 1K token Kimenet · Kimeneti tokenek **$0.0004** / 1K token Bemenet · Gyorsítótár olvasása **—** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításOpenAI Chat · Kéréshossz szerinti 1. díjsáv | Díjtáblázat— | Kontextustokenek, több mint0 | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0004** / 1K token Kimenet · Kimeneti tokenek **$0.0004** / 1K token Bemenet · Gyorsítótár olvasása **—** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításAnthropic Messages · Alap tokendíjak | DíjtáblázatAlapdíj | Kontextustokenek, több mint— | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0004** / 1K token Kimenet · Kimeneti tokenek **$0.0004** / 1K token Bemenet · Gyorsítótár olvasása **—** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításAnthropic Messages · Kéréshossz szerinti 1. díjsáv | Díjtáblázat— | Kontextustokenek, több mint0 | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0004** / 1K token Kimenet · Kimeneti tokenek **$0.0004** / 1K token Bemenet · Gyorsítótár olvasása **—** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |

### Példakérések

#### Ailoot · OpenAI Chat

Szöveges példaPython SDKNode.js SDKPython-adatfolyam

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 source-material file}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "nvidia/nemotron-3.5-content-safety", "messages": []}')
f=Path(os.environ["AILOOT_TEXT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 source material")
text=f.read_text(encoding="utf-8")
if not text.strip():raise SystemExit("Source material must contain text")
p["messages"]=[{"role":"user","content":"Summarize this material and quote supporting source passages.\n\n"+text}]
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
print(json.dumps(json.loads(Path("result.json").read_text()),ensure_ascii=False,indent=2))
PY_RESULT
```

```python
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)
resp = client.chat.completions.create(
    model="nvidia/nemotron-3.5-content-safety",
    messages=[{"role": "user", "content": "Explain the difference between an observation and a hypothesis 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(resp.to_dict(mode="json"))
```

```js
import OpenAI from "openai";

if (!process.env.AILOOT_API_KEY?.trim()) throw new Error("Set AILOOT_API_KEY before making a request");
const client = new OpenAI({ baseURL: "https://api.ailoot.ai/v1", apiKey: process.env.AILOOT_API_KEY, maxRetries: 0 });
const resp = await client.chat.completions.create({
  model: "nvidia/nemotron-3.5-content-safety",
  messages: [{ role: "user", content: "Explain the difference between an observation and a hypothesis in three sentences." }],
});
import { writeFileSync } from "node:fs";

function saveResult(data, stem = "result") {
  writeFileSync(stem + ".json", JSON.stringify(data, null, 2));
  console.log(JSON.stringify(data, null, 2));
  const saveBlob = (encoded, suffix, label) => {
    const raw = Buffer.from(encoded, "base64");
    const ext = raw.subarray(0,8).equals(Buffer.from([137,80,78,71,13,10,26,10])) ? "png" : raw[0]===255 && raw[1]===216 ? "jpg" : raw.subarray(0,4).toString()==="RIFF" && raw.subarray(8,12).toString()==="WEBP" ? "webp" : suffix;
    const file = `${stem}-${label}.${ext}`;
    writeFileSync(file, raw); console.log("Saved", file);
  };
  for (const [i, block] of (data.content || []).entries()) console.log("Content", i, JSON.stringify(block));
  for (const choice of data.choices || []) console.log("Choice", choice.index, JSON.stringify(choice.message || choice.delta || {}));
  for (const [i, item] of (data.output || []).entries()) {
    console.log("Output", i, JSON.stringify(item));
    if (item.type === "image_generation_call" && item.result) saveBlob(item.result, item.output_format || "bin", `output-${i}`);
  }
  for (const [ci, candidate] of (data.candidates || []).entries()) {
    for (const [pi, part] of (candidate.content?.parts || []).entries()) {
      console.log("Candidate/part", ci, pi, JSON.stringify(part));
      const blob = part.inlineData || part.inline_data;
      if (blob?.data) {
        const mime = blob.mimeType || blob.mime_type;
        const suffix = ({"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"})[mime] || "bin";
        saveBlob(blob.data, suffix, `candidate-${ci}-part-${pi}`);
      }
    }
  }
}

saveResult(resp);
```

```python
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='nvidia/nemotron-3.5-content-safety',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")
```

### Eredmények fogadása és mentése

#### Ailoot · OpenAI Chat

json vagy SSE

##### Őrizzen meg minden elkészült eredményt

Őrizzen meg minden teljes visszaadott választ, fájlt és tartalomrészt.

Őrizze meg az összes válaszváltozatot és azok tartalmát/eszközhívásait/gondolkodási tartalmát. SSE esetén válaszváltozat- és eszközindex szerint állítsa össze a részleges frissítéseket, és tartsa meg a végső befejezési okot és a használati adatokat.

##### Ha az eredeti választ ellenőrizni kell

Őrizze meg a kérés-/válaszazonosítókat és a fejléceket. Nincs megadva általános URL a szöveges feladatok lekéréséhez.

Válaszmezők

| Mező | Típus |
| --- | --- |
| Mező`choices[].index` | Típusinteger |
| Mező`choices[].message.content` | Típusstring\|null |
| Mező`choices[].message.tool_calls` | Típustool\_call\[\] |
| Mező`choices[].message.reasoning_content` | Típusstring |
| Mező`choices[].message.reasoning_details` | Típusobject\|array |
| Mező`choices[].finish_reason` | Típusstring\|null |
| Mező`usage` | Típusobject |

Hibák és következő lépések

| Válasz | Feltétel | Következő lépés |
| --- | --- | --- |
| Válasz400 · `invalid_request_error` | FeltételÉrvénytelen kötelező mezők, az anyag érvénytelen reprezentációja vagy érvénytelen paraméterérték | Következő lépésJavítsa a jelzett mezőket egy új létrehozási kérés előtt. |

### Álnevek

#### Modell álnevei

<strong>Ailoot</strong> [`nvidia/nemotron-3.5-content-safety`](https://ailoot.ai/models/hu/#m=nvidia%2Fnemotron-3.5-content-safety&route=Core&caller=nvidia%2Fnemotron-3.5-content-safety&fmt=chat), [`nemotron-content-safety`](https://ailoot.ai/models/hu/#m=nvidia%2Fnemotron-3.5-content-safety&route=Core&caller=nemotron-content-safety&fmt=chat), [`nemotron-content-safety-latest`](https://ailoot.ai/models/hu/#m=nvidia%2Fnemotron-3.5-content-safety&route=Core&caller=nemotron-content-safety-latest&fmt=chat)
**Ailoot Ultra** [`nvidia/nemotron-3.5-content-safety`](https://ailoot.ai/models/hu/#m=nvidia%2Fnemotron-3.5-content-safety&route=Ultra&caller=nvidia%2Fnemotron-3.5-content-safety&fmt=chat)

#### Metódusútvonalak álnevei

Használja a fent látható metódusútvonalakat.

#### Kapcsolódó modellazonosítók

[`nvidia/nemotron-3.5-content-safety`](https://ailoot.ai/models/hu/#m=nvidia%2Fnemotron-3.5-content-safety&route=Core&caller=nvidia%2Fnemotron-3.5-content-safety&fmt=chat), [`nvidia/nemotron-3.5-content-safety`](https://ailoot.ai/models/hu/#m=nvidia%2Fnemotron-3.5-content-safety&route=Ultra&caller=nvidia%2Fnemotron-3.5-content-safety&fmt=chat), [`nemotron-content-safety`](https://ailoot.ai/models/hu/#m=nvidia%2Fnemotron-3.5-content-safety&route=Core&caller=nemotron-content-safety&fmt=chat), [`nemotron-content-safety-latest`](https://ailoot.ai/models/hu/#m=nvidia%2Fnemotron-3.5-content-safety&route=Core&caller=nemotron-content-safety-latest&fmt=chat)

**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions` `nvidia/nemotron-3.5-content-safety`

[`nvidia/nemotron-3.5-content-safety`](https://ailoot.ai/models/hu/#m=nvidia%2Fnemotron-3.5-content-safety&route=Ultra&caller=nvidia%2Fnemotron-3.5-content-safety&fmt=chat)

NVIDIA /`nvidia/nemotron-3.5-content-safety`

### Kezdő lépések

A Nemotron 3.5 Content Safety az NVIDIA 4 milliárd paraméteres, multimodális védelmi modellje promptok és válaszok ellenőrzéséhez. Szöveget és képeket fogad, majd biztonságos vagy nem biztonságos besorolást, biztonsági címkéket és opcionális következtetést ad vissza, 12 nyelvre kiterjedően.

Elfogadott bemenetek

Szöveg

Eredmények

Szöveg

### Elérhető az Ailootban · bemenetek és metódusok

**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions`

Bemenet

`text`

Kimenet

`text`

Kimeneti formátum

json vagy SSE

| Mező | Típus | Követelmény | Értékek és korlátok | Alapértelmezett |
| --- | --- | --- | --- | --- |
| Mező`model` | Típus`string` | KövetelményKötelező | Értékek és korlátok nvidia/nemotron-3.5-content-safety | Alapértelmezett— |
| Mező`messages` | Típus`message[]` | KövetelményKötelező | Értékek és korlátok Minimális elemszám: 1 | Alapértelmezett— |
| Mező`messages[].role` | Típus`string` | KövetelményKötelező | Értékek és korlátok Példák: system, user, assistant, tool, function Feltételek: Ezeket a szerepeket a forráskód kompatibilitási típusai kifejezetten reprezentálják; a pontos szerepkészlet továbbra is modellspecifikus. Modelltől függ | Alapértelmezett— |
| Mező`messages[].content` | Típus`string\|content_part[]\|null` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`messages[].tool_calls` | Típus`tool_call[]` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`messages[].tool_call_id` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Akkor alkalmazandó, ha: role=tool; használja a ténylegesen visszaadott ID-t | Alapértelmezett— |
| Mező`messages[].name` | Típus`string` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`messages[].reasoning_content` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Akkor alkalmazandó, ha: Küldje vissza a ténylegesen visszaadott gondolkodási tartalmat, ha ez a modell használja | Alapértelmezett— |
| Mező`messages[].reasoning_details` | Típus`object\|array` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`max_tokens` | Típus`integer` | KövetelményOpcionális | Értékek és korlátok Minimum: 1 Modelltől függ | Alapértelmezett— |
| Mező`max_completion_tokens` | Típus`integer` | KövetelményOpcionális | Értékek és korlátok Minimum: 1 Modelltől függ | Alapértelmezett— |
| Mező`stream` | Típus`boolean` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezettfalse |
| Mező`stream_options.include_usage` | Típus`boolean` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`temperature` | Típus`number` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`top_p` | Típus`number` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`stop` | Típus`string\|string[]` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`tools` | Típus`function_tool[]` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`tools[].type` | Típus`string` | KövetelményOpcionális | Értékek és korlátok function Modelltől függ | Alapértelmezett— |
| Mező`tools[].function.name` | Típus`string` | KövetelményKötelező | Értékek és korlátok Akkor alkalmazandó, ha: Függvényeszköz megadva | Alapértelmezett— |
| Mező`tools[].function.description` | Típus`string` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`tools[].function.parameters` | Típus`JSON_schema` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`tool_choice` | Típus`string\|object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`parallel_tool_calls` | Típus`boolean` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`response_format` | Típus`object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`reasoning_effort` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`reasoning` | Típus`object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`service_tier` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`instructions` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Kompatibilitási mező | Alapértelmezett— |
| Mező`functions` | Típus`function[]` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`function_call` | Típus`string\|object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`prompt_cache_options` | Típus`object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`modalities` | Típus`string[]` | KövetelményOpcionális | Értékek és korlátok text | Alapértelmezett— |
| Mező`provider` | Típus`object` | KövetelményOpcionális | Értékek és korlátok Feltételek: A provider.options elutasításra kerül ezen az Ultra szöveges útvonalon | Alapértelmezett— |
| Mező`cache_control.ttl` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Feltételek: Az 1h elutasításra kerül a tényleges prompt-gyorsítótárazási helyeken | Alapértelmezett— |

Bemeneti anyagok kombinációi

**Szöveg** · UTF8 szöveg

`messages[].content`

Metódus paraméterei és életciklusa

| Paraméter | Szerződés |
| --- | --- |
| Paraméter`content_type` | Szerződésapplication/json |
| Paraméter`required` | Szerződésmodel, messages |
| Paraméter`material_types` | Szerződéstext |
| Paraméter`messages` | Szerződésüzenettömb role/content szerkezettel |
| Paraméter`file_material` | Szerződésa tényleges UTF-8 dokumentum szó szerinti szövegként beillesztve; nincs kikövetkeztetett fájlazonosító |
| Paraméter`optional_controls` | Szerződésstream, temperature, top\_p, stop, max\_tokens, max\_completion\_tokens, reasoning, response\_format, tools, tool\_choice |
| Paraméter`control_scope` | Szerződésmodellspecifikus; a felhasználói függvényeszközök eltérnek a hosztolt eszközöktől |
| Paraméter`output_modalities` | Szerződéstext |
| Paraméter`hosted_operations` | Szerződésfalse |
| Paraméter`multimodal_input_binding` | Szerződésnull |

Életciklus: `synchronous_or_streamed`

Küldje el a pontos modellazonosítót a messages mellett.

A kontextushossz nem kimeneti felső korlát.

Egy szövegfájl szó szerinti szöveget adhat meg; a kép-/hang-/fájlobjektum-bemenetek pontos hozzárendelést igényelnek.

### Díjcsomagok

A díjszabás nem ad új kérési lehetőségeket. A támogatott paraméterek a kiválasztott módszernél szerepelnek.

Gyors mód

Normál díjszabás Ha a gyors mód van kiválasztva

Flex mód

Normál díjszabás Ha a flex mód van kiválasztva

Maximális gondolkodási ráfordítás

Normál díjszabás Ha a maximális gondolkodási ráfordításra a default beállításhoz tartozó korrekció vonatkozik

#### Ailoot-díjak

#### Árak beállításonként

Minden díjat a megjelenített feltételekhez rendeljen. Az alternatív beállítások minden csoportjához egy díjtételt használjon.

| Beállítás | Díjtáblázat | Kontextustokenek, több mint | Kontextustokenek, legfeljebb | Díj |
| --- | --- | --- | --- | --- |
| BeállításTokenenkénti alapárak | DíjtáblázatAlapdíj | Kontextustokenek, több mint— | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0004** / 1K token Kimenet · Kimeneti tokenek **$0.0004** / 1K token Bemenet · Gyorsítótár olvasása **—** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításA kéréshossz szerinti 1. ársáv | Díjtáblázat— | Kontextustokenek, több mint0 | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0004** / 1K token Kimenet · Kimeneti tokenek **$0.0004** / 1K token Bemenet · Gyorsítótár olvasása **—** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |

Az Ailoot a kérés előtt becsült összeget foglal le. Az eredmény után a mért használat alapján elszámolja a végső díjat. Folyamatos átvitel esetén a végső használati rekordot használja. [A foglalás és az elszámolás működése →](https://ailoot.ai/docs/hu/billing/reserve/)

### Példakérések

#### Ailoot Ultra · OpenAI Chat

curlPython SDKPython-adatfolyam

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "nvidia/nemotron-3.5-content-safety", "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
```

```python
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='nvidia/nemotron-3.5-content-safety',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"))
```

```python
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='nvidia/nemotron-3.5-content-safety',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")
```

### Eredmények fogadása és mentése

#### Ailoot Ultra · OpenAI Chat

json vagy SSE

##### Őrizzen meg minden elkészült eredményt

Őrizzen meg minden teljes visszaadott választ, fájlt és tartalomrészt.

Őrizze meg az összes válaszváltozatot és azok tartalmát/eszközhívásait/gondolkodási tartalmát. SSE esetén válaszváltozat- és eszközindex szerint állítsa össze a részleges frissítéseket, és tartsa meg a végső befejezési okot és a használati adatokat.

##### Ha az eredeti választ ellenőrizni kell

Őrizze meg a kérés-/válaszazonosítókat és a fejléceket. Nincs megadva általános URL a szöveges feladatok lekéréséhez.

Válaszmezők

| Mező | Típus |
| --- | --- |
| Mező`choices[].index` | Típusinteger |
| Mező`choices[].message.content` | Típusstring\|null |
| Mező`choices[].message.tool_calls` | Típustool\_call\[\] |
| Mező`choices[].message.reasoning_content` | Típusstring |
| Mező`choices[].message.reasoning_details` | Típusobject\|array |
| Mező`choices[].finish_reason` | Típusstring\|null |
| Mező`usage` | Típusobject |

Hibák és következő lépések

| Válasz | Feltétel | Következő lépés |
| --- | --- | --- |
| Válasz400 · `invalid_request_error` | FeltételÉrvénytelen kötelező mezők, az anyag érvénytelen reprezentációja vagy érvénytelen paraméterérték | Következő lépésJavítsa a jelzett mezőket egy új létrehozási kérés előtt. |

### Álnevek

#### Modell álnevei

<strong>Ailoot</strong> [`nvidia/nemotron-3.5-content-safety`](https://ailoot.ai/models/hu/#m=nvidia%2Fnemotron-3.5-content-safety&route=Core&caller=nvidia%2Fnemotron-3.5-content-safety&fmt=chat), [`nemotron-content-safety`](https://ailoot.ai/models/hu/#m=nvidia%2Fnemotron-3.5-content-safety&route=Core&caller=nemotron-content-safety&fmt=chat), [`nemotron-content-safety-latest`](https://ailoot.ai/models/hu/#m=nvidia%2Fnemotron-3.5-content-safety&route=Core&caller=nemotron-content-safety-latest&fmt=chat)
**Ailoot Ultra** [`nvidia/nemotron-3.5-content-safety`](https://ailoot.ai/models/hu/#m=nvidia%2Fnemotron-3.5-content-safety&route=Ultra&caller=nvidia%2Fnemotron-3.5-content-safety&fmt=chat)

#### Metódusútvonalak álnevei

Használja a fent látható metódusútvonalakat.

#### Kapcsolódó modellazonosítók

[`nvidia/nemotron-3.5-content-safety`](https://ailoot.ai/models/hu/#m=nvidia%2Fnemotron-3.5-content-safety&route=Core&caller=nvidia%2Fnemotron-3.5-content-safety&fmt=chat), [`nvidia/nemotron-3.5-content-safety`](https://ailoot.ai/models/hu/#m=nvidia%2Fnemotron-3.5-content-safety&route=Ultra&caller=nvidia%2Fnemotron-3.5-content-safety&fmt=chat), [`nemotron-content-safety`](https://ailoot.ai/models/hu/#m=nvidia%2Fnemotron-3.5-content-safety&route=Core&caller=nemotron-content-safety&fmt=chat), [`nemotron-content-safety-latest`](https://ailoot.ai/models/hu/#m=nvidia%2Fnemotron-3.5-content-safety&route=Core&caller=nemotron-content-safety-latest&fmt=chat)

**Ailoot Ultra · Anthropic Messages** `POST /v1/messages` `nvidia/nemotron-3.5-content-safety`

[`nvidia/nemotron-3.5-content-safety`](https://ailoot.ai/models/hu/#m=nvidia%2Fnemotron-3.5-content-safety&route=Ultra&caller=nvidia%2Fnemotron-3.5-content-safety&fmt=messages)

NVIDIA /`nvidia/nemotron-3.5-content-safety`

### Kezdő lépések

A Nemotron 3.5 Content Safety az NVIDIA 4 milliárd paraméteres, multimodális védelmi modellje promptok és válaszok ellenőrzéséhez. Szöveget és képeket fogad, majd biztonságos vagy nem biztonságos besorolást, biztonsági címkéket és opcionális következtetést ad vissza, 12 nyelvre kiterjedően.

Elfogadott bemenetek

Szöveg

Eredmények

json · sse

### Elérhető az Ailootban · bemenetek és metódusok

**Ailoot Ultra · Anthropic Messages** `POST /v1/messages`

Bemenet

`text`

Kimenet

`json`, `sse`

Kimeneti formátum

JSON vagy SSE

| Mező | Típus | Követelmény | Értékek és korlátok | Alapértelmezett |
| --- | --- | --- | --- | --- |
| Mező`model` | Típus`string` | KövetelményKötelező | Értékek és korlátok nvidia/nemotron-3.5-content-safety | Alapértelmezett— |
| Mező`messages` | Típus`message[]` | KövetelményKötelező | Értékek és korlátok | Alapértelmezett— |
| Mező`messages[].role` | Típus`string` | KövetelményKötelező | Értékek és korlátok user, assistant | Alapértelmezett— |
| Mező`messages[].content` | Típus`string` | KövetelményKötelező | Értékek és korlátok | Alapértelmezett— |
| Mező`max_tokens` | Típus`integer` | KövetelményKötelező | Értékek és korlátok | Alapértelmezett— |
| Mező`stream` | Típus`boolean` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezettfalse |

Bemeneti anyagok kombinációi

**Szöveg** · UTF-8 szöveg

`messages[].content karakterlánc`

Metódus paraméterei és életciklusa

| Paraméter | Szerződés |
| --- | --- |
| Paraméter`content_type` | Szerződésapplication/json |
| Paraméter`required` | Szerződésmodel, messages, max\_tokens |
| Paraméter`optional_controls` | Szerződésstream |
| Paraméter`material_types` | Szerződéstext |
| Paraméter`text_file_material` | SzerződésOlvassa el a tényleges UTF-8 dokumentumot, és tegye a szövegét a jelzett bemeneti karakterláncba vagy az üzenettartalom karakterláncába. |

Életciklus: `synchronous_or_streamed`

### Díjcsomagok

A díjszabás nem ad új kérési lehetőségeket. A támogatott paraméterek a kiválasztott módszernél szerepelnek.

Gyors mód

Normál díjszabás Ha a gyors mód van kiválasztva

Flex mód

Normál díjszabás Ha a flex mód van kiválasztva

Maximális gondolkodási ráfordítás

Normál díjszabás Ha a maximális gondolkodási ráfordításra a default beállításhoz tartozó korrekció vonatkozik

#### Ailoot-díjak

#### Árak beállításonként

Minden díjat a megjelenített feltételekhez rendeljen. Az alternatív beállítások minden csoportjához egy díjtételt használjon.

| Beállítás | Díjtáblázat | Kontextustokenek, több mint | Kontextustokenek, legfeljebb | Díj |
| --- | --- | --- | --- | --- |
| BeállításTokenenkénti alapárak | DíjtáblázatAlapdíj | Kontextustokenek, több mint— | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0004** / 1K token Kimenet · Kimeneti tokenek **$0.0004** / 1K token Bemenet · Gyorsítótár olvasása **—** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításA kéréshossz szerinti 1. ársáv | Díjtáblázat— | Kontextustokenek, több mint0 | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0004** / 1K token Kimenet · Kimeneti tokenek **$0.0004** / 1K token Bemenet · Gyorsítótár olvasása **—** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |

Az Ailoot a kérés előtt becsült összeget foglal le. Az eredmény után a mért használat alapján elszámolja a végső díjat. Folyamatos átvitel esetén a végső használati rekordot használja. [A foglalás és az elszámolás működése →](https://ailoot.ai/docs/hu/billing/reserve/)

### Példakérések

#### Ailoot Ultra · Anthropic Messages

Teljes, minimális JSON-törzscurl · használd a saját UTF-8-dokumentumodatPython · mentsd el a teljes eredményt

```json
{
  "model": "nvidia/nemotron-3.5-content-safety",
  "max_tokens": 128,
  "messages": [
    {
      "role": "user",
      "content": "Summarize the incident report."
    }
  ],
  "stream": false
}
```

```bash
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': 'nvidia/nemotron-3.5-content-safety', '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
```

```python
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': 'nvidia/nemotron-3.5-content-safety', '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))
```

### Eredmények fogadása és mentése

#### Ailoot Ultra · Anthropic Messages

JSON vagy SSE

##### Őrizzen meg minden elkészült eredményt

Őrizzen meg minden teljes visszaadott választ, fájlt és tartalomrészt.

Őrizze meg az összes tartalomblokkot, a gondolkodási tartalom aláírásait és a tényleges eszközhasználati ID-kat. Állítsa össze az összes SSE-blokk részleges frissítését; az első szövegblokk nem a teljes kimenet.

##### Ha az eredeti választ ellenőrizni kell

Őrizze meg a kérés-/válaszazonosítókat és a fejléceket. Nincs megadva általános URL a szöveges feladatok lekéréséhez.

Válaszmezők

| Mező | Típus |
| --- | --- |
| Mező`id` | Típusstring |
| Mező`model` | Típusstring |
| Mező`content[]` | Típustext\|thinking\|tool\_use\|other content block |
| Mező`stop_reason` | Típusstring\|null |
| Mező`usage` | Típusobject |

Hibák és következő lépések

| Válasz | Feltétel | Következő lépés |
| --- | --- | --- |
| Válasz400 · `invalid_request_error` | FeltételÉrvénytelen kötelező mezők, az anyag érvénytelen reprezentációja vagy érvénytelen paraméterérték | Következő lépésJavítsa a jelzett mezőket egy új létrehozási kérés előtt. |

### Álnevek

#### Modell álnevei

<strong>Ailoot</strong> [`nvidia/nemotron-3.5-content-safety`](https://ailoot.ai/models/hu/#m=nvidia%2Fnemotron-3.5-content-safety&route=Core&caller=nvidia%2Fnemotron-3.5-content-safety), [`nemotron-content-safety`](https://ailoot.ai/models/hu/#m=nvidia%2Fnemotron-3.5-content-safety&route=Core&caller=nemotron-content-safety), [`nemotron-content-safety-latest`](https://ailoot.ai/models/hu/#m=nvidia%2Fnemotron-3.5-content-safety&route=Core&caller=nemotron-content-safety-latest)
**Ailoot Ultra** [`nvidia/nemotron-3.5-content-safety`](https://ailoot.ai/models/hu/#m=nvidia%2Fnemotron-3.5-content-safety&route=Ultra&caller=nvidia%2Fnemotron-3.5-content-safety&fmt=messages)

#### Metódusútvonalak álnevei

Használja a fent látható metódusútvonalakat.

#### Kapcsolódó modellazonosítók

[`nvidia/nemotron-3.5-content-safety`](https://ailoot.ai/models/hu/#m=nvidia%2Fnemotron-3.5-content-safety&route=Core&caller=nvidia%2Fnemotron-3.5-content-safety), [`nvidia/nemotron-3.5-content-safety`](https://ailoot.ai/models/hu/#m=nvidia%2Fnemotron-3.5-content-safety&route=Ultra&caller=nvidia%2Fnemotron-3.5-content-safety&fmt=messages), [`nemotron-content-safety`](https://ailoot.ai/models/hu/#m=nvidia%2Fnemotron-3.5-content-safety&route=Core&caller=nemotron-content-safety), [`nemotron-content-safety-latest`](https://ailoot.ai/models/hu/#m=nvidia%2Fnemotron-3.5-content-safety&route=Core&caller=nemotron-content-safety-latest)

**Ailoot · OpenAI Chat** `POST /v1/chat/completions` `nemotron-content-safety`

[`nemotron-content-safety`](https://ailoot.ai/models/hu/#m=nvidia%2Fnemotron-3.5-content-safety&route=Core&caller=nemotron-content-safety&fmt=chat)

NVIDIA /`nemotron-content-safety`

Modell ID-ja

- `nvidia/nemotron-3.5-content-safety`
- `nemotron-content-safety`
- `nemotron-content-safety-latest`

### Kezdő lépések

A Nemotron 3.5 Content Safety az NVIDIA 4 milliárd paraméteres, multimodális védelmi modellje promptok és válaszok ellenőrzéséhez. Szöveget és képeket fogad, majd biztonságos vagy nem biztonságos besorolást, biztonsági címkéket és opcionális következtetést ad vissza, 12 nyelvre kiterjedően.

Elfogadott bemenetek

Szöveg

Eredmények

Szöveg

### Elérhető az Ailootban · bemenetek és metódusok

**Ailoot · OpenAI Chat** `POST /v1/chat/completions`

Bemenet

`text`

Kimenet

`text`

Kontextus

4096 tokens

Maximális kimenet

1024 tokens

Kimeneti formátum

json vagy SSE

| Mező | Típus | Követelmény | Értékek és korlátok | Alapértelmezett |
| --- | --- | --- | --- | --- |
| Mező`model` | Típus`string` | KövetelményKötelező | Értékek és korlátok nemotron-content-safety | Alapértelmezett— |
| Mező`messages` | Típus`message[]` | KövetelményKötelező | Értékek és korlátok Minimális elemszám: 1 | Alapértelmezett— |
| Mező`messages[].role` | Típus`string` | KövetelményKötelező | Értékek és korlátok Példák: system, user, assistant, tool, function Feltételek: Ezeket a szerepeket a forráskód kompatibilitási típusai kifejezetten reprezentálják; a pontos szerepkészlet továbbra is modellspecifikus. Modelltől függ | Alapértelmezett— |
| Mező`messages[].content` | Típus`string\|content_part[]\|null` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`messages[].tool_calls` | Típus`tool_call[]` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`messages[].tool_call_id` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Akkor alkalmazandó, ha: role=tool; használja a ténylegesen visszaadott ID-t | Alapértelmezett— |
| Mező`messages[].name` | Típus`string` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`messages[].reasoning_content` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Akkor alkalmazandó, ha: Küldje vissza a ténylegesen visszaadott gondolkodási tartalmat, ha ez a modell használja | Alapértelmezett— |
| Mező`messages[].reasoning_details` | Típus`object\|array` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`max_tokens` | Típus`integer` | KövetelményOpcionális | Értékek és korlátok Minimum: 1 Modelltől függ | Alapértelmezett— |
| Mező`max_completion_tokens` | Típus`integer` | KövetelményOpcionális | Értékek és korlátok Minimum: 1 Modelltől függ | Alapértelmezett— |
| Mező`stream` | Típus`boolean` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezettfalse |
| Mező`stream_options.include_usage` | Típus`boolean` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`temperature` | Típus`number` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`top_p` | Típus`number` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`stop` | Típus`string\|string[]` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`tools` | Típus`function_tool[]` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`tools[].type` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`tools[].function.name` | Típus`string` | KövetelményKötelező | Értékek és korlátok Akkor alkalmazandó, ha: Függvényeszköz megadva | Alapértelmezett— |
| Mező`tools[].function.description` | Típus`string` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`tools[].function.parameters` | Típus`JSON_schema` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`tool_choice` | Típus`string\|object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`parallel_tool_calls` | Típus`boolean` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`response_format` | Típus`object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`reasoning_effort` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`reasoning` | Típus`object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`service_tier` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`instructions` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Kompatibilitási mező | Alapértelmezett— |
| Mező`functions` | Típus`function[]` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`function_call` | Típus`string\|object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`prompt_cache_options` | Típus`object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |

Bemeneti anyagok kombinációi

**Szöveg** · UTF8 szöveg

`messages[].content`

Metódus paraméterei és életciklusa

| Paraméter | Szerződés |
| --- | --- |
| Paraméter`material_types` | Szerződéstext |
| Paraméter`required` | Szerződésmodel, messages |
| Paraméter`optional_controls` | Szerződésnull |
| Paraméter`content_type` | Szerződésapplication/json |
| Paraméter`text_file_material` | Szerződésa tényleges UTF-8 tartalom szövegként beillesztve; a fájlazonosítók/URLs külön, pontos támogatást igényelnek |

Életciklus: `exact retained published method`

A metódusok szerkezete és azonosítói pontosak; a beszállítói képesség különbözik a kérelmek befogadásától.

### Díjcsomagok

#### Ailoot-metódusok díjai

Bemenet

0,0002 USD */ 1K*

Kimenet

0,0002 USD */ 1K*

Gyorsítótár olvasása

0,0002 USD */ 1K*

Írás a gyorsítótárba

0,0002 USD */ 1K*

Írás a gyorsítótárba, 5 perc

0,0002 USD */ 1K tokens*

Az Ailoot a kérés előtt becsült összeget foglal le. Az eredmény után a mért használat alapján elszámolja a végső díjat. Folyamatos átvitel esetén a végső használati rekordot használja. [A foglalás és az elszámolás működése →](https://ailoot.ai/docs/hu/billing/reserve/)

#### A referencia-díjszabás részletei

A modellszintű referenciatáblázatok nem módosítják a metódusválasztást, az árajánlatokat vagy a díjakat. A tényleges díjak a kiválasztott Ailoot-metódus díjtételeit használják.

Modell referenciatáblázatai

#### Árak beállításonként

Minden díjat a megjelenített feltételekhez rendeljen. Az alternatív beállítások minden csoportjához egy díjtételt használjon.

| Beállítás | Díjtáblázat | Kontextustokenek, több mint | Kontextustokenek, legfeljebb | Díj |
| --- | --- | --- | --- | --- |
| BeállításOpenAI Chat · Alap tokendíjak | DíjtáblázatAlapdíj | Kontextustokenek, több mint— | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0004** / 1K token Kimenet · Kimeneti tokenek **$0.0004** / 1K token Bemenet · Gyorsítótár olvasása **—** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításOpenAI Chat · Kéréshossz szerinti 1. díjsáv | Díjtáblázat— | Kontextustokenek, több mint0 | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0004** / 1K token Kimenet · Kimeneti tokenek **$0.0004** / 1K token Bemenet · Gyorsítótár olvasása **—** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításAnthropic Messages · Alap tokendíjak | DíjtáblázatAlapdíj | Kontextustokenek, több mint— | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0004** / 1K token Kimenet · Kimeneti tokenek **$0.0004** / 1K token Bemenet · Gyorsítótár olvasása **—** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításAnthropic Messages · Kéréshossz szerinti 1. díjsáv | Díjtáblázat— | Kontextustokenek, több mint0 | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0004** / 1K token Kimenet · Kimeneti tokenek **$0.0004** / 1K token Bemenet · Gyorsítótár olvasása **—** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |

### Példakérések

#### Ailoot · OpenAI Chat

Szöveges példaPython SDKNode.js SDKPython-adatfolyam

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 source-material file}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "nemotron-content-safety", "messages": []}')
f=Path(os.environ["AILOOT_TEXT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 source material")
text=f.read_text(encoding="utf-8")
if not text.strip():raise SystemExit("Source material must contain text")
p["messages"]=[{"role":"user","content":"Summarize this material and quote supporting source passages.\n\n"+text}]
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
print(json.dumps(json.loads(Path("result.json").read_text()),ensure_ascii=False,indent=2))
PY_RESULT
```

```python
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)
resp = client.chat.completions.create(
    model="nemotron-content-safety",
    messages=[{"role": "user", "content": "Explain the difference between an observation and a hypothesis 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(resp.to_dict(mode="json"))
```

```js
import OpenAI from "openai";

if (!process.env.AILOOT_API_KEY?.trim()) throw new Error("Set AILOOT_API_KEY before making a request");
const client = new OpenAI({ baseURL: "https://api.ailoot.ai/v1", apiKey: process.env.AILOOT_API_KEY, maxRetries: 0 });
const resp = await client.chat.completions.create({
  model: "nemotron-content-safety",
  messages: [{ role: "user", content: "Explain the difference between an observation and a hypothesis in three sentences." }],
});
import { writeFileSync } from "node:fs";

function saveResult(data, stem = "result") {
  writeFileSync(stem + ".json", JSON.stringify(data, null, 2));
  console.log(JSON.stringify(data, null, 2));
  const saveBlob = (encoded, suffix, label) => {
    const raw = Buffer.from(encoded, "base64");
    const ext = raw.subarray(0,8).equals(Buffer.from([137,80,78,71,13,10,26,10])) ? "png" : raw[0]===255 && raw[1]===216 ? "jpg" : raw.subarray(0,4).toString()==="RIFF" && raw.subarray(8,12).toString()==="WEBP" ? "webp" : suffix;
    const file = `${stem}-${label}.${ext}`;
    writeFileSync(file, raw); console.log("Saved", file);
  };
  for (const [i, block] of (data.content || []).entries()) console.log("Content", i, JSON.stringify(block));
  for (const choice of data.choices || []) console.log("Choice", choice.index, JSON.stringify(choice.message || choice.delta || {}));
  for (const [i, item] of (data.output || []).entries()) {
    console.log("Output", i, JSON.stringify(item));
    if (item.type === "image_generation_call" && item.result) saveBlob(item.result, item.output_format || "bin", `output-${i}`);
  }
  for (const [ci, candidate] of (data.candidates || []).entries()) {
    for (const [pi, part] of (candidate.content?.parts || []).entries()) {
      console.log("Candidate/part", ci, pi, JSON.stringify(part));
      const blob = part.inlineData || part.inline_data;
      if (blob?.data) {
        const mime = blob.mimeType || blob.mime_type;
        const suffix = ({"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"})[mime] || "bin";
        saveBlob(blob.data, suffix, `candidate-${ci}-part-${pi}`);
      }
    }
  }
}

saveResult(resp);
```

```python
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='nemotron-content-safety',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")
```

### Eredmények fogadása és mentése

#### Ailoot · OpenAI Chat

json vagy SSE

##### Őrizzen meg minden elkészült eredményt

Őrizzen meg minden teljes visszaadott választ, fájlt és tartalomrészt.

Őrizze meg az összes válaszváltozatot és azok tartalmát/eszközhívásait/gondolkodási tartalmát. SSE esetén válaszváltozat- és eszközindex szerint állítsa össze a részleges frissítéseket, és tartsa meg a végső befejezési okot és a használati adatokat.

##### Ha az eredeti választ ellenőrizni kell

Őrizze meg a kérés-/válaszazonosítókat és a fejléceket. Nincs megadva általános URL a szöveges feladatok lekéréséhez.

Válaszmezők

| Mező | Típus |
| --- | --- |
| Mező`choices[].index` | Típusinteger |
| Mező`choices[].message.content` | Típusstring\|null |
| Mező`choices[].message.tool_calls` | Típustool\_call\[\] |
| Mező`choices[].message.reasoning_content` | Típusstring |
| Mező`choices[].message.reasoning_details` | Típusobject\|array |
| Mező`choices[].finish_reason` | Típusstring\|null |
| Mező`usage` | Típusobject |

Hibák és következő lépések

| Válasz | Feltétel | Következő lépés |
| --- | --- | --- |
| Válasz400 · `invalid_request_error` | FeltételÉrvénytelen kötelező mezők, az anyag érvénytelen reprezentációja vagy érvénytelen paraméterérték | Következő lépésJavítsa a jelzett mezőket egy új létrehozási kérés előtt. |

### Álnevek

#### Modell álnevei

<strong>Ailoot</strong> [`nvidia/nemotron-3.5-content-safety`](https://ailoot.ai/models/hu/#m=nvidia%2Fnemotron-3.5-content-safety&route=Core&caller=nvidia%2Fnemotron-3.5-content-safety&fmt=chat), [`nemotron-content-safety`](https://ailoot.ai/models/hu/#m=nvidia%2Fnemotron-3.5-content-safety&route=Core&caller=nemotron-content-safety&fmt=chat), [`nemotron-content-safety-latest`](https://ailoot.ai/models/hu/#m=nvidia%2Fnemotron-3.5-content-safety&route=Core&caller=nemotron-content-safety-latest&fmt=chat)
**Ailoot Ultra** [`nvidia/nemotron-3.5-content-safety`](https://ailoot.ai/models/hu/#m=nvidia%2Fnemotron-3.5-content-safety&route=Ultra&caller=nvidia%2Fnemotron-3.5-content-safety&fmt=chat)

#### Metódusútvonalak álnevei

Használja a fent látható metódusútvonalakat.

#### Kapcsolódó modellazonosítók

[`nvidia/nemotron-3.5-content-safety`](https://ailoot.ai/models/hu/#m=nvidia%2Fnemotron-3.5-content-safety&route=Core&caller=nvidia%2Fnemotron-3.5-content-safety&fmt=chat), [`nvidia/nemotron-3.5-content-safety`](https://ailoot.ai/models/hu/#m=nvidia%2Fnemotron-3.5-content-safety&route=Ultra&caller=nvidia%2Fnemotron-3.5-content-safety&fmt=chat), [`nemotron-content-safety`](https://ailoot.ai/models/hu/#m=nvidia%2Fnemotron-3.5-content-safety&route=Core&caller=nemotron-content-safety&fmt=chat), [`nemotron-content-safety-latest`](https://ailoot.ai/models/hu/#m=nvidia%2Fnemotron-3.5-content-safety&route=Core&caller=nemotron-content-safety-latest&fmt=chat)

**Ailoot · OpenAI Chat** `POST /v1/chat/completions` `nemotron-content-safety-latest`

[`nemotron-content-safety-latest`](https://ailoot.ai/models/hu/#m=nvidia%2Fnemotron-3.5-content-safety&route=Core&caller=nemotron-content-safety-latest&fmt=chat)

NVIDIA /`nemotron-content-safety-latest`

Modell ID-ja

- `nvidia/nemotron-3.5-content-safety`
- `nemotron-content-safety`
- `nemotron-content-safety-latest`

### Kezdő lépések

A Nemotron 3.5 Content Safety az NVIDIA 4 milliárd paraméteres, multimodális védelmi modellje promptok és válaszok ellenőrzéséhez. Szöveget és képeket fogad, majd biztonságos vagy nem biztonságos besorolást, biztonsági címkéket és opcionális következtetést ad vissza, 12 nyelvre kiterjedően.

Elfogadott bemenetek

Szöveg

Eredmények

Szöveg

### Elérhető az Ailootban · bemenetek és metódusok

**Ailoot · OpenAI Chat** `POST /v1/chat/completions`

Bemenet

`text`

Kimenet

`text`

Kontextus

4096 tokens

Maximális kimenet

1024 tokens

Kimeneti formátum

json vagy SSE

| Mező | Típus | Követelmény | Értékek és korlátok | Alapértelmezett |
| --- | --- | --- | --- | --- |
| Mező`model` | Típus`string` | KövetelményKötelező | Értékek és korlátok nemotron-content-safety-latest | Alapértelmezett— |
| Mező`messages` | Típus`message[]` | KövetelményKötelező | Értékek és korlátok Minimális elemszám: 1 | Alapértelmezett— |
| Mező`messages[].role` | Típus`string` | KövetelményKötelező | Értékek és korlátok Példák: system, user, assistant, tool, function Feltételek: Ezeket a szerepeket a forráskód kompatibilitási típusai kifejezetten reprezentálják; a pontos szerepkészlet továbbra is modellspecifikus. Modelltől függ | Alapértelmezett— |
| Mező`messages[].content` | Típus`string\|content_part[]\|null` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`messages[].tool_calls` | Típus`tool_call[]` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`messages[].tool_call_id` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Akkor alkalmazandó, ha: role=tool; használja a ténylegesen visszaadott ID-t | Alapértelmezett— |
| Mező`messages[].name` | Típus`string` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`messages[].reasoning_content` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Akkor alkalmazandó, ha: Küldje vissza a ténylegesen visszaadott gondolkodási tartalmat, ha ez a modell használja | Alapértelmezett— |
| Mező`messages[].reasoning_details` | Típus`object\|array` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`max_tokens` | Típus`integer` | KövetelményOpcionális | Értékek és korlátok Minimum: 1 Modelltől függ | Alapértelmezett— |
| Mező`max_completion_tokens` | Típus`integer` | KövetelményOpcionális | Értékek és korlátok Minimum: 1 Modelltől függ | Alapértelmezett— |
| Mező`stream` | Típus`boolean` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezettfalse |
| Mező`stream_options.include_usage` | Típus`boolean` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`temperature` | Típus`number` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`top_p` | Típus`number` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`stop` | Típus`string\|string[]` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`tools` | Típus`function_tool[]` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`tools[].type` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`tools[].function.name` | Típus`string` | KövetelményKötelező | Értékek és korlátok Akkor alkalmazandó, ha: Függvényeszköz megadva | Alapértelmezett— |
| Mező`tools[].function.description` | Típus`string` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`tools[].function.parameters` | Típus`JSON_schema` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`tool_choice` | Típus`string\|object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`parallel_tool_calls` | Típus`boolean` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`response_format` | Típus`object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`reasoning_effort` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`reasoning` | Típus`object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`service_tier` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`instructions` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Kompatibilitási mező | Alapértelmezett— |
| Mező`functions` | Típus`function[]` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`function_call` | Típus`string\|object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`prompt_cache_options` | Típus`object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |

Bemeneti anyagok kombinációi

**Szöveg** · UTF8 szöveg

`messages[].content`

Metódus paraméterei és életciklusa

| Paraméter | Szerződés |
| --- | --- |
| Paraméter`material_types` | Szerződéstext |
| Paraméter`required` | Szerződésmodel, messages |
| Paraméter`optional_controls` | Szerződésnull |
| Paraméter`content_type` | Szerződésapplication/json |
| Paraméter`text_file_material` | Szerződésa tényleges UTF-8 tartalom szövegként beillesztve; a fájlazonosítók/URLs külön, pontos támogatást igényelnek |

Életciklus: `exact retained published method`

A metódusok szerkezete és azonosítói pontosak; a beszállítói képesség különbözik a kérelmek befogadásától.

### Díjcsomagok

#### Ailoot-metódusok díjai

Bemenet

0,0002 USD */ 1K*

Kimenet

0,0002 USD */ 1K*

Gyorsítótár olvasása

0,0002 USD */ 1K*

Írás a gyorsítótárba

0,0002 USD */ 1K*

Írás a gyorsítótárba, 5 perc

0,0002 USD */ 1K tokens*

Az Ailoot a kérés előtt becsült összeget foglal le. Az eredmény után a mért használat alapján elszámolja a végső díjat. Folyamatos átvitel esetén a végső használati rekordot használja. [A foglalás és az elszámolás működése →](https://ailoot.ai/docs/hu/billing/reserve/)

#### A referencia-díjszabás részletei

A modellszintű referenciatáblázatok nem módosítják a metódusválasztást, az árajánlatokat vagy a díjakat. A tényleges díjak a kiválasztott Ailoot-metódus díjtételeit használják.

Modell referenciatáblázatai

#### Árak beállításonként

Minden díjat a megjelenített feltételekhez rendeljen. Az alternatív beállítások minden csoportjához egy díjtételt használjon.

| Beállítás | Díjtáblázat | Kontextustokenek, több mint | Kontextustokenek, legfeljebb | Díj |
| --- | --- | --- | --- | --- |
| BeállításOpenAI Chat · Alap tokendíjak | DíjtáblázatAlapdíj | Kontextustokenek, több mint— | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0004** / 1K token Kimenet · Kimeneti tokenek **$0.0004** / 1K token Bemenet · Gyorsítótár olvasása **—** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításOpenAI Chat · Kéréshossz szerinti 1. díjsáv | Díjtáblázat— | Kontextustokenek, több mint0 | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0004** / 1K token Kimenet · Kimeneti tokenek **$0.0004** / 1K token Bemenet · Gyorsítótár olvasása **—** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításAnthropic Messages · Alap tokendíjak | DíjtáblázatAlapdíj | Kontextustokenek, több mint— | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0004** / 1K token Kimenet · Kimeneti tokenek **$0.0004** / 1K token Bemenet · Gyorsítótár olvasása **—** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításAnthropic Messages · Kéréshossz szerinti 1. díjsáv | Díjtáblázat— | Kontextustokenek, több mint0 | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0004** / 1K token Kimenet · Kimeneti tokenek **$0.0004** / 1K token Bemenet · Gyorsítótár olvasása **—** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |

### Példakérések

#### Ailoot · OpenAI Chat

Szöveges példaPython SDKNode.js SDKPython-adatfolyam

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 source-material file}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "nemotron-content-safety-latest", "messages": []}')
f=Path(os.environ["AILOOT_TEXT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 source material")
text=f.read_text(encoding="utf-8")
if not text.strip():raise SystemExit("Source material must contain text")
p["messages"]=[{"role":"user","content":"Summarize this material and quote supporting source passages.\n\n"+text}]
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
print(json.dumps(json.loads(Path("result.json").read_text()),ensure_ascii=False,indent=2))
PY_RESULT
```

```python
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)
resp = client.chat.completions.create(
    model="nemotron-content-safety-latest",
    messages=[{"role": "user", "content": "Explain the difference between an observation and a hypothesis 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(resp.to_dict(mode="json"))
```

```js
import OpenAI from "openai";

if (!process.env.AILOOT_API_KEY?.trim()) throw new Error("Set AILOOT_API_KEY before making a request");
const client = new OpenAI({ baseURL: "https://api.ailoot.ai/v1", apiKey: process.env.AILOOT_API_KEY, maxRetries: 0 });
const resp = await client.chat.completions.create({
  model: "nemotron-content-safety-latest",
  messages: [{ role: "user", content: "Explain the difference between an observation and a hypothesis in three sentences." }],
});
import { writeFileSync } from "node:fs";

function saveResult(data, stem = "result") {
  writeFileSync(stem + ".json", JSON.stringify(data, null, 2));
  console.log(JSON.stringify(data, null, 2));
  const saveBlob = (encoded, suffix, label) => {
    const raw = Buffer.from(encoded, "base64");
    const ext = raw.subarray(0,8).equals(Buffer.from([137,80,78,71,13,10,26,10])) ? "png" : raw[0]===255 && raw[1]===216 ? "jpg" : raw.subarray(0,4).toString()==="RIFF" && raw.subarray(8,12).toString()==="WEBP" ? "webp" : suffix;
    const file = `${stem}-${label}.${ext}`;
    writeFileSync(file, raw); console.log("Saved", file);
  };
  for (const [i, block] of (data.content || []).entries()) console.log("Content", i, JSON.stringify(block));
  for (const choice of data.choices || []) console.log("Choice", choice.index, JSON.stringify(choice.message || choice.delta || {}));
  for (const [i, item] of (data.output || []).entries()) {
    console.log("Output", i, JSON.stringify(item));
    if (item.type === "image_generation_call" && item.result) saveBlob(item.result, item.output_format || "bin", `output-${i}`);
  }
  for (const [ci, candidate] of (data.candidates || []).entries()) {
    for (const [pi, part] of (candidate.content?.parts || []).entries()) {
      console.log("Candidate/part", ci, pi, JSON.stringify(part));
      const blob = part.inlineData || part.inline_data;
      if (blob?.data) {
        const mime = blob.mimeType || blob.mime_type;
        const suffix = ({"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"})[mime] || "bin";
        saveBlob(blob.data, suffix, `candidate-${ci}-part-${pi}`);
      }
    }
  }
}

saveResult(resp);
```

```python
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='nemotron-content-safety-latest',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")
```

### Eredmények fogadása és mentése

#### Ailoot · OpenAI Chat

json vagy SSE

##### Őrizzen meg minden elkészült eredményt

Őrizzen meg minden teljes visszaadott választ, fájlt és tartalomrészt.

Őrizze meg az összes válaszváltozatot és azok tartalmát/eszközhívásait/gondolkodási tartalmát. SSE esetén válaszváltozat- és eszközindex szerint állítsa össze a részleges frissítéseket, és tartsa meg a végső befejezési okot és a használati adatokat.

##### Ha az eredeti választ ellenőrizni kell

Őrizze meg a kérés-/válaszazonosítókat és a fejléceket. Nincs megadva általános URL a szöveges feladatok lekéréséhez.

Válaszmezők

| Mező | Típus |
| --- | --- |
| Mező`choices[].index` | Típusinteger |
| Mező`choices[].message.content` | Típusstring\|null |
| Mező`choices[].message.tool_calls` | Típustool\_call\[\] |
| Mező`choices[].message.reasoning_content` | Típusstring |
| Mező`choices[].message.reasoning_details` | Típusobject\|array |
| Mező`choices[].finish_reason` | Típusstring\|null |
| Mező`usage` | Típusobject |

Hibák és következő lépések

| Válasz | Feltétel | Következő lépés |
| --- | --- | --- |
| Válasz400 · `invalid_request_error` | FeltételÉrvénytelen kötelező mezők, az anyag érvénytelen reprezentációja vagy érvénytelen paraméterérték | Következő lépésJavítsa a jelzett mezőket egy új létrehozási kérés előtt. |

### Álnevek

#### Modell álnevei

<strong>Ailoot</strong> [`nvidia/nemotron-3.5-content-safety`](https://ailoot.ai/models/hu/#m=nvidia%2Fnemotron-3.5-content-safety&route=Core&caller=nvidia%2Fnemotron-3.5-content-safety&fmt=chat), [`nemotron-content-safety`](https://ailoot.ai/models/hu/#m=nvidia%2Fnemotron-3.5-content-safety&route=Core&caller=nemotron-content-safety&fmt=chat), [`nemotron-content-safety-latest`](https://ailoot.ai/models/hu/#m=nvidia%2Fnemotron-3.5-content-safety&route=Core&caller=nemotron-content-safety-latest&fmt=chat)
**Ailoot Ultra** [`nvidia/nemotron-3.5-content-safety`](https://ailoot.ai/models/hu/#m=nvidia%2Fnemotron-3.5-content-safety&route=Ultra&caller=nvidia%2Fnemotron-3.5-content-safety&fmt=chat)

#### Metódusútvonalak álnevei

Használja a fent látható metódusútvonalakat.

#### Kapcsolódó modellazonosítók

[`nvidia/nemotron-3.5-content-safety`](https://ailoot.ai/models/hu/#m=nvidia%2Fnemotron-3.5-content-safety&route=Core&caller=nvidia%2Fnemotron-3.5-content-safety&fmt=chat), [`nvidia/nemotron-3.5-content-safety`](https://ailoot.ai/models/hu/#m=nvidia%2Fnemotron-3.5-content-safety&route=Ultra&caller=nvidia%2Fnemotron-3.5-content-safety&fmt=chat), [`nemotron-content-safety`](https://ailoot.ai/models/hu/#m=nvidia%2Fnemotron-3.5-content-safety&route=Core&caller=nemotron-content-safety&fmt=chat), [`nemotron-content-safety-latest`](https://ailoot.ai/models/hu/#m=nvidia%2Fnemotron-3.5-content-safety&route=Core&caller=nemotron-content-safety-latest&fmt=chat)

FAQ · nvidia/nemotron-3.5-content-safety

Milyen bemenetek és eredmények érhetők el?

`POST /v1/chat/completions` · `nvidia/nemotron-3.5-content-safety`: `text` → `text` `POST /v1/chat/completions` · `nvidia/nemotron-3.5-content-safety`: `text` → `text` `POST /v1/messages` · `nvidia/nemotron-3.5-content-safety`: `text` → `json`, `sse` `POST /v1/chat/completions` · `nemotron-content-safety`: `text` → `text` `POST /v1/chat/completions` · `nemotron-content-safety-latest`: `text` → `text`

Mely mezőket használja a kérés?

`POST /v1/chat/completions` · `nvidia/nemotron-3.5-content-safety`: `model`, `messages`, `stream` `POST /v1/chat/completions` · `nvidia/nemotron-3.5-content-safety`: `model`, `messages`, `stream`, `modalities`, `provider` `POST /v1/messages` · `nvidia/nemotron-3.5-content-safety`: `model`, `messages`, `max_tokens`, `stream` `POST /v1/chat/completions` · `nemotron-content-safety`: `model`, `messages`, `stream` `POST /v1/chat/completions` · `nemotron-content-safety-latest`: `model`, `messages`, `stream`

Milyen korlátok érvényesek?

`POST /v1/chat/completions` · `nvidia/nemotron-3.5-content-safety`: `ctx`: `4096`; `max_out`: `1024`; `messages.min_items`: `1` `POST /v1/chat/completions` · `nvidia/nemotron-3.5-content-safety`: `messages.min_items`: `1` `POST /v1/chat/completions` · `nemotron-content-safety`: `ctx`: `4096`; `max_out`: `1024`; `messages.min_items`: `1` `POST /v1/chat/completions` · `nemotron-content-safety-latest`: `ctx`: `4096`; `max_out`: `1024`; `messages.min_items`: `1`

Csatlakoztassa az Ailootot a Claude Code-hoz, OpenCode-hoz, Hermeshez vagy saját alkalmazásához.

## A vállalat és projektportfóliója

A vállalat és projektportfóliója: ügyfelek milliói; havi értékesítés milliárdos nagyságrendben.

## Vásároljon tokeneket kedvezménnyel.

Előfizetési kedvezmény rendszeres munkához. Promókódok — akár 50% tokenvásárlási kedvezmény.

Előfizetés

Válasszon kedvezményes tarifát a rendszeres kéréseihez.

Promókód akár 50%-ig

Vásárláskor adja meg a kódot. Az ár az érvényes akció szerint újraszámolódik.

Költségek az előzményekben

Minden kéréshez megmarad a modell, a tokenek és az összeg.

[Előfizetés kiválasztása](https://ailoot.ai/docs/hu/billing/subscriptions/) · [Modellárak megtekintése](https://ailoot.ai/models/hu/)

## Csatlakoztassa az API-t az értékesített termékéhez.

SaaS, alkalmazások és botok — az Ailoot ajánlati feltételei és licencszerződése alapján. Viszonteladáshoz kérjen viszonteladói licencet.

Kereskedelmi alkalmazás

Építsen szöveg-, kép-, videó- és hanggenerálást szolgáltatása fizetős funkcióiba.

Viszonteladói licenc

Küldje el a projekt leírását és a hozzáférés módját. Kérjen írásos használati és viszonteladási feltételeket.

Dokumentumok a weboldalon

Az ajánlati feltételek, licencszerződés és adatkezelési szabályzat már a csatlakoztatás előtt elérhető.

[Viszonteladói licenc kérése](mailto:support@ailoot.ai) · [Ajánlati feltételek és licencszerződés](https://ailoot.ai/legal/offer?lang=hu)

## Ailoot · A vállalat és projektportfóliója





Az Ailoot felhalmozott működési tapasztalatra, széles ügyfélkörre, stabil szolgáltatásra és folyamatos KPI-ellenőrzésre épít.





A vállalat és projektportfóliója: ügyfelek milliói; havi értékesítés milliárdos nagyságrendben.





Az Ailoot ezt a működési tapasztalatot használja az ügyfelek termékeiben, ágenseiben, alkalmazásaiban és automatizálásaiban elérhető AI-funkciók API-hozzáféréséhez.
