> ## 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

> Gere embeddings vetoriais com o endpoint /embeddings da Venice, compatível com OpenAI, para busca semântica, recuperação RAG, clustering e similaridade.

Embeddings convertem texto em vetores que capturam significado semântico. Use-os para busca, geração aumentada por recuperação (RAG), clusterização, recomendações, deduplicação e pontuação de similaridade.

O endpoint de embeddings da Venice é compatível com OpenAI. Envie uma string ou um array de strings para `/embeddings` e armazene os vetores retornados no seu banco de dados ou índice vetorial.

<Warning>
  A Venice aceita apenas texto. Envie uma string ou um array de strings. Arrays de IDs de tokens são rejeitados com HTTP 400. `OpenAIEmbeddings` do LangChain deve definir `check_embedding_ctx_length=False`, caso contrário ele tokeniza localmente com tiktoken e envia arrays de inteiros.
</Warning>

## Uso Básico

<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>

## Entradas em Lote

Passe um array de strings para gerar embeddings de vários textos em uma única requisição. Cada item deve ser texto, não um array de IDs de tokens.

Dois limites se aplicam, e ambos são impostos antes de a requisição chegar a um modelo:

| Limite               | Valor | Erro quando excedido                                                                |
| -------------------- | ----- | ----------------------------------------------------------------------------------- |
| Itens por requisição | 2.048 | `400` — *"Array must contain at most 2048 element(s)"*                              |
| Tokens por item      | 8.192 | `400` — a contagem de tokens é verificada por entrada do array, não no lote inteiro |

Dimensione seus lotes de ingestão considerando o teto de 2.048 e divida documentos longos em blocos abaixo de 8.192 tokens por entrada. O corpo da requisição também é estrito, então um campo não reconhecido retorna um `400` em vez de ser ignorado.

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

A resposta preserva a ordem de entrada. Armazene cada vetor com o ID do texto de origem, os metadados e o ID do modelo de embedding.

## Fluxo de Trabalho Comum

1. Divida os documentos de origem em pedaços (chunks).
2. Gere embeddings para cada pedaço.
3. Armazene os vetores e metadados em um banco de dados vetorial.
4. Gere o embedding da consulta do usuário.
5. Recupere os pedaços mais próximos.
6. Envie o contexto recuperado para um modelo de chat.

Para uma implementação completa, veja [Construindo um Bot RAG Privado](/learn/private-rag-bot).

## Seleção de Modelo

Use a página [Modelos de Embedding](/models/embeddings) para comparar os modelos de embedding atuais, dimensões e preços.

<Note>
  Use o mesmo modelo de embedding para indexação e consulta. Misturar modelos pode tornar as pontuações de similaridade não confiáveis, pois os espaços vetoriais não são intercambiáveis.
</Note>

## Recursos Relacionados

* [API de Embeddings](/api-reference/endpoint/embeddings/generate)
* [Modelos de Embedding](/models/embeddings)
* [LangChain](/guides/integrations/langchain#embeddings)
* [Guia do Bot RAG Privado](/learn/private-rag-bot)
