Crie um assistente de pesquisa com IA completo que possa fazer scraping de sites e buscar na web para responder perguntas. O assistente decide automaticamente quando usar ferramentas de scraping ou de busca para reunir informações e, em seguida, fornece respostas abrangentes com base nos dados coletados.Documentation Index
Fetch the complete documentation index at: https://firecrawl-mog-search-exclude-include-domains.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.

O que você vai construir
Pré-requisitos
- Node.js 18 ou posterior instalado
- Uma chave de API da OpenAI em platform.openai.com
- Uma chave de API do Firecrawl em firecrawl.dev
- Conhecimentos básicos de React e Next.js
Criar um novo projeto do Next.js
Comece criando um novo projeto Next.js e navegue até o diretório do projeto:Quando solicitado, selecione as seguintes opções:
- TypeScript: Sim
- ESLint: Sim
- Tailwind CSS: Sim
- App Router: Sim
- Usar diretório
src/: Não - Alias de importação: Sim (@/*)
Instale as dependências
Instalar pacotes do AI SDK
O AI SDK é um kit de ferramentas em TypeScript que fornece uma API unificada para trabalhar com diferentes provedores de LLM:ai: SDK principal com streaming, chamamento de ferramentas e tratamento de respostas@ai-sdk/react: Hooks do React comouseChatpara criar interfaces de chatzod: Validação de esquemas para entradas de ferramentas
Instalar o AI Elements
O AI Elements fornece componentes de UI predefinidos para aplicações de IA. Execute o seguinte comando para gerar todos os componentes necessários:Instalar o provedor OpenAI
Instale o provedor OpenAI para se conectar aos modelos da OpenAI:Crie a interface de chat do front-end
Crie a página principal em 
app/page.tsx e copie o código da aba Code abaixo. Esta será a interface de chat onde os usuários interagem com o assistente de IA.- Prévia
- Código

Entendendo o Frontend
O frontend utiliza componentes AI Elements para fornecer uma interface de chat completa:Principais Recursos:- Exibição da conversa: O componente
Conversationlida automaticamente com a rolagem e a exibição das mensagens - Renderização de mensagens: Cada parte da mensagem é renderizada conforme seu tipo (texto, raciocínio, chamadas de ferramentas)
- Visualização de ferramentas: As chamadas de ferramenta são exibidas em seções recolhíveis que mostram entradas e saídas
- Controles interativos: os usuários podem ativar/desativar a pesquisa na web, escolher modelos e anexar arquivos
- Ações de mensagem: opções de copiar e tentar novamente para mensagens do assistente
Adicionar suporte para renderização de Markdown
Para garantir que o Markdown gerado pelo LLM seja renderizado corretamente, adicione a seguinte importação ao arquivo Isso importa os estilos necessários para renderizar conteúdo em Markdown nas respostas de mensagens.
app/globals.css:Crie a rota básica da API
Crie o endpoint da API de chat em Esta rota básica:
app/api/chat/route.ts. Essa rota vai lidar com as mensagens recebidas e transmitir as respostas da IA.- Recebe mensagens do frontend
- Usa o modelo da OpenAI selecionado pelo usuário
- Transmite as respostas de volta para o cliente
- Ainda não inclui ferramentas — vamos adicioná-las em seguida
Configurar variáveis de ambiente
Crie um arquivo Adicione sua chave de API da OpenAI:A variável
.env.local na raiz do projeto:OPENAI_API_KEY é necessária para o funcionamento do modelo de IA.Teste o chat básico
Agora você pode testar o chatbot do SDK de IA sem integração com o Firecrawl. Inicie o servidor de desenvolvimento:Abra localhost:3000 no seu navegador e teste a funcionalidade básica de chat. O assistente deve responder às mensagens, mas ainda não terá recursos de web scraping ou de pesquisa.

Adicionar ferramentas do Firecrawl
Agora vamos aprimorar o assistente com recursos de extração de dados da web e busca usando o Firecrawl.Adicione o seguinte código para definir as ferramentas de raspagem e busca na web:
Instalar o SDK do Firecrawl
O Firecrawl converte sites em formatos prontos para LLM, com recursos de extração e busca:Crie o arquivo de ferramentas
Crie uma pastalib e adicione um arquivo tools.ts dentro dela:lib/tools.ts
Entendendo as Ferramentas
Ferramenta de Scrape de Site:- Aceita uma URL como entrada (validada por um esquema Zod)
- Usa o método
scrapedo Firecrawl para obter a página em markdown - Extrai apenas o conteúdo principal para reduzir o uso de tokens
- Retorna o conteúdo extraído para a IA analisar
- Aceita uma consulta com filtros opcionais
- Usa o método
searchdo Firecrawl para encontrar páginas relevantes - Suporta filtros avançados, como localização, intervalo de tempo e categorias de conteúdo
- Retorna resultados estruturados com títulos, URLs e descrições
Atualize a rota da API com as ferramentas do Firecrawl
Agora atualize o arquivo
As principais mudanças em relação à rota básica:
app/api/chat/route.ts para incluir as ferramentas do Firecrawl que acabamos de criar.Ver código completo de app/api/chat/route.ts
Ver código completo de app/api/chat/route.ts
- Importe
stepCountIsdo AI SDK - Importe as ferramentas do Firecrawl de
@/lib/tools - Adicione o objeto
toolscom as ferramentasscrapeWebsiteesearchWeb - Adicione
stopWhen: stepCountIs(5)para limitar as etapas de execução - Defina
toolChoicecomo “auto” quando a pesquisa na web estiver ativada e “none” caso contrário
streamText: ai-sdk.dev/docs/reference/ai-sdk-core/stream-text.Adicione sua chave de API do Firecrawl
Atualize seu arquivo Obtenha sua chave de API do Firecrawl em firecrawl.dev.
.env.local para incluir sua chave de API da Firecrawl:Teste o aplicativo completo
Reinicie o servidor de desenvolvimento:
Abra localhost:3000 e teste o assistente aprimorado:

- Ative o botão “Search” para habilitar a pesquisa na web
- Pergunte: “Quais são os recursos mais recentes do firecrawl.dev?”
- Observe enquanto a IA chama a ferramenta
searchWebouscrapeWebsite - Veja a execução da ferramenta na UI com entradas e saídas
- Leia a análise da IA com base nos dados extraídos
Como funciona
Fluxo de mensagens
- Usuário envia uma mensagem: O usuário digita uma pergunta e clica em Enviar
- Frontend envia a solicitação:
useChatenvia a mensagem para/api/chatcom o modelo selecionado e a configuração de busca na web - Backend processa a mensagem: A rota da API recebe a mensagem e chama
streamText - IA decide sobre as ferramentas: O modelo analisa a pergunta e decide se deve usar
scrapeWebsiteousearchWeb(apenas se a busca na web estiver ativada) - Ferramentas executam: Se as ferramentas forem chamadas, o Firecrawl faz o scraping ou realiza a busca na web
- IA gera a resposta: O modelo analisa os resultados das ferramentas e gera uma resposta em linguagem natural
- Frontend exibe os resultados: A UI mostra as chamadas de ferramentas e a resposta final em tempo real
Processo de Chamada de Ferramentas
- O modelo recebe a mensagem do usuário e as descrições das ferramentas disponíveis
- Se o modelo determinar que é necessário usar uma ferramenta, ele gera uma chamada de ferramenta com parâmetros
- O SDK executa a função da ferramenta com esses parâmetros
- O resultado da ferramenta é enviado de volta ao modelo
- O modelo usa o resultado para gerar sua resposta final
streamText, com os resultados sendo transmitidos para o frontend em tempo real.
Principais recursos
Seleção de modelo
- GPT-5 Mini (Thinking): Modelo recente da OpenAI com capacidades avançadas de raciocínio
- GPT-4o Mini: Modelo rápido e econômico
Alternância de busca na web
- Ativado: a IA pode chamar as ferramentas
scrapeWebsiteesearchWebconforme necessário - Desativado: a IA responde apenas com o conhecimento com o qual foi treinada
Ideias de customização
Adicionar mais ferramentas
- Consultas ao banco de dados para dados internos da empresa
- Integração ao CRM para buscar informações de clientes
- Envio de e-mails
- Geração de documentos
tools.
Alterar o modelo de IA
Personalizar a interface
- Modificar os estilos dos componentes nos arquivos de componente
- Adicionar novas variantes a componentes existentes
- Criar componentes personalizados que sigam o sistema de design
Melhores práticas
-
Use as ferramentas certas: Escolha
searchWebpara primeiro encontrar páginas relevantes,scrapeWebsitepara páginas individuais ou deixe a IA decidir - Monitore o uso da API: Acompanhe o uso das APIs da Firecrawl e da OpenAI para evitar custos inesperados
- Trate erros de forma adequada: As ferramentas incluem tratamento de erros, mas considere adicionar mensagens voltadas ao usuário
- Otimize o desempenho: Use streaming para fornecer feedback imediato e considere colocar em cache conteúdo acessado com frequência
-
Defina limites razoáveis:
stopWhen: stepCountIs(5)evita chamadas excessivas de ferramentas e custos fora de controle
Documentação do AI SDK
Explore o AI SDK para criar aplicativos com IA com streaming, chamadas de
ferramentas e suporte a múltiplos provedores.
Componentes do AI Elements
Componentes de UI pré‑construídos para aplicativos de IA baseados em shadcn/ui.

