AI - Configurando Crawler Offline para transformar sites em dados prontos para modelos de AI

Olá meus Unicórnios! 🦄✨

Imagine que você tenha um site com vários artigos falando sobre seu site, totalizando 10 mi páginas.

E você quer criar um bot que o seu cliente possa fazer perguntas sobre estas páginas.

Existem várias abordagens aqui, mas de maneira geral, você precisa tratar os textos destas páginas antes, deixando elas mais amigáveis para os modelos de AI.

Para isto, existe uma ferramenta chamada Firecrawl:

https://www.firecrawl.dev/

Onde inserimos um site e ele transforma as páginas deste site em textos planos no padrão Markdom:

Esta ferramenta tem uma API paga:

Porem, também tem uma versão Self-hosting que podemos instalar em nosso servidor, sem ter custo algum!

Configurando Dependências

Antes de começarmos, é necessário que você tenha o Redis configurado em seu servidor.

Se ainda não tem, consulte o tutorial abaixo:

Instalando Redis no Windows
Descubra como instalar o Redis no Windows e aproveite seu poder como banco de dados NoSQL de alta velocidade e disponibilidade.

Instalando o Firecrawl

Agora vamos começar a instalação do Firecrawl

Crie uma pasta em seu computador, e acesse ela em seu CMD.

Neste caso, iremos utilizar a pasta "C:\AI":

Digite o comando abaixo para clonar o repositório do firecrawl:

git clone https://github.com/mendableai/firecrawl

Quando a cópia for concluída será exibido ".done":

Digite o comando abaixo para acessar a pasta API:

cd firecrawl/apps/api/

Digite o comando abaixo para renomear o arquivo ".env.example" para ".env":

rename .env.example .env

Abra o arquivo ".env" e altere a linha "USE_DB_AUTHENTICATION" para "false" para não pedir Token:

Digite o comando abaixo para instalar as dependências:

pnpm install

Digite o comando abaixo para iniciar as rotinas que irão processar os trabalhos:

pnpm run workers

Esta janela do CMD precisa ser mantida aberta, então agora iremos abrir uma nova janela CMD e abrir a pasta "firecrawl/apps/api/".

Considerando que instalamos dentro de "C:\AI" o caminho completo fica:

cd C:\AI\firecrawl\apps\api

Nesta nova janela, digite o comando abaixo, para iniciar o Firecrawl:

pnpm run start

No final, você deve ter duas janelas cmd abertas:

Testando Instalação

O Firecrawl cria uma API na porta "3002", então, para teste, faça uma GET para:

http://localhost:3002/test

Caso a instalação tenha tido sucesso, será exibido:

Hello, world!

Executando Crawler de um Site

Para teste, iremos fazer um Crawler deste site, limitando a 10 páginas sem seguir os links.

Iremos fazer um POST para:

http://localhost:3002/v0/crawl

Enviando um Json Semelhante ao Json abaixo:

{
  "url": "https://www.palomamacetko.com.br/",
  "crawlerOptions": {
    "maxDepth": 0,
    "limit": 10
  }
}

O retorno será o ID do Trabalho:

{
  "jobId": "ab092267-067d-42f3-afbe-166d8b3ab49c"
}

Agora precisamos ficar consultando este Trabalho, para ver quando é finalizado.

Para isto, faça uma GET para:

http://localhost:3002/v0/crawl/status/[JobID]

Substituindo o "[JobID]" pelo ID gerado ao Criar o Crawler.

O retorno será o status do Trabalho:

{
  "status": "waiting",
  "data": null
}

Quando o trabalho for completado, será retornado o status "completed" e no elemento "data" será retornado todas as páginas processadas:

{
  "status": "completed",
  "current": 1,
  "total": 1,
  "data": [
    {
      "content": "XXXXXXXXXXX",
      "markdown": "XXXXXXXXXXX",
      "linksOnPage": [
        "https://www.palomamacetko.com.br"
      ]
    }
  ],
  "partial_data": []
}

Por hoje é só, meus unicórnios! 🦄✨

Que a magia do arco-íris continue brilhando em suas vidas! Até mais! 🌈🌟