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:
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 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! 🌈🌟