# Vector DB

## **Visão geral**

O conector **Vector DB** desempenha um papel central em seu pipeline ao executar o processo de **ingestão de dados**. Ele converte informações em uma **representação vetorial** que pode ser utilizada posteriormente para **busca e recuperação semântica**. Quando um prompt é recebido, cálculos de similaridade identificam os vetores mais relevantes, e seus textos correspondentes são recuperados para enriquecer o contexto fornecido ao modelo de linguagem (LLM).

Diferente dos bancos de dados tradicionais, que armazenam texto ou dados estruturados, um banco de dados vetorial armazena **embeddings**, que são representações numéricas que capturam o significado do conteúdo. Esses embeddings permitem que modelos de IA encontrem informações relacionadas com base em similaridade, em vez de correspondência exata de palavras-chave.

## **Como funciona**

O funcionamento do conector envolve um processo sequencial com três etapas principais:

{% stepper %}
{% step %}

#### **Ingestão de dados**

O conector recebe dados de uma etapa anterior do pipeline. Esses dados podem vir de várias fontes, como o trigger ou outro conector da plataforma.

Você pode definir o tipo de origem por meio do parâmetro **Source Type**:

* **Text**: Para processar conteúdo de texto bruto.
* **File**: Para processar um documento armazenado.
  {% endstep %}

{% step %}

#### **Geração de embedding**

O conteúdo recebido é processado usando o **Embedding Model** configurado, que converte os dados em um vetor (uma lista de números que representa seu significado semântico). Esses vetores não são legíveis por humanos, mas são essenciais para buscas e recuperação baseadas em IA nas etapas seguintes.

Fornecedores de modelos de embedding suportados incluem:

* **Local (default):** Um modelo de embedding local leve (**all-MiniLM-L6-v2**) útil para casos de uso básicos ou testes.
* **Fornecedores externos:** Você pode selecionar opções mais avançadas, como:
  * **Hugging Face**: Oferece uma variedade de modelos de texto e multimodais.
  * **OpenAI**: Suporta modelos como `text-embedding-3-small` e `text-embedding-3-large`.
  * **Google Vertex AI**: Permite geração de embeddings em nível empresarial.
    {% endstep %}

{% step %}

#### **Armazenamento de vetores**

Após a geração dos embeddings, eles são armazenados no **Vector Store** configurado. Atualmente, o conector suporta:

* **Neo4j** (banco de dados baseado em grafos).
* Bancos de dados compatíveis com **Postgres**.
  {% endstep %}
  {% endstepper %}

## **Dimensões de vetores**

Cada modelo de embedding produz vetores com uma **dimensão** específica (por exemplo, 3072 valores). A dimensão usada no modelo deve **corresponder exatamente** à dimensão definida na tabela do vector store de destino. Caso contrário, o processo de ingestão falhará.

Quando a opção **Auto-Create** está ativada, o conector cria automaticamente uma nova tabela com a dimensão correta de acordo com o modelo de embedding selecionado.

## **Operações suportadas**

No estágio atual, o conector suporta apenas operações de **ingestão**:

* **Insert:** Armazena os embeddings gerados no vector store.
* **Metadata:** É possível incluir metadados (pares chave–valor adicionais) ao armazenar embeddings, mas filtros baseados em metadata ainda não estão disponíveis.

## **Output**

O conector retorna uma **mensagem de confirmação** indicando o resultado do processo de ingestão.

Se suportado pelo modelo de embedding, a resposta também pode incluir informações adicionais, como o **número de tokens processados** durante a geração dos embeddings.

## **Configuração de parâmetros**

Configure o conector usando os parâmetros abaixo. Campos que suportam [expressões Double Braces](/documentation/connectors-and-triggers/pt-br/double-braces/overview.md) estão marcados na coluna **Suporta DB**.

{% tabs fullWidth="true" %}
{% tab title="General" %}

<table data-full-width="true"><thead><tr><th>Parâmetro</th><th>Descrição</th><th>Tipo</th><th>Suporta DB</th><th>Padrão</th></tr></thead><tbody><tr><td><strong>Alias</strong></td><td>Nome (alias) para a saída deste conector, permitindo que você o referencie posteriormente no fluxo usando Double Braces expressions.</td><td>String</td><td>✅</td><td>vector-db-1</td></tr><tr><td><strong>Source Type</strong></td><td>Define o tipo de dado que o conector irá processar. Tipos suportados: <strong>Text</strong> e <strong>File</strong>.</td><td>String</td><td>❌</td><td>N/A</td></tr><tr><td><strong>Metadata</strong></td><td>Armazena informações extras para identificar os vetores.</td><td>Key-value pairs</td><td>❌</td><td></td></tr></tbody></table>
{% endtab %}

{% tab title="Embedding Model" %}
Um modelo de embedding converte texto ou outros tipos de dados em vetores numéricos que representam seu significado semântico. Esses vetores permitem medir a similaridade entre conteúdos com base no significado, e não nas palavras exatas.

Modelos de embedding são comumente usados para tarefas como semantic **search**, **clustering** e **Retrieval-Augmented Generation (RAG)**, permitindo comparação e recuperação eficientes de informações contextualmente relevantes.

<table data-full-width="true"><thead><tr><th>Parâmetro</th><th>Descrição</th><th>Tipo</th><th>Suporta DB</th><th>Padrão</th></tr></thead><tbody><tr><td><strong>Embedding Provider</strong></td><td>O fornecedor do modelo de embedding a ser utilizado. Opções: <strong>Local (all-MiniLM-L6-v2)</strong>, <strong>OpenAI</strong>, <strong>Google Vertex AI</strong> e <strong>Hugging Face</strong>.</td><td>String</td><td>❌</td><td>Local (all-MiniLM-L6-v2)</td></tr></tbody></table>

#### **Local (all-MiniLM-L6-v2)**

Não há parâmetros configuráveis para este fornecedor. Entretanto, o conector ainda utiliza uma **Vector Dimension** interna, que define a dimensão dos vetores de embedding. Essa dimensão deve **corresponder exatamente** ao tamanho do vetor do modelo. Se a tabela não existir, o auto-create utilizará esta dimensão; tabelas com dimensões divergentes causarão erros. Para este fornecedor, a **dimensão padrão é 384**.

#### **OpenAI**

<table data-full-width="true"><thead><tr><th>Parâmetro</th><th>Descrição</th><th>Tipo</th><th>Suporta DB</th><th>Padrão</th></tr></thead><tbody><tr><td><strong>Embedding Model Name</strong></td><td>Define o nome do modelo de embedding a ser usado, como <code>text-embedding-3-large</code>.</td><td>String</td><td>✅</td><td>N/A</td></tr><tr><td><strong>Embedding Account</strong></td><td>Especifica a conta configurada com credenciais OpenAI. Tipo suportado: <a href="/spaces/cO0A6g1dOsu8BiHYqO67/pages/fS1QLzAg8rGSSJFwtrvy"><strong>Secret Key</strong></a>.</td><td>Select</td><td>❌</td><td>N/A</td></tr><tr><td><strong>Vector Dimension</strong></td><td>Define a dimensão dos vetores de embedding. Deve corresponder exatamente ao tamanho do vetor do modelo. Se a tabela não existir, o auto-create usa esta dimensão; tabelas divergentes causam erros.</td><td>Integer</td><td>❌</td><td>N/A</td></tr><tr><td><strong>Timeout</strong></td><td>Define o tempo máximo (em segundos) para a operação antes de ser abortada. Por exemplo, <code>120</code> equivale a 2 minutos.</td><td>Integer</td><td>❌</td><td><code>30</code></td></tr></tbody></table>

#### **Google Vertex AI**

<table data-full-width="true"><thead><tr><th>Parâmetro</th><th>Descrição</th><th>Tipo</th><th>Suporta DB</th><th>Padrão</th></tr></thead><tbody><tr><td><strong>Embedding Model Name</strong></td><td>Define o nome do modelo de embedding a ser usado, como <code>textembedding-gecko@003</code>.</td><td>String</td><td>✅</td><td>N/A</td></tr><tr><td><strong>Embedding Account</strong></td><td>Especifica a conta configurada com credenciais do Google Cloud. Tipo suportado: <a href="/spaces/cO0A6g1dOsu8BiHYqO67/pages/fS1QLzAg8rGSSJFwtrvy"><strong>Google Key</strong></a>.</td><td>Select</td><td>❌</td><td>N/A</td></tr><tr><td><strong>Vector Dimension</strong></td><td>Define a dimensão dos vetores de embedding. Deve corresponder exatamente ao tamanho do vetor do modelo. Se a tabela não existir, o auto-create usa esta dimensão; tabelas divergentes causam erros.</td><td>Integer</td><td>❌</td><td>N/A</td></tr><tr><td><strong>Project ID</strong></td><td>Define o ID do projeto do Google Cloud associado à conta.</td><td>String</td><td>✅</td><td>N/A</td></tr><tr><td><strong>Location</strong></td><td>Especifica a região onde o modelo Vertex AI está implantado, como <code>us-central1</code>.</td><td>String</td><td>✅</td><td>N/A</td></tr><tr><td><strong>Endpoint</strong></td><td>Define o endpoint do modelo de embedding, como <code>us-central1-aiplatform.googleapis.com:443</code>.</td><td>String</td><td>✅</td><td>N/A</td></tr><tr><td><strong>Publisher</strong></td><td>Especifica o publisher do modelo, geralmente <code>google</code>.</td><td>String</td><td>✅</td><td>N/A</td></tr><tr><td><strong>Max Retries</strong></td><td>Define o número máximo de tentativas em caso de falhas temporárias na API.</td><td>Integer</td><td>❌</td><td>3</td></tr><tr><td><strong>Timeout</strong></td><td>Define o tempo máximo (em segundos) para a operação antes de ser abortada.</td><td>Integer</td><td>❌</td><td><code>30</code></td></tr></tbody></table>

#### **Hugging Face**

<table data-full-width="true"><thead><tr><th>Parâmetro</th><th>Descrição</th><th>Tipo</th><th>Suporta DB</th><th>Padrão</th></tr></thead><tbody><tr><td><strong>Embedding Model Name</strong></td><td>Define o nome do modelo de embedding a ser usado, como <code>sentence-transformers/all-mpnet-base-v2</code>.</td><td>String</td><td>✅</td><td>N/A</td></tr><tr><td><strong>Embedding Account</strong></td><td>Especifica a conta configurada com credenciais Hugging Face. Tipo suportado: <a href="/spaces/cO0A6g1dOsu8BiHYqO67/pages/fS1QLzAg8rGSSJFwtrvy"><strong>Secret Key</strong></a>.</td><td>Select</td><td>❌</td><td>N/A</td></tr><tr><td><strong>Vector Dimension</strong></td><td>Define a dimensão dos vetores de embedding. Deve corresponder exatamente ao tamanho do vetor do modelo. Se a tabela não existir, o auto-create usa esta dimensão; tabelas divergentes causam erros.</td><td>Integer</td><td>❌</td><td>N/A</td></tr><tr><td><strong>Wait for Model</strong></td><td>Determina se o sistema deve esperar o modelo carregar antes de gerar embeddings (<code>true</code>) ou retornar erro se o modelo não estiver pronto (<code>false</code>).</td><td>Boolean</td><td>❌</td><td>True</td></tr></tbody></table>
{% endtab %}

{% tab title="Vector Store" %}
Um vector store é um banco de dados especializado em armazenar e recuperar representações vetoriais de dados (embeddings). Ele permite buscas por similaridade comparando vetores numéricos em vez de textos exatos, proporcionando resultados mais relevantes e semânticos.

<table data-full-width="true"><thead><tr><th>Parâmetro</th><th>Descrição</th><th>Tipo</th><th>Suporta DB</th><th>Padrão</th></tr></thead><tbody><tr><td><strong>Vector Store Provider</strong></td><td>Define o fornecedor do banco de dados usado para armazenar e consultar embeddings. Opções: <strong>PostgreSQL (PGVector)</strong> e <strong>Neo4j</strong>.</td><td>Select</td><td>❌</td><td>N/A</td></tr></tbody></table>

#### **PostgreSQL (PGVector)**

<table data-full-width="true"><thead><tr><th>Parâmetro</th><th>Descrição</th><th>Tipo</th><th>Suporta DB</th><th>Padrão</th></tr></thead><tbody><tr><td><strong>Host</strong></td><td>Define o hostname ou IP do servidor PostgreSQL.</td><td>String</td><td>✅</td><td>N/A</td></tr><tr><td><strong>Port</strong></td><td>Define a porta usada para conectar ao servidor PostgreSQL.</td><td>Number</td><td>❌</td><td><code>5432</code></td></tr><tr><td><strong>Database Name</strong></td><td>Define o nome do banco de dados PostgreSQL que contém a tabela de vetores.</td><td>String</td><td>✅</td><td>N/A</td></tr><tr><td><strong>Vector Store Account</strong></td><td>Especifica a conta configurada com credenciais PostgreSQL.</td><td>Select</td><td>❌</td><td>N/A</td></tr><tr><td><strong>Table Name</strong></td><td>Define o nome da tabela onde os vetores são armazenados.</td><td>String</td><td>✅</td><td>N/A</td></tr><tr><td><strong>Auto-Create Table</strong></td><td>Cria automaticamente a tabela se não existir (<strong>somente PGVector</strong>).</td><td>Boolean</td><td>❌</td><td>True</td></tr><tr><td><strong>Clear Table Before Ingest</strong></td><td>Remove todos os registros existentes antes de ingerir novos dados (<strong>somente PGVector</strong>).</td><td>Boolean</td><td>❌</td><td>False</td></tr><tr><td><strong>Auto-Create Index</strong></td><td>Cria automaticamente o índice vetorial se não existir.</td><td>Boolean</td><td>❌</td><td>True</td></tr></tbody></table>

#### **Neo4j**

<table data-full-width="true"><thead><tr><th>Parâmetro</th><th>Descrição</th><th>Tipo</th><th>Suporta DB</th><th>Padrão</th></tr></thead><tbody><tr><td><strong>Database Name</strong></td><td>Define o nome do banco de dados Neo4j onde o índice vetorial é armazenado.</td><td>String</td><td>✅</td><td>N/A</td></tr><tr><td><strong>Vector Store Account</strong></td><td>Especifica a conta configurada com credenciais Neo4j.</td><td>Select</td><td>❌</td><td>N/A</td></tr><tr><td><strong>Index Name</strong></td><td>Define o nome do índice usado para armazenar e consultar vetores.</td><td>String</td><td>✅</td><td>N/A</td></tr><tr><td><strong>URI</strong></td><td>Define o URI de conexão com a instância Neo4j.</td><td>String</td><td>✅</td><td>N/A</td></tr><tr><td><strong>Node Label</strong></td><td>Define o label atribuído aos nodes que contêm dados de embedding.</td><td>String</td><td>✅</td><td>N/A</td></tr><tr><td><strong>Embedding Property</strong></td><td>Define a propriedade do node usada para armazenar o vetor de embedding.</td><td>String</td><td>✅</td><td>N/A</td></tr><tr><td><strong>Text Property</strong></td><td>Define a propriedade do node usada para armazenar o texto ou documento original.</td><td>String</td><td>✅</td><td>N/A</td></tr></tbody></table>
{% endtab %}

{% tab title="Ingestion Process" %}

<table data-full-width="true"><thead><tr><th>Parâmetro</th><th>Descrição</th><th>Tipo</th><th>Suporta DB</th><th>Padrão</th></tr></thead><tbody><tr><td><strong>Splitting Strategy</strong></td><td>Define como os documentos são divididos em pedaços menores para geração de embeddings.</td><td>String</td><td>❌</td><td>Recursive Character Splitter (Recommended)</td></tr><tr><td><strong>Max Segment Size</strong></td><td>Número máximo de caracteres permitidos por pedaço. Valores maiores geram menos segmentos, porém mais longos.</td><td>Integer</td><td>❌</td><td><code>500</code></td></tr><tr><td><strong>Segment Overlap</strong></td><td>Número de caracteres compartilhados entre pedaços consecutivos para preservar o contexto.</td><td>Integer</td><td>❌</td><td><code>50</code></td></tr></tbody></table>
{% endtab %}

{% tab title="Documentation" %}

<table data-full-width="true"><thead><tr><th>Parâmetro</th><th>Descrição</th><th>Tipo</th><th>Suporta DB</th><th>Padrão</th></tr></thead><tbody><tr><td><strong>Documentation</strong></td><td>Campo opcional para descrever a configuração do conector e quaisquer regras de negócio relevantes.</td><td>String</td><td>❌</td><td>N/A</td></tr></tbody></table>
{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.digibee.com/documentation/connectors-and-triggers/pt-br/connectors/ai-tools/vector-db.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
