> ## Documentation Index
> Fetch the complete documentation index at: https://veniceai-mintlify-de47a659.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Embeddings

> Genera embedding vettoriali con l'endpoint /embeddings di Venice compatibile OpenAI per ricerca semantica, recupero RAG, clustering e similarità.

Gli embedding convertono il testo in vettori che catturano il significato semantico. Usali per ricerca, generazione aumentata da recupero (RAG), clustering, raccomandazioni, deduplicazione e calcolo della similarità.

L'endpoint embeddings di Venice è compatibile con OpenAI. Invia una singola stringa o un array di stringhe a `/embeddings`, quindi memorizza i vettori restituiti nel tuo database o indice vettoriale.

<Warning>
  Venice accetta solo testo. Invia una stringa o un array di stringhe. Gli array di token ID vengono rifiutati con HTTP 400. `OpenAIEmbeddings` di LangChain deve impostare `check_embedding_ctx_length=False`, altrimenti tokenizza localmente con tiktoken e invia array di interi.
</Warning>

## Utilizzo di Base

<CodeGroup>
  ```python Python theme={null}
  import os
  from openai import OpenAI

  client = OpenAI(
      api_key=os.environ["VENICE_API_KEY"],
      base_url="https://api.venice.ai/api/v1",
  )

  response = client.embeddings.create(
      model="text-embedding-bge-m3",
      input="Privacy-first AI infrastructure for semantic search",
  )

  vector = response.data[0].embedding
  print(len(vector), vector[:5])
  ```

  ```javascript Node.js theme={null}
  import OpenAI from "openai";

  const client = new OpenAI({
    apiKey: process.env.VENICE_API_KEY,
    baseURL: "https://api.venice.ai/api/v1",
  });

  const response = await client.embeddings.create({
    model: "text-embedding-bge-m3",
    input: "Privacy-first AI infrastructure for semantic search",
  });

  const vector = response.data[0].embedding;
  console.log(vector.length, vector.slice(0, 5));
  ```

  ```bash cURL theme={null}
  curl https://api.venice.ai/api/v1/embeddings \
    -H "Authorization: Bearer $VENICE_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "model": "text-embedding-bge-m3",
      "input": "Privacy-first AI infrastructure for semantic search",
      "encoding_format": "float"
    }'
  ```
</CodeGroup>

## Input in Batch

Passa un array di stringhe per generare embedding di più testi in una singola richiesta. Ogni elemento deve essere testo, non un array di token ID.

Si applicano due limiti, entrambi verificati prima che la richiesta raggiunga un modello:

| Limite                 | Valore | Errore quando superato                                                                             |
| ---------------------- | ------ | -------------------------------------------------------------------------------------------------- |
| Elementi per richiesta | 2.048  | `400` — *"Array must contain at most 2048 element(s)"*                                             |
| Token per elemento     | 8.192  | `400` — il conteggio dei token è verificato per singolo elemento dell'array, non sull'intero batch |

Dimensiona i tuoi batch di ingest rispetto al limite di 2.048 e suddividi i documenti lunghi sotto gli 8.192 token per elemento. Anche il body della richiesta è strict, quindi un campo non riconosciuto restituisce un `400` invece di essere ignorato.

```json theme={null}
{
  "model": "text-embedding-bge-m3",
  "input": [
    "Venice supports private chat completions.",
    "Embeddings help retrieve relevant documents.",
    "Vector search powers RAG applications."
  ]
}
```

La risposta preserva l'ordine dell'input. Memorizza ogni vettore insieme all'ID del testo di origine, ai metadati e all'ID del modello di embedding.

## Flusso di Lavoro Tipico

1. Suddividi i documenti di origine in chunk.
2. Genera gli embedding per ogni chunk.
3. Memorizza vettori e metadati in un database vettoriale.
4. Genera l'embedding della query dell'utente.
5. Recupera i chunk più vicini.
6. Invia il contesto recuperato a un modello di chat.

Per un'implementazione completa, consulta [Creare un Bot RAG Privato](/learn/private-rag-bot).

## Scelta del Modello

Usa la pagina [Modelli di Embedding](/models/embeddings) per confrontare i modelli di embedding disponibili, le dimensioni e i prezzi.

<Note>
  Usa lo stesso modello di embedding per l'indicizzazione e per le query. Mescolare modelli diversi può rendere i punteggi di similarità inaffidabili perché gli spazi vettoriali non sono interscambiabili.
</Note>

## Risorse Correlate

* [API Embeddings](/api-reference/endpoint/embeddings/generate)
* [Modelli di Embedding](/models/embeddings)
* [LangChain](/guides/integrations/langchain#embeddings)
* [Guida al Bot RAG Privato](/learn/private-rag-bot)
