מודלים

Riva Translate 4B Instruct v1.1

Markdown · JSON

Riva Translate 4B Instruct v1.1

Riva-Translate-4B-Instruct-v1.1 של NVIDIA מתרגם משפטים ומסמכים בין אנגלית ל־11 שפות אחרות וגרסאות אזוריות, כולל רוסית. תומך בדוגמאות תרגום בבקשה ובהקשר של עד 8K טוקנים.

על המודל

התיאור הזה מציג את יכולות המודל. הקלט, הפלט והאפשרויות הזמינים ב-Ailoot מפורטים בהמשך לפי השיטה שנבחרה.

Riva-Translate-4B-Instruct-v1.1 הוא מודל ייעודי של NVIDIA לתרגום בכתב. הוא עובד עם משפטים בודדים ועם מסמכים: מקבל טקסט ומחזיר טקסט בשפה שנבחרה. פורמט כזה מתאים למתרגמים, לאנשי שיווק ולמפתחים שמכינים חומרים רב־לשוניים.

שפות וגרסאות אזוריות

המודל מספק 12 שפות וגרסאות: אנגלית, גרמנית, ספרדית אירופית וספרדית של אמריקה הלטינית, צרפתית, פורטוגזית ברזילאית, רוסית, סינית בכתב מפושט ומסורתי, יפנית, קוריאנית וערבית. בספרדית ובסינית אפשר לציין בנפרד את הגרסה הדרושה, ואילו הפורטוגזית בגרסה זו מיוצגת בגרסה הברזילאית.

כיווני התרגום מוגדרים סביב אנגלית: מאנגלית לשפות המפורטות ובחזרה. לטקסט ברוסית זמין תרגום לאנגלית, ולטקסט באנגלית לרוסית. הגרסה האזורית כלולה בבחירת הכיוון, ולכן עדיף לציין אותה יחד עם השפה.

איך מוגדר התרגום

בבקשה מפרידים בין כיוון התרגום לחומר עצמו. הודעת המערכת מציינת את צמד השפות, והודעת המשתמש מכילה את טקסט המקור. למשל en-ru מגדיר תרגום מאנגלית לרוסית, ו־ru-en מרוסית לאנגלית. לספרדית אירופית זמין en-es-es, ולספרדית של אמריקה הלטינית en-es-us; לפורטוגזית ברזילאית en-pt-br.

אפשר למסור כמה דוגמאות תרגום במסגרת הבקשה. תבנית השיחה תומכת בסירוגין של טקסט משתמש ותשובה עם תרגום. כך אפשר להציג צמד של טקסט מקור וטקסט מתורגם לפני החומר הבא. NVIDIA ממליצה להשתמש בתבנית התרגום שעליה המודל עבר אימון נוסף: היא מגדירה במפורש את שפת המקור ואת שפת היעד.

הקשר ומבנה

המודל כולל כארבעה מיליארד פרמטרים ובנוי כ־Transformer עם מפענח. מודל הבסיס נוצר בדחיסה ובזיקוק, ואז עבר אימון נוסף על טקסט, אימון לפי דוגמאות ואופטימיזציה לפי העדפות. ההקשר הוא עד 8K טוקנים.

מה משפיע על התרגום

האיכות תלויה בנושא, בתנאי המשימה, ברעש בטקסט המקור ובהקשר הזמין. בתשובה ייתכנו שגיאות דקדוק ואי־דיוקים במשמעות. דיוק הבקשה יכול לסייע לקבל תרגום מתאים יותר.

משימה מעשית

משימה מעשית

דוגמה טכנית באנגלית

Translate a collection notice into Russian

Translation direction: English to Russian, en-ru. Translate this notice: 'Your repaired kettle is ready for collection at the service desk. Please bring receipt R-204. We will keep it until Friday at 18:00.' Preserve the receipt identifier and the collection deadline. Return only the translated notice.

התוצאה הצפויה

A Russian translation preserving the service-desk location, R-204 and Friday 18:00 deadline.

בדיקת התוצאה

The translation must not turn the collection deadline into the repair completion time.
Ailoot · OpenAI Chat POST /v1/chat/completions nvidia/riva-translate-4b-instruct-v1.1

nvidia/riva-translate-4b-instruct-v1.1

NVIDIA /nvidia/riva-translate-4b-instruct-v1.1

התחלה

Riva-Translate-4B-Instruct-v1.1 של NVIDIA מתרגם משפטים ומסמכים בין אנגלית ל־11 שפות אחרות וגרסאות אזוריות, כולל רוסית. תומך בדוגמאות תרגום בבקשה ובהקשר של עד 8K טוקנים.

סוגי קלט נתמכים
טקסט
תוצאות
טקסט

זמין ב-Ailoot · קלט ושיטות

Ailoot · OpenAI Chat POST /v1/chat/completions
סוגי קלט
text
סוגי פלט
text
הקשר
⁦4,096⁩ tokens
פלט מרבי
⁦1,024⁩ tokens
פורמט פלט
json או SSE
שדהסוגדרישהערכים ומגבלותברירת מחדל
שדהmodelסוגstringדרישהחובהערכים ומגבלות
nvidia/riva-translate-4b-instruct-v1.1
ברירת מחדל—
שדהmessagesסוגmessage[]דרישהחובהערכים ומגבלות
מספר פריטים מזערי: ⁦1⁩
ברירת מחדל—
שדהmessages[].roleסוגstringדרישהחובהערכים ומגבלות
דוגמאות: system, user, assistant, tool, function
תנאים: התפקידים האלה מיוצגים במפורש בטיפוסי התאימות בקוד המקור; מערך התפקידים המדויק נשאר ייחודי לכל מודל.
תלוי במודל
ברירת מחדל—
שדהmessages[].contentסוגstring|content_part[]|nullדרישהרשותערכים ומגבלותברירת מחדל—
שדהmessages[].tool_callsסוגtool_call[]דרישהרשותערכים ומגבלותברירת מחדל—
שדהmessages[].tool_call_idסוגstringדרישהרשותערכים ומגבלות
חל כאשר: role=tool; השתמשו במזהה שהוחזר בפועל
ברירת מחדל—
שדהmessages[].nameסוגstringדרישהרשותערכים ומגבלותברירת מחדל—
שדהmessages[].reasoning_contentסוגstringדרישהרשותערכים ומגבלות
חל כאשר: החזירו בהמשך את ההנמקה שהתקבלה בפועל כאשר המודל הזה משתמש בה
ברירת מחדל—
שדהmessages[].reasoning_detailsסוגobject|arrayדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהmax_tokensסוגintegerדרישהרשותערכים ומגבלות
מינימום: ⁦1⁩
תלוי במודל
ברירת מחדל—
שדהmax_completion_tokensסוגintegerדרישהרשותערכים ומגבלות
מינימום: ⁦1⁩
תלוי במודל
ברירת מחדל—
שדהstreamסוגbooleanדרישהרשותערכים ומגבלותברירת מחדלfalse
שדהstream_options.include_usageסוגbooleanדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהtemperatureסוגnumberדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהtop_pסוגnumberדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהstopסוגstring|string[]דרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהtoolsסוגfunction_tool[]דרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהtools[].typeסוגstringדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהtools[].function.nameסוגstringדרישהחובהערכים ומגבלות
חל כאשר: סופק כלי פונקציה
ברירת מחדל—
שדהtools[].function.descriptionסוגstringדרישהרשותערכים ומגבלותברירת מחדל—
שדהtools[].function.parametersסוגJSON_schemaדרישהרשותערכים ומגבלותברירת מחדל—
שדהtool_choiceסוגstring|objectדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהparallel_tool_callsסוגbooleanדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהresponse_formatסוגobjectדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהreasoning_effortסוגstringדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהreasoningסוגobjectדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהservice_tierסוגstringדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהinstructionsסוגstringדרישהרשותערכים ומגבלות
שדה תאימות
ברירת מחדל—
שדהfunctionsסוגfunction[]דרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהfunction_callסוגstring|objectדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שדהprompt_cache_optionsסוגobjectדרישהרשותערכים ומגבלות
תלוי במודל
ברירת מחדל—
שילובים של חומרי קלט

טקסט · טקסט UTF8

messages[].content

פרמטרים ומחזור חיים של השיטה
פרמטרמפרט
פרמטרmaterial_typesמפרטtext
פרמטרrequiredמפרטmodel, messages
פרמטרoptional_controlsמפרטnull
פרמטרcontent_typeמפרטapplication/json
פרמטרtext_file_materialמפרטתוכן UTF-8 בפועל מוכנס כטקסט; מזהי קבצים/URLs דורשים תמיכה נפרדת ומדויקת

מחזור חיים: exact retained published method

מבני המתודות והמזהים מדויקים; יכולת הספק נפרדת מקבלת הבקשה לביצוע.

תעריפים

תעריפי שיטות Ailoot

Ailoot OpenAI ChatPOST /v1/chat/completions
קלט
⁦‏0.0001 ‏$⁩ / 1K
פלט
⁦‏0.0002 ‏$⁩ / 1K
קריאה מהמטמון
⁦‏0.0001 ‏$⁩ / 1K
כתיבה למטמון
⁦‏0.0001 ‏$⁩ / 1K
כתיבה למטמון, 5 דקות
⁦‏0.0001 ‏$⁩ / 1K tokens

לפני הבקשה Ailoot משריינת סכום משוער. לאחר קבלת התוצאה היא מסדירה את החיוב הסופי לפי השימוש המדוד. הסדרת חיוב בהזרמה משתמשת ברשומת השימוש הסופית. איך פועלים שריון הסכום והסדרת החיוב →

דוגמאות לבקשות

Ailoot · OpenAI Chat

דוגמת טקסטPython SDKNode.js SDKהזרמה ב-Python
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/riva-translate-4b-instruct-v1.1", "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
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/riva-translate-4b-instruct-v1.1",
    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"))
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/riva-translate-4b-instruct-v1.1",
  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);
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/riva-translate-4b-instruct-v1.1',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")

קבלה ושמירה של תוצאות

Ailoot · OpenAI Chat

json או SSE

שמירת כל התוצאות שהושלמו

שמרו כל תגובה מלאה, קובץ ומקטע תוכן שהוחזרו.

שמרו כל בחירה ואת התוכן, קריאות הכלים וההנמקה שלה. ב-SSE הרכיבו עדכונים לפי אינדקס הבחירה/הכלי ושמרו את סיבת הסיום הסופית ואת השימוש.

כשצריך לבדוק את התגובה המקורית

שמרו מזהי בקשות/תגובות וכותרות. לא מסופק URL כללי לאחזור משימת טקסט.

שדות התגובה
שדהסוג
שדהchoices[].indexסוגinteger
שדהchoices[].message.contentסוגstring|null
שדהchoices[].message.tool_callsסוגtool_call[]
שדהchoices[].message.reasoning_contentסוגstring
שדהchoices[].message.reasoning_detailsסוגobject|array
שדהchoices[].finish_reasonסוגstring|null
שדהusageסוגobject
שגיאות והשלבים הבאים
תגובהתנאיהשלב הבא
תגובה⁦400⁩ · invalid_request_errorתנאישדות נדרשים, ייצוג חומר או ערך פרמטר שאינם תקיניםהשלב הבאתקנו את השדות שצוינו לפני בקשת יצירה חדשה.

כינויים

כינויים למודל

Ailoot nvidia/riva-translate-4b-instruct-v1.1

כינויים לנתיבי שיטות

השתמשו בנתיבי השיטות המוצגים למעלה.

מזהי מודלים קשורים IDs

nvidia/riva-translate-4b-instruct-v1.1

FAQ · nvidia/riva-translate-4b-instruct-v1.1
אילו קלטים ותוצאות זמינים?

POST /v1/chat/completions · nvidia/riva-translate-4b-instruct-v1.1: text → text

באילו שדות הבקשה משתמשת?

POST /v1/chat/completions · nvidia/riva-translate-4b-instruct-v1.1: model, messages, stream

אילו מגבלות חלות?

POST /v1/chat/completions · nvidia/riva-translate-4b-instruct-v1.1: ctx: 4096; max_out: 1024; messages.min_items: 1

פרטים נוספים

חברו Ailoot ל- Claude Code, OpenCode, Hermes או ליישום שלכם.

החברה ופורטפוליו הפרויקטים שלה

החברה ופורטפוליו הפרויקטים שלה: מיליוני לקוחות; מכירות בהיקף של מיליארדים מדי חודש.

קנו אסימונים בהנחה.

הנחת מנוי לעבודה קבועה. קודי הנחה עד 50% על רכישת אסימונים.

מנוי
בחרו מסלול עם הנחה לבקשות הקבועות שלכם.
קוד הנחה עד 50%
הזינו קוד ברכישה. המחיר יחושב מחדש לפי המבצע הפעיל.
הוצאות בהיסטוריה
המודל, האסימונים והסכום נשמרים לכל בקשה.

בחירת מנוי · מחירי מודלים

חברו API למוצר שאתם מוכרים.

SaaS, יישומים ובוטים לפי ההצעה והסכם הרישוי של Ailoot. למכירה מחדש בקשו רישיון משווק.

יישום מסחרי
שלבו יצירת טקסט, תמונות, וידאו ושמע בתכונות בתשלום של השירות שלכם.
רישיון למכירה מחדש
שלחו תיאור פרויקט ואופן מתן גישה. בקשו תנאי שימוש ומכירה מחדש בכתב.
מסמכים באתר
ההצעה, הסכם הרישוי ומדיניות עיבוד הנתונים זמינים לפני החיבור.

בקשת רישיון למכירה מחדש · ההצעה והסכם הרישוי