{
  "aboutHtml": "<p>Voyage Context 3 produce embedding contestualizzati dei segmenti per il recupero di documenti. Ogni segmento riceve il proprio vettore, mentre il modello considera anche gli altri segmenti forniti dallo stesso documento. Questo offre a un sistema di recupero una rappresentazione del passaggio locale insieme al contesto più ampio del documento, come un’entità o un argomento introdotti altrove nella fonte.</p><p>Preparate ogni documento come una sequenza ordinata di segmenti di testo leggibile. Mantenete insieme i segmenti di un documento e preservatene l’ordine originale. Nel processo contestualizzato del produttore, ogni gruppo interno contiene i segmenti di una fonte e gruppi separati rappresentano fonti separate. Questo raggruppamento fa parte del significato dell’input: indica al modello quale testo circostante appartenga al documento rappresentato.</p><p>Un caso utile è una relazione la cui apertura identifica l’azienda mentre un paragrafo successivo ne spiega la crescita. Una ricerca sulla crescita di quell’azienda richiede sia il paragrafo specifico sia l’identità del documento. Conservate il testo originale del segmento e i metadati del documento a cui appartiene insieme al vettore risultante, affinché il risultato possa mostrare il passaggio e collegarsi alla fonte completa.</p><p>La documentazione di riferimento del produttore indica fino a 120 000 token nell’intera richiesta, con non più di 1 000 gruppi di input e 16 000 segmenti in totale. La guida del modello indica separatamente una finestra di 32 000 token per segmento. Mantenete distinti questi ambiti quando preparate i materiali: un limite sul singolo segmento e un limite sulla richiesta completa descrivono dimensioni di input diverse. Verificate il totale dopo aver suddiviso la fonte, anziché presumere che ogni singolo segmento possa raggiungere il proprio massimo nella stessa richiesta.</p><p>Per il recupero di documenti, identificate i passaggi raggruppati come input di documento. Preparate ogni domanda di ricerca come un proprio gruppo di query. Il produttore raccomanda segmenti di documento forniti senza sovrapposizione, permettendo alla rappresentazione contestualizzata di trasportare le informazioni circostanti senza ripetere il testo in ogni passaggio. Mantenete la corrispondenza tra gruppo di segmenti del documento, posizione del segmento e vettore restituito quando scrivete l’indice.</p><p>Voyage Context 3 supporta 2 048, 1 024, 512 e 256 dimensioni, con scelte di output in virgola mobile, a interi di otto bit e binario. Scegliete una rappresentazione per l’indice e valutatela sugli stessi documenti di fonte e sulle stesse domande. Conservate la dimensione e il tipo di dato selezionati insieme all’indice, in modo che la rappresentazione delle query e i vettori archiviati rimangano coerenti.</p><p>Usate i vettori risultanti nella ricerca di passaggi, nell’individuazione di documenti o nella fase di recupero di un assistente che lavora con relazioni, articoli di ricerca, contratti o manuali tecnici. Un risultato può identificare un passaggio mirato mentre il collegamento alla fonte dà accesso a definizioni e precisazioni presenti altrove nel documento. Conservate versioni dei documenti e autorizzazioni come metadati dell’applicazione insieme ai vettori.</p><p>Verificate domande che richiedono sia un dettaglio locale sia il contesto dell’intero documento. Includete passaggi simili da fonti diverse, entità nominate soltanto all’inizio e domande i cui elementi di prova si distribuiscono su più sezioni. Esaminate se il segmento atteso venga recuperato e se l’applicazione mostri testo circostante sufficiente per interpretarlo. Quando una fonte cambia, rigenerate intenzionalmente il gruppo di segmenti del documento interessato, affinché i suoi segmenti contestualizzati corrispondano a una versione coerente.</p>",
  "aboutText": "Voyage Context 3 produce embedding contestualizzati dei segmenti per il recupero di documenti. Ogni segmento riceve il proprio vettore, mentre il modello considera anche gli altri segmenti forniti dallo stesso documento. Questo offre a un sistema di recupero una rappresentazione del passaggio locale insieme al contesto più ampio del documento, come un’entità o un argomento introdotti altrove nella fonte.\n\nPreparate ogni documento come una sequenza ordinata di segmenti di testo leggibile. Mantenete insieme i segmenti di un documento e preservatene l’ordine originale. Nel processo contestualizzato del produttore, ogni gruppo interno contiene i segmenti di una fonte e gruppi separati rappresentano fonti separate. Questo raggruppamento fa parte del significato dell’input: indica al modello quale testo circostante appartenga al documento rappresentato.\n\nUn caso utile è una relazione la cui apertura identifica l’azienda mentre un paragrafo successivo ne spiega la crescita. Una ricerca sulla crescita di quell’azienda richiede sia il paragrafo specifico sia l’identità del documento. Conservate il testo originale del segmento e i metadati del documento a cui appartiene insieme al vettore risultante, affinché il risultato possa mostrare il passaggio e collegarsi alla fonte completa.\n\nLa documentazione di riferimento del produttore indica fino a 120 000 token nell’intera richiesta, con non più di 1 000 gruppi di input e 16 000 segmenti in totale. La guida del modello indica separatamente una finestra di 32 000 token per segmento. Mantenete distinti questi ambiti quando preparate i materiali: un limite sul singolo segmento e un limite sulla richiesta completa descrivono dimensioni di input diverse. Verificate il totale dopo aver suddiviso la fonte, anziché presumere che ogni singolo segmento possa raggiungere il proprio massimo nella stessa richiesta.\n\nPer il recupero di documenti, identificate i passaggi raggruppati come input di documento. Preparate ogni domanda di ricerca come un proprio gruppo di query. Il produttore raccomanda segmenti di documento forniti senza sovrapposizione, permettendo alla rappresentazione contestualizzata di trasportare le informazioni circostanti senza ripetere il testo in ogni passaggio. Mantenete la corrispondenza tra gruppo di segmenti del documento, posizione del segmento e vettore restituito quando scrivete l’indice.\n\nVoyage Context 3 supporta 2 048, 1 024, 512 e 256 dimensioni, con scelte di output in virgola mobile, a interi di otto bit e binario. Scegliete una rappresentazione per l’indice e valutatela sugli stessi documenti di fonte e sulle stesse domande. Conservate la dimensione e il tipo di dato selezionati insieme all’indice, in modo che la rappresentazione delle query e i vettori archiviati rimangano coerenti.\n\nUsate i vettori risultanti nella ricerca di passaggi, nell’individuazione di documenti o nella fase di recupero di un assistente che lavora con relazioni, articoli di ricerca, contratti o manuali tecnici. Un risultato può identificare un passaggio mirato mentre il collegamento alla fonte dà accesso a definizioni e precisazioni presenti altrove nel documento. Conservate versioni dei documenti e autorizzazioni come metadati dell’applicazione insieme ai vettori.\n\nVerificate domande che richiedono sia un dettaglio locale sia il contesto dell’intero documento. Includete passaggi simili da fonti diverse, entità nominate soltanto all’inizio e domande i cui elementi di prova si distribuiscono su più sezioni. Esaminate se il segmento atteso venga recuperato e se l’applicazione mostri testo circostante sufficiente per interpretarlo. Quando una fonte cambia, rigenerate intenzionalmente il gruppo di segmenti del documento interessato, affinché i suoi segmenti contestualizzati corrispondano a una versione coerente.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "1cfdc751de468241890a9d4ad9a5621ba0b7939d69c8f28277875b0f23ff8400",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "it",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">•</span><h2 id=\"sheet-title\">Voyage AI: Voyage Context 3</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Chiudi\">×</button></div><div class=\"idline\"><span>Voyage AI /</span><code>voyage-context-3</code><button type=\"button\" id=\"copy-id\">Copia ID</button></div><nav class=\"card-jump-nav\" aria-label=\"Sezioni della scheda del modello\"><button type=\"button\" data-card-jump=\"overview\">Introduzione</button><button type=\"button\" data-card-jump=\"methods\">Input e metodi</button><button type=\"button\" data-card-jump=\"pricing\">Tariffe</button><button type=\"button\" data-card-jump=\"examples\">Esempi</button><button type=\"button\" data-card-jump=\"results\">Risultati</button><button type=\"button\" data-card-jump=\"aliases\">Alias</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"Metodi API\"><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-0\" data-card-method=\"Ultra|embeddings|/v1/embeddings|voyage-context-3\">Embedding</button></div><div id=\"card-method-content\" role=\"tabpanel\" aria-labelledby=\"card-method-tab-0\"><section class=\"card-section\" data-card-section=\"overview\"><h3 tabindex=\"-1\">Introduzione</h3><p class=\"mdesc-full\">Voyage Context 3 crea un vettore per ogni segmento di un documento incorporando il contesto degli altri segmenti di quel documento. Supporta il recupero preciso di passaggi in documenti lunghi, con dimensioni selezionabili ed embedding quantizzati.</p><dl class=\"card-io\" data-card-io><div><dt>Input accettati</dt><dd>Testo</dd></div><div><dt>Risultati</dt><dd>embedding</dd></div></dl><details class=\"card-about\"><summary>Informazioni sul modello</summary><p class=\"note-s\" data-model-method-boundary>Questa descrizione illustra le funzionalità del modello. Gli input, gli output e le opzioni disponibili in Ailoot per il metodo selezionato sono elencati di seguito.</p><div class=\"mabout\" id=\"m-about\"><p>Voyage Context 3 produce embedding contestualizzati dei segmenti per il recupero di documenti. Ogni segmento riceve il proprio vettore, mentre il modello considera anche gli altri segmenti forniti dallo stesso documento. Questo offre a un sistema di recupero una rappresentazione del passaggio locale insieme al contesto più ampio del documento, come un’entità o un argomento introdotti altrove nella fonte.</p><p>Preparate ogni documento come una sequenza ordinata di segmenti di testo leggibile. Mantenete insieme i segmenti di un documento e preservatene l’ordine originale. Nel processo contestualizzato del produttore, ogni gruppo interno contiene i segmenti di una fonte e gruppi separati rappresentano fonti separate. Questo raggruppamento fa parte del significato dell’input: indica al modello quale testo circostante appartenga al documento rappresentato.</p><p>Un caso utile è una relazione la cui apertura identifica l’azienda mentre un paragrafo successivo ne spiega la crescita. Una ricerca sulla crescita di quell’azienda richiede sia il paragrafo specifico sia l’identità del documento. Conservate il testo originale del segmento e i metadati del documento a cui appartiene insieme al vettore risultante, affinché il risultato possa mostrare il passaggio e collegarsi alla fonte completa.</p><p>La documentazione di riferimento del produttore indica fino a 120 000 token nell’intera richiesta, con non più di 1 000 gruppi di input e 16 000 segmenti in totale. La guida del modello indica separatamente una finestra di 32 000 token per segmento. Mantenete distinti questi ambiti quando preparate i materiali: un limite sul singolo segmento e un limite sulla richiesta completa descrivono dimensioni di input diverse. Verificate il totale dopo aver suddiviso la fonte, anziché presumere che ogni singolo segmento possa raggiungere il proprio massimo nella stessa richiesta.</p><p>Per il recupero di documenti, identificate i passaggi raggruppati come input di documento. Preparate ogni domanda di ricerca come un proprio gruppo di query. Il produttore raccomanda segmenti di documento forniti senza sovrapposizione, permettendo alla rappresentazione contestualizzata di trasportare le informazioni circostanti senza ripetere il testo in ogni passaggio. Mantenete la corrispondenza tra gruppo di segmenti del documento, posizione del segmento e vettore restituito quando scrivete l’indice.</p><p>Voyage Context 3 supporta 2 048, 1 024, 512 e 256 dimensioni, con scelte di output in virgola mobile, a interi di otto bit e binario. Scegliete una rappresentazione per l’indice e valutatela sugli stessi documenti di fonte e sulle stesse domande. Conservate la dimensione e il tipo di dato selezionati insieme all’indice, in modo che la rappresentazione delle query e i vettori archiviati rimangano coerenti.</p><p>Usate i vettori risultanti nella ricerca di passaggi, nell’individuazione di documenti o nella fase di recupero di un assistente che lavora con relazioni, articoli di ricerca, contratti o manuali tecnici. Un risultato può identificare un passaggio mirato mentre il collegamento alla fonte dà accesso a definizioni e precisazioni presenti altrove nel documento. Conservate versioni dei documenti e autorizzazioni come metadati dell’applicazione insieme ai vettori.</p><p>Verificate domande che richiedono sia un dettaglio locale sia il contesto dell’intero documento. Includete passaggi simili da fonti diverse, entità nominate soltanto all’inizio e domande i cui elementi di prova si distribuiscono su più sezioni. Esaminate se il segmento atteso venga recuperato e se l’applicazione mostri testo circostante sufficiente per interpretarlo. Quando una fonte cambia, rigenerate intenzionalmente il gruppo di segmenti del documento interessato, affinché i suoi segmenti contestualizzati corrispondano a una versione coerente.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Disponibile in Ailoot · input e metodi</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Embedding</b> <code>POST /v1/embeddings</code></summary><dl class=\"method-capabilities\"><div><dt>Tipi di input</dt><dd><code>text</code></dd></div><div><dt>Tipi di output</dt><dd><code>embedding</code></dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Campo</th><th>Tipo</th><th>Requisito</th><th>Valori e limiti</th><th>Predefinito</th></tr></thead><tbody><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>string</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Obbligatorio</td><td data-cell-label=\"Valori e limiti\"><span class=\"card-cell-label\">Valori e limiti</span><div>voyage-context-3</div><div>Condizioni: Usa il selettore esatto del modello Ailoot.</div></td><td data-cell-label=\"Predefinito\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predefinito</span>—</td></tr><tr><th data-cell-label=\"Campo\" scope=\"row\"><span class=\"card-cell-label\">Campo</span><code class=\"card-field-name\">input</code></th><td data-cell-label=\"Tipo\" data-field-type><span class=\"card-cell-label\">Tipo</span><code>string or array&lt;string&gt;</code></td><td data-cell-label=\"Requisito\"><span class=\"card-cell-label\">Requisito</span>Obbligatorio</td><td data-cell-label=\"Valori e limiti\"><span class=\"card-cell-label\">Valori e limiti</span><div>Condizioni: Un testo o un elenco di testi; conserva un vettore per ogni elemento di dati restituito e il relativo indice.</div></td><td data-cell-label=\"Predefinito\" data-default=\"unspecified\"><span class=\"card-cell-label\">Predefinito</span>—</td></tr></tbody></table></div><details class=\"note-s\" data-method-contract><summary>Parametri e ciclo di vita del metodo</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Parametro</th><th>Contratto</th></tr></thead><tbody><tr><th data-cell-label=\"Parametro\" scope=\"row\"><span class=\"card-cell-label\">Parametro</span><code>content_type</code></th><td data-cell-label=\"Contratto\"><span class=\"card-cell-label\">Contratto</span>application/json</td></tr><tr><th data-cell-label=\"Parametro\" scope=\"row\"><span class=\"card-cell-label\">Parametro</span><code>required</code></th><td data-cell-label=\"Contratto\"><span class=\"card-cell-label\">Contratto</span>model, input</td></tr><tr><th data-cell-label=\"Parametro\" scope=\"row\"><span class=\"card-cell-label\">Parametro</span><code>optional</code></th><td data-cell-label=\"Contratto\"><span class=\"card-cell-label\">Contratto</span></td></tr><tr><th data-cell-label=\"Parametro\" scope=\"row\"><span class=\"card-cell-label\">Parametro</span><code>material_types</code></th><td data-cell-label=\"Contratto\"><span class=\"card-cell-label\">Contratto</span>text</td></tr><tr><th data-cell-label=\"Parametro\" scope=\"row\"><span class=\"card-cell-label\">Parametro</span><code>conditions</code></th><td data-cell-label=\"Contratto\"><span class=\"card-cell-label\">Contratto</span>Invia il testo con il modello selezionato; conserva ogni vettore restituito e il suo indice.</td></tr></tbody></table></div><p>Ciclo di vita: <code>synchronous</code></p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Tariffe</h3><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Le tariffe non aggiungono opzioni alla richiesta. I parametri supportati sono elencati nel metodo selezionato.</p><dl data-price-conditions><dt>Modalità rapida</dt><dd>Non specificato <span class=\"note-s\">Quando è selezionata la modalità rapida</span></dd><dt>Modalità flex</dt><dd>Non specificato <span class=\"note-s\">Quando è selezionata la modalità flex</span></dd><dt>Sforzo massimo di ragionamento</dt><dd>Non specificato <span class=\"note-s\">Quando lo sforzo massimo di ragionamento usa l&#39;adeguamento predefinito (default)</span></dd></dl></div><div data-declared-tariff-pricing><h4>Tariffe Ailoot</h4><h4>Prezzi per configurazione</h4><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Configurazione</th><th>Listino delle tariffe</th><th>Costo</th></tr></thead><tbody><tr><th data-cell-label=\"Configurazione\" scope=\"row\"><span class=\"card-cell-label\">Configurazione</span>Tariffe base dei token</th><td data-cell-label=\"Listino delle tariffe\"><span class=\"card-cell-label\">Listino delle tariffe</span>Tariffa base</td><td data-cell-label=\"Costo\"><span class=\"card-cell-label\">Costo</span><div><span>Input · Token in input</span> <b>$0.0004</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Output · Token in output</span> <b>$0</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Input · Lettura dalla cache</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Input · Scrittura nella cache</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Input · Scrittura nella cache, 1 ora</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div></td></tr></tbody></table></div></div><p class=\"note-s\">Ailoot prenota un importo stimato prima di una richiesta. Dopo il risultato, addebita il costo finale in base all’utilizzo misurato. Per lo streaming, l’addebito usa il record finale di utilizzo. <a href=\"/docs/it/billing/reserve/\">Come funzionano la prenotazione e l’addebito finale →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Esempi di richieste</h3><h4>Ailoot Ultra · Embedding</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Varianti di codice\"><button class=\"cg-tab\" id=\"model-code-2791-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2791-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · salva tutti i vettori e i dati di utilizzo</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Copia il codice\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-2791-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-2791-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\ncat &gt; request.json &lt;&lt;&#39;JSON&#39;\n{\n  &quot;model&quot;: &quot;voyage-context-3&quot;,\n  &quot;input&quot;: &quot;The quick brown fox jumps over the lazy dog&quot;\n}\nJSON\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/embeddings \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o embeddings.json\n# Keep every data item and its index, the full usage object and response headers.\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Ricevi e salva i risultati</h3></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Alias</h3><h4>Alias del modello</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=voyage-context-3&amp;route=Ultra&amp;caller=voyage-context-3&amp;fmt=embeddings\"><code>voyage-context-3</code></a></span></p><h4>Alias dei percorsi dei metodi</h4><p class=\"note-s\">Usa i percorsi dei metodi indicati sopra.</p><h4>ID di chiamata correlati</h4><p class=\"note-s\"><a href=\"#m=voyage-context-3&amp;route=Ultra&amp;caller=voyage-context-3&amp;fmt=embeddings\"><code>voyage-context-3</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "voyage-context-3",
        "fmt": "embeddings",
        "http": "POST",
        "path": "/v1/embeddings",
        "request_model_id": "voyage-context-3",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|embeddings|/v1/embeddings|voyage-context-3",
      "ordinal": 0,
      "rawMethod": {
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Save the complete JSON response, every vector with its index, all usage fields and request headers.",
            "lifecycle": {
              "content": [],
              "create": {
                "http": "POST",
                "path": "/v1/embeddings"
              },
              "mode": "synchronous",
              "status": [],
              "unknown": "Conserva la risposta originale e X-Client-Request-ID per la riconciliazione. Una risposta ambigua non autorizza a inviare di nuovo la stessa richiesta di creazione.",
              "unknown_no_replay": true
            },
            "outputs": {
              "all_results": "Salva la risposta JSON completa, ogni vettore con il relativo indice, tutti i campi di utilizzo e le intestazioni della richiesta.",
              "every_actual_output": true,
              "family": "embedding",
              "fields": [
                {
                  "name": "object",
                  "type": "string"
                },
                {
                  "name": "model",
                  "type": "string"
                },
                {
                  "name": "data[].index",
                  "type": "integer"
                },
                {
                  "name": "data[].embedding",
                  "type": "array<number>"
                },
                {
                  "name": "usage",
                  "type": "object"
                },
                {
                  "name": "usage.prompt_tokens",
                  "type": "integer"
                },
                {
                  "name": "usage.total_tokens",
                  "type": "integer"
                }
              ]
            },
            "parameters": [
              {
                "conditions": "Usa il selettore esatto del modello Ailoot.",
                "default_known": false,
                "enum": [
                  "voyage-context-3"
                ],
                "enum_known": true,
                "maximum_length": null,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "conditions": "Un testo o un elenco di testi; conserva un vettore per ogni elemento di dati restituito e il relativo indice.",
                "default_known": false,
                "enum_known": false,
                "maximum_length": null,
                "name": "input",
                "oneOf": [
                  {
                    "minLength": 1,
                    "type": "string"
                  },
                  {
                    "items": {
                      "minLength": 1,
                      "type": "string"
                    },
                    "minItems": 1,
                    "type": "array"
                  }
                ],
                "required": true,
                "type": "string or array<string>"
              }
            ],
            "request_schema": {
              "additionalProperties": true,
              "properties": {
                "input": {
                  "oneOf": [
                    {
                      "minLength": 1,
                      "type": "string"
                    },
                    {
                      "items": {
                        "minLength": 1,
                        "type": "string"
                      },
                      "minItems": 1,
                      "type": "array"
                    }
                  ]
                },
                "model": {
                  "enum": [
                    "voyage-context-3"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "model",
                "input"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": false,
              "body": {
                "input": "The quick brown fox jumps over the lazy dog",
                "model": "voyage-context-3"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "conditions": [
              "Invia il testo con il modello selezionato; conserva ogni vettore restituito e il suo indice."
            ],
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "optional": [],
            "required": [
              "model",
              "input"
            ]
          },
          "lifecycle": {
            "content": [],
            "create": {
              "http": "POST",
              "path": "/v1/embeddings"
            },
            "mode": "synchronous",
            "status": [],
            "unknown": "Keep the original response and X-Client-Request-ID for reconciliation. An ambiguous response is not permission to submit the same creation again.",
            "unknown_no_replay": true
          },
          "method": {
            "http": "POST",
            "path": "/v1/embeddings"
          },
          "output": {
            "all_results": "Save the complete JSON response, every vector with its index, all usage fields and request headers.",
            "every_actual_output": true,
            "family": "embedding",
            "fields": [
              {
                "name": "object",
                "type": "string"
              },
              {
                "name": "model",
                "type": "string"
              },
              {
                "name": "data[].index",
                "type": "integer"
              },
              {
                "name": "data[].embedding",
                "type": "array<number>"
              },
              {
                "name": "usage",
                "type": "object"
              },
              {
                "name": "usage.prompt_tokens",
                "type": "integer"
              },
              {
                "name": "usage.total_tokens",
                "type": "integer"
              }
            ]
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Tariffe base dei token",
            "units": [
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\ncat > request.json <<'JSON'\n{\n  \"model\": \"voyage-context-3\",\n  \"input\": \"The quick brown fox jumps over the lazy dog\"\n}\nJSON\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/embeddings \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o embeddings.json\n# Keep every data item and its index, the full usage object and response headers.\n",
            "label": "curl · save all vectors and usage",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "embeddings",
        "http": "POST",
        "in": 0.4,
        "input": [
          "text"
        ],
        "label": "Embedding",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "out": 0,
        "output": [
          "embedding"
        ],
        "path": "/v1/embeddings",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "token",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "request_model_id": "voyage-context-3",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [],
        "units": [
          {
            "amount": "0.0004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000004",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      }
    }
  ],
  "model_id": "voyage-context-3",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "69c9d7889125c8dcd89ac090a15087dcead653cc511f3541be1a33a263119ac5",
    "input_html_sha256": "abb9ebb67f9bd188567ae44664d55b4197e8b1810c87aeda0a3b0feab64812c8",
    "private_audit_sha256": "045e8f16c7db92440e2ecd4ac6da95410a897b727b80b478e8ababb254980766",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/it/voyage-context-3/",
    "description": "Voyage Context 3 crea un vettore per ogni segmento di un documento incorporando il contesto degli altri segmenti di quel documento. Supporta il recupero preciso di passaggi in documenti lunghi, con dimensioni selezionabili ed embedding quantizzati.",
    "locale": "it",
    "md_url": "https://ailoot.ai/models/it/voyage-context-3/index.md",
    "title": "Voyage AI: Voyage Context 3 — Ailoot",
    "url": "https://ailoot.ai/models/it/voyage-context-3/"
  },
  "rawModel": {
    "about": "Voyage Context 3 produce embedding contestualizzati dei segmenti per il recupero di documenti. Ogni segmento riceve il proprio vettore, mentre il modello considera anche gli altri segmenti forniti dallo stesso documento. Questo offre a un sistema di recupero una rappresentazione del passaggio locale insieme al contesto più ampio del documento, come un’entità o un argomento introdotti altrove nella fonte.\n\nPreparate ogni documento come una sequenza ordinata di segmenti di testo leggibile. Mantenete insieme i segmenti di un documento e preservatene l’ordine originale. Nel processo contestualizzato del produttore, ogni gruppo interno contiene i segmenti di una fonte e gruppi separati rappresentano fonti separate. Questo raggruppamento fa parte del significato dell’input: indica al modello quale testo circostante appartenga al documento rappresentato.\n\nUn caso utile è una relazione la cui apertura identifica l’azienda mentre un paragrafo successivo ne spiega la crescita. Una ricerca sulla crescita di quell’azienda richiede sia il paragrafo specifico sia l’identità del documento. Conservate il testo originale del segmento e i metadati del documento a cui appartiene insieme al vettore risultante, affinché il risultato possa mostrare il passaggio e collegarsi alla fonte completa.\n\nLa documentazione di riferimento del produttore indica fino a 120 000 token nell’intera richiesta, con non più di 1 000 gruppi di input e 16 000 segmenti in totale. La guida del modello indica separatamente una finestra di 32 000 token per segmento. Mantenete distinti questi ambiti quando preparate i materiali: un limite sul singolo segmento e un limite sulla richiesta completa descrivono dimensioni di input diverse. Verificate il totale dopo aver suddiviso la fonte, anziché presumere che ogni singolo segmento possa raggiungere il proprio massimo nella stessa richiesta.\n\nPer il recupero di documenti, identificate i passaggi raggruppati come input di documento. Preparate ogni domanda di ricerca come un proprio gruppo di query. Il produttore raccomanda segmenti di documento forniti senza sovrapposizione, permettendo alla rappresentazione contestualizzata di trasportare le informazioni circostanti senza ripetere il testo in ogni passaggio. Mantenete la corrispondenza tra gruppo di segmenti del documento, posizione del segmento e vettore restituito quando scrivete l’indice.\n\nVoyage Context 3 supporta 2 048, 1 024, 512 e 256 dimensioni, con scelte di output in virgola mobile, a interi di otto bit e binario. Scegliete una rappresentazione per l’indice e valutatela sugli stessi documenti di fonte e sulle stesse domande. Conservate la dimensione e il tipo di dato selezionati insieme all’indice, in modo che la rappresentazione delle query e i vettori archiviati rimangano coerenti.\n\nUsate i vettori risultanti nella ricerca di passaggi, nell’individuazione di documenti o nella fase di recupero di un assistente che lavora con relazioni, articoli di ricerca, contratti o manuali tecnici. Un risultato può identificare un passaggio mirato mentre il collegamento alla fonte dà accesso a definizioni e precisazioni presenti altrove nel documento. Conservate versioni dei documenti e autorizzazioni come metadati dell’applicazione insieme ai vettori.\n\nVerificate domande che richiedono sia un dettaglio locale sia il contesto dell’intero documento. Includete passaggi simili da fonti diverse, entità nominate soltanto all’inizio e domande i cui elementi di prova si distribuiscono su più sezioni. Esaminate se il segmento atteso venga recuperato e se l’applicazione mostri testo circostante sufficiente per interpretarlo. Quando una fonte cambia, rigenerate intenzionalmente il gruppo di segmenti del documento interessato, affinché i suoi segmenti contestualizzati corrispondano a una versione coerente.",
    "about_sha256": "cbe672f81d248e79c90f9384b4d5a3ff311043f96a3b07b7eb8b4ede52d2cd43",
    "alias_of": null,
    "aliases": [],
    "author": "Voyage AI",
    "capabilities": {
      "context_length": 120000,
      "manufacturer_input": [
        "text"
      ],
      "manufacturer_output": [
        "embeddings"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.0004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000004",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          }
        ],
        "summary": "Tutte le tariffe della configurazione sono riportate nei dettagli."
      }
    ],
    "ctx": null,
    "display_name": "Voyage AI: Voyage Context 3",
    "formats": [
      "embeddings"
    ],
    "id": "voyage-context-3",
    "input": [
      "text"
    ],
    "kind": "embedding",
    "locale": "en",
    "max_out": null,
    "methods": [
      {
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Save the complete JSON response, every vector with its index, all usage fields and request headers.",
            "lifecycle": {
              "content": [],
              "create": {
                "http": "POST",
                "path": "/v1/embeddings"
              },
              "mode": "synchronous",
              "status": [],
              "unknown": "Conserva la risposta originale e X-Client-Request-ID per la riconciliazione. Una risposta ambigua non autorizza a inviare di nuovo la stessa richiesta di creazione.",
              "unknown_no_replay": true
            },
            "outputs": {
              "all_results": "Salva la risposta JSON completa, ogni vettore con il relativo indice, tutti i campi di utilizzo e le intestazioni della richiesta.",
              "every_actual_output": true,
              "family": "embedding",
              "fields": [
                {
                  "name": "object",
                  "type": "string"
                },
                {
                  "name": "model",
                  "type": "string"
                },
                {
                  "name": "data[].index",
                  "type": "integer"
                },
                {
                  "name": "data[].embedding",
                  "type": "array<number>"
                },
                {
                  "name": "usage",
                  "type": "object"
                },
                {
                  "name": "usage.prompt_tokens",
                  "type": "integer"
                },
                {
                  "name": "usage.total_tokens",
                  "type": "integer"
                }
              ]
            },
            "parameters": [
              {
                "conditions": "Usa il selettore esatto del modello Ailoot.",
                "default_known": false,
                "enum": [
                  "voyage-context-3"
                ],
                "enum_known": true,
                "maximum_length": null,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "conditions": "Un testo o un elenco di testi; conserva un vettore per ogni elemento di dati restituito e il relativo indice.",
                "default_known": false,
                "enum_known": false,
                "maximum_length": null,
                "name": "input",
                "oneOf": [
                  {
                    "minLength": 1,
                    "type": "string"
                  },
                  {
                    "items": {
                      "minLength": 1,
                      "type": "string"
                    },
                    "minItems": 1,
                    "type": "array"
                  }
                ],
                "required": true,
                "type": "string or array<string>"
              }
            ],
            "request_schema": {
              "additionalProperties": true,
              "properties": {
                "input": {
                  "oneOf": [
                    {
                      "minLength": 1,
                      "type": "string"
                    },
                    {
                      "items": {
                        "minLength": 1,
                        "type": "string"
                      },
                      "minItems": 1,
                      "type": "array"
                    }
                  ]
                },
                "model": {
                  "enum": [
                    "voyage-context-3"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "model",
                "input"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": false,
              "body": {
                "input": "The quick brown fox jumps over the lazy dog",
                "model": "voyage-context-3"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "conditions": [
              "Invia il testo con il modello selezionato; conserva ogni vettore restituito e il suo indice."
            ],
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "optional": [],
            "required": [
              "model",
              "input"
            ]
          },
          "lifecycle": {
            "content": [],
            "create": {
              "http": "POST",
              "path": "/v1/embeddings"
            },
            "mode": "synchronous",
            "status": [],
            "unknown": "Keep the original response and X-Client-Request-ID for reconciliation. An ambiguous response is not permission to submit the same creation again.",
            "unknown_no_replay": true
          },
          "method": {
            "http": "POST",
            "path": "/v1/embeddings"
          },
          "output": {
            "all_results": "Save the complete JSON response, every vector with its index, all usage fields and request headers.",
            "every_actual_output": true,
            "family": "embedding",
            "fields": [
              {
                "name": "object",
                "type": "string"
              },
              {
                "name": "model",
                "type": "string"
              },
              {
                "name": "data[].index",
                "type": "integer"
              },
              {
                "name": "data[].embedding",
                "type": "array<number>"
              },
              {
                "name": "usage",
                "type": "object"
              },
              {
                "name": "usage.prompt_tokens",
                "type": "integer"
              },
              {
                "name": "usage.total_tokens",
                "type": "integer"
              }
            ]
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Tariffe base dei token",
            "units": [
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\ncat > request.json <<'JSON'\n{\n  \"model\": \"voyage-context-3\",\n  \"input\": \"The quick brown fox jumps over the lazy dog\"\n}\nJSON\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/embeddings \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o embeddings.json\n# Keep every data item and its index, the full usage object and response headers.\n",
            "label": "curl · save all vectors and usage",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "embeddings",
        "http": "POST",
        "in": 0.4,
        "input": [
          "text"
        ],
        "label": "Embedding",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "out": 0,
        "output": [
          "embedding"
        ],
        "path": "/v1/embeddings",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "token",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000004",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "request_model_id": "voyage-context-3",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [],
        "units": [
          {
            "amount": "0.0004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000004",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "voyage-context-3",
        "request_model_id": "voyage-context-3",
        "route_label": "Ultra"
      }
    ],
    "name": "Voyage AI: Voyage Context 3",
    "price": {
      "in": 0.4,
      "in_label": null,
      "out": 0,
      "out_label": null,
      "scope_label": "Token rates",
      "sort_in": 0.4,
      "sort_out": 0,
      "varies": false
    },
    "short": "Voyage Context 3 crea un vettore per ogni segmento di un documento incorporando il contesto degli altri segmenti di quel documento. Supporta il recupero preciso di passaggi in documenti lunghi, con dimensioni selezionabili ed embedding quantizzati.",
    "short_sha256": "ecf5347d318cafaa85e440415592285b9b3d6c51afeb2467a37418c7b94e3dd3"
  },
  "renderer_schema": {
    "method_order": "Original DTO methods order; every exact route/format/path/caller survives.",
    "prices": "Original public DTO fields and original native display HTML; no flattened or normalized offers."
  },
  "representation": "exact-public-dto-and-native-renderer-html",
  "representationNotes": {
    "current_reference": {
      "about_json_pointer": "/aboutHtml",
      "methods": [
        {
          "contract_json_pointer": "/methods/0/rawMethod/contract",
          "html_json_pointer": "/methods/0/html",
          "method_ordinal": 0
        }
      ],
      "role": "current-semantic-reference"
    },
    "raw_input": {
      "examples_role": "historical-input-not-current-ready-examples",
      "json_pointers": [
        "/rawModel",
        "/methods/0/rawMethod"
      ],
      "role": "historical-owner-input"
    },
    "schema": "ailoot-native-model-representations-v1"
  },
  "schema": "ailoot-static-model-facts-v1",
  "schema_version": 1,
  "shortText": "Voyage Context 3 crea un vettore per ogni segmento di un documento incorporando il contesto degli altri segmenti di quel documento. Supporta il recupero preciso di passaggi in documenti lunghi, con dimensioni selezionabili ed embedding quantizzati.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "b453add11a608640003f6f968a156068d82e80d54d6dc1a26fa66ad02c8eac9c",
    "renderer_sha256": "3be1a96012c3c76b38a7b9bea6a57c0def38c56103737bee6a5e77aaa75e488a"
  },
  "sourceRevision": "e3eacb9bd66cd33d4b9f1d35989eafa18cbbcb13c74ca4efd604994660eebc20"
}
