Publicado em

Projeto: Corvo AI Chatbot Builder

Autores

Corvo Project


Introdução

Corvo é uma plataforma para criação de Chatbot incorporáveis capazes de aprender sobre seu negócio através de textos e links de documentação.

Motivação

Venho estudando sobre técnicas de RAG (Retrieval-Augmented Generation) há algum tempo e infelizmente acabei caindo no "tutorial hell". Não me entenda mal, conheci novos canais muito interessantes no Youtube sobre AI além de alguns projetos open-source relacionados ao assunto, mas depois de algum tempo apenas consumindo conteúdo, senti que não estava conseguindo cimentar o conhecimento e que precisava colocá-lo em prática. Este foi o início do projeto Corvo.

Como funciona?

Corvo Project

O processo de criação do chatbot segue os seguintes passos:

  1. O usuário faz login no painel admin
  2. Acessa a aba "Agents"
  3. Clica em "Create agent"
  4. Insere o nome do chatbot, texto ou website que deseja que o chatbot aprenda
  5. Clica em "Save Agent"
  6. O endpoint /api/agent/mutate é chamado, criando um novo agent no banco de dados e gerando os embeddings do conhecimento do chatbot baseados no texto e website informados
  7. O usuário pode agora copiar o script do chatbot e incorporá-lo ao seu site

O Projeto

O projeto Corvo está organizado em dois repositórios principais:

  1. Corvo Chatbot - Chatbot incorporável
  2. Corvo Admin - Painel de controle para criação e gerenciamento de chatbots

Corvo Chatbot

O projeto Corvo Chatbot é um chatbot incorporável que pode ser facilmente adicionado a qualquer site. Ele é construído com Vite e Rollup, facilitando a criação de um script customizado para ser incorporado a qualquer site.

Corvo Admin

O projeto Corvo Admin é um painel de controle para criação e gerenciamento de chatbots. Ele é construído com Next.js, Shadcn, Tailwind e Lucide.

Tecnologias

O projeto se baseia nessas três principais tecnologias:

  1. Langchain
  2. Google Gemini
  3. Supabase

Langchain

O Langchain é um framework de código aberto para desenvolvimento de aplicações de AI. Ele agiliza o processo de criação de aplicações de RAG e possui uma documentação bem extensa sobre o assunto.

Google Gemini

O Google Gemini é um modelo de linguagem proprietário desenvolvido pelo Google. Ele pode ser usado para gerar e traduzir textos, responder perguntas, etc. No momento da escrita deste artigo, o projeto utiliza o model text-embedding-004 para gerar os embeddings do conhecimento do chatbot e o modelo gemini-1.5-flash para gerar as respostas do chatbot.

Supabase

O Supabase é um banco de dados em nuvem que pode ser usado para armazenar dados do chatbot. Neste projeto, ele é usado tanto para armazenar os dados de autenticação do usuário quanto para armazenar o conhecimento indexado de RAG (embeddings) do chatbot.

Por que esse nome? 🤔

Corvos estão entre as aves mais inteligentes. Eles são capazes de aprender a imitar a voz humana (assim como os papagaios), contar em voz alta e alguns até mesmo usam ferramentas para obter alimento.

Ou seja, eles:

  • São capazes de gerar sons semelhantes aquilo que ouviram de outros animais
  • São capazes de aprender por meio de tentativa e erro
  • Usam ferramentas externas para atingir seus objetivos

Estes pontos podem ser comparados com as seguintes características/técnicas envolvendo AI:

Curiosidade: Inicialmente pensei em chamar o projeto de Toth, fazendo referência ao deus egípcio do conhecimento (chamado Tote em Português). Porém descobri que já existe um projeto de AI de nome muito semelhante: Thoth AI

Menções

Canais do Youtube

Alguns canais que auxiliaram nestes estudos:

  1. @ColeMedin
  2. @AIJasonZ

Projetos open-source

Projetos de código aberto que serviram como base ou inspiração para o Corvo:

  1. Makerkit - Next.js Supabase SaaS Starter Kit
  2. Makerkit - React Embeddable Widget Starter
  3. Newoaks AI React Chat Bubble