Como implementar busca semântica com embeddings no seu site Print

  • 0

Como Implementar Busca Semântica com Embeddings no Seu Site (Guia para Iniciantes)

Olá, amigo(a) desenvolvedor(a) ou dono(a) de site! Seja bem-vindo(a) ao meu pequeno canto de conhecimento. Hoje, vamos aprender algo incrível: como deixar a busca do seu site mais inteligente, como se ele entendesse o que você quer dizer — não apenas as palavras, mas o sentido por trás delas. Isso se chama busca semântica, e com embeddings, você pode trazer essa magia para o seu site, mesmo sem ser especialista.

Imagine: seu cliente digita “quero um tênis para correr” e o site entende que isso inclui tênis de corrida, conforto, amortecimento — mesmo que a palavra "corrida" não esteja no título do produto. Isso é possível com IA. E o melhor? Você pode fazer isso com a GeHost, com ferramentas simples e sem precisar de um time de engenheiros.

Dica Sensei: Embeddings são representações numéricas de palavras ou frases que capturam significado. Um bom embedding sabe que "gato" e "felino" são próximos, mesmo que não sejam iguais.

Passo 1: Prepare seu conteúdo para ser entendido

Antes de qualquer coisa, seu site precisa ter conteúdo organizado. Isso inclui páginas, produtos, artigos ou qualquer texto que o usuário possa procurar.

  • Organize seu conteúdo em arquivos HTML ou em uma estrutura clara no WordPress (se você usa).
  • Evite repetições grandes ou textos muito longos sem estrutura.
  • Use títulos claros: <h1>, <h2>, etc.

Se seu site é em WordPress, o conteúdo já está em formato que facilita o processamento. Se for estático, certifique-se de que cada página tem um título claro e um corpo bem estruturado.

Passo 2: Escolha uma ferramenta de embeddings (sem precisar de código complexo)

Você não precisa construir um modelo de IA do zero. Existem serviços prontos que fazem isso por você. Um dos mais simples e acessíveis é o OpenAI Embeddings (usando a API), mas também existem alternativas open-source como Sentence Transformers.

Como você está na GeHost, vamos usar uma abordagem prática: hospedaremos um pequeno script em seu site que usa uma API de embeddings. Não precisa instalar nada no servidor — apenas subir um arquivo.

Passo 3: Acesse o Gerenciador de Arquivos do cPanel

Para subir o código, vamos usar o Gerenciador de Arquivos do cPanel — uma ferramenta simples e poderosa.

Tela do Gerenciador de Arquivos do cPanel com a árvore de pastas, incluindo public_html

1. Faça login no cPanel com suas credenciais.

2. Na seção Arquivos, clique em Gerenciador de Arquivos.

3. Selecione a pasta public_html (ou a pasta raiz do seu site).

Passo 4: Crie um arquivo para o sistema de busca

Vamos criar um arquivo chamado busca-semantica.php (ou search-semantic.js se preferir JavaScript).

1. No Gerenciador de Arquivos, clique em Novo Arquivo.

2. Digite o nome: busca-semantica.php

3. Clique em Criar.

Abra o arquivo clicando nele (ou clique em "Editar").

Passo 5: Adicione o código básico de busca semântica

Esse código é um exemplo simples que usa uma API de embeddings (como a da OpenAI ou uma alternativa local). Vamos usar um modelo de exemplo com PHP e uma API externa.

Exemplo de código básico (substitua os campos com suas credenciais reais):

<?php
// Exemplo de busca com embeddings (usando API externa)
$api_key = "sua_chave_api_aqui"; // Substitua pela sua chave
$endpoint = "https://api.openai.com/v1/embeddings";

// Texto que o usuário busca
$query = $_GET['q'] ?? '';

if (empty($query)) {
    echo "Digite uma busca.";
    exit;
}

// Envia o texto para a API de embeddings
$data = [
    'input' => $query,
    'model' => 'text-embedding-ada-002'
];

$headers = [
    'Content-Type: application/json',
    'Authorization: Bearer ' . $api_key
];

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $endpoint);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$response = curl_exec($ch);
curl_close($ch);

// Decodifica a resposta
$result = json_decode($response, true);

if (isset($result['data'][0]['embedding'])) {
    $embedding = $result['data'][0]['embedding'];
    // Aqui você faria a comparação com embeddings dos conteúdos do seu site
    echo "

Busca realizada com sucesso! Embedding gerado.

"; echo "

Seu texto foi convertido em um vetor de significado.

"; } else { echo "

Erro ao gerar o embedding. Verifique sua chave API.

"; } ?>

⚠️ Importante: Substitua sua_chave_api_aqui pela sua chave real da API de embeddings. Não compartilhe essa chave.

Passo 6: Conecte a busca ao seu site

Depois de criar o arquivo, você pode incluí-lo em uma página de busca do seu site.

Exemplo de uso em uma página HTML:

<form method="GET" action="busca-semantica.php">
  <input type="text" name="q" placeholder="Digite sua busca...">
  <button type="submit">Buscar</button>
</form>

Quando o usuário digitar algo e clicar em "Buscar", o sistema enviará o texto para o script, que o transformará em um embedding e, em seguida, você pode comparar esse embedding com os embeddings de seus conteúdos.

Passo 7: Armazene os embeddings dos conteúdos (próximo passo)

Para fazer uma busca real, você precisa ter os embeddings de todos os textos do seu site armazenados em um banco de dados ou arquivo.

1. Crie um banco de dados MySQL no cPanel:

Tela de Bancos de Dados MySQL no cPanel com botão Criar Banco

2. Use o phpMyAdmin (dentro do cPanel) para criar uma tabela com colunas:

  • id (int, auto-increment)
  • titulo (texto)
  • conteudo (texto longo)
  • embedding (texto, para armazenar o vetor JSON)

3. Use o script PHP para gerar os embeddings de cada conteúdo e salvar no banco.

Passo 8: Faça a comparação semântica

Com os embeddings salvos, você pode comparar o embedding da busca com os dos conteúdos usando uma métrica como distância cosseno. Quanto mais próximo, mais semelhante.

Exemplo (simplificado):

// Após buscar no banco
foreach ($resultados as $item) {
    $similarity = cosine_similarity($embedding_busca, $item['embedding']);
    if ($similarity > 0.7) {
        echo "Resultado: " . $item['titulo'] . " (similaridade: " . round($similarity, 2) . ")";
    }
}

Pronto! Agora seu site entende o sentido das


Was this answer helpful?

« Back