Como criar seu próprio ChatGPT – Chainlit no Python
Aprenda a como criar seu próprio ChatGPT utilizando o framework Chainlit no Python e tenha seu próprio chat construído com Python!
Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!
Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:
Como criar seu próprio ChatGPT – Chainlit no Python
Na aula de hoje, vou te mostrar como criar seu próprio ChatGPT com Python! Isso é possível através do framework Chainlit no Python.
Ao longo dessa aula, vou te dar uma breve introdução sobre o Chainlit no Python e como utilizá-lo para construir a parte visual e a estrutura do seu programa.
Você poderá fazer suas próprias configurações nesse chat para auxiliar na resolução de problemas e responder às dúvidas mais comuns. Ou então utilizá-lo em conjunto com uma inteligência artificial para ter maiores possibilidades.
E aí, vamos aprender o que é o Chainlit, como fazer a instalação e como criar seu próprio ChatGPT? Então, faça o download do material disponível e vem comigo!
O que é o Chainlit?
O Chainlit é uma ferramenta inspirada no Streamlit, um framework para construir aplicativos de projetos de dados e dashboards. Ao contrário do Streamlit, o objetivo do Chainlit não é exibir dashboards, mas sim criar soluções por meio de chat, semelhante ao ChatGPT.
Com ele, você pode criar toda a interface, estrutura e visual do seu chat para que os usuários possam interagir.
Instalação do Chainlit
O primeiro passo para começarmos este projeto é instalar o framework do Chainlit no Python. Para isso, vá até o terminal do seu editor de códigos e execute o seguinte comando:
pip install chainlit.Após a instalação, para verificar se ela foi feita com sucesso, você pode digitar no terminal do seu editor o seguinte código:
chainlit helloFeito isso, ele criará alguns arquivos novos dentro da pasta do seu programa, como chainlit.md, uma pasta chamada files e outra chamada chainlit.

Além disso, ele irá carregar, no seu navegador, o aplicativo padrão que já está criado no Chainlit, perguntando qual o seu nome (What is your name?).

Isso significa que a instalação foi realizada corretamente. Para interromper a execução desse aplicativo, basta selecionar o terminal e pressionar as teclas Ctrl + C.
Documentação do Chainlit – Como Funciona o Chainlit no Python
Para começar a construção do nosso próprio chat com Python, vamos primeiro acessar a documentação do Chainlit. Você pode ir até o Google e buscar por Chainlit, ou acessar diretamente por aqui.
É sempre interessante, antes de desenvolver e trabalhar com qualquer biblioteca ou framework, ler a documentação dela para compreender as funcionalidades e capacidades que aquela ferramenta oferece.
Além disso, dentro da documentação, temos exemplos de aplicativos básicos para que possamos entender o funcionamento do framework.
Então, vá em In Pure Python dentro da documentação do Chainlit e copie o código de aplicativo disponível para dentro do seu editor de código.

Observe que, por padrão, o Chainlit é importado como cl. Ele basicamente funciona com a criação de funções às quais atribuímos um decorator. Isso pode ser verificado na própria documentação do framework.

Repare que a base dele se dá através das funções e dos decorators..
Os decorators basicamente atribuem novas funcionalidades às funções que estão logo abaixo deles. Nesse caso, o decorator define a funcionalidade desejada para a função no chat.
Podemos executar o código de exemplo que copiamos para testar o Chainlit. Para rodar o seu chat, você precisa digitar no terminal do seu editor de códigos o comando chainlit run nome_do_arquivo. No meu caso, o comando ficará:
chainlit run main.pyFeito isso, o aplicativo será carregado em seu navegador com a página abaixo.

Nesse código de exemplo, a função está com o decorator on_message, ou seja, ela será executada sempre que o usuário enviar uma mensagem. Inicialmente, essa função só irá imprimir a mensagem enviada.

Analisando o Código Inicial
Vamos entender o código inicial que o Chainlit forneceu como exemplo.
import chainlit as cl
@cl.on_message
async def main(message: cl.Message):
# Your custom logic goes here...
# Send a response back to the user
await cl.Message(
content=f"Received: {message.content}",
).send()A função presente nesse código recebe uma mensagem (message) como parâmetro, que é um objeto da classe Message.

Essa função, ao receber uma mensagem, envia como resposta a mensagem “Received:” mais o conteúdo (content) da mensagem enviada pelo usuário, ou seja, a mensagem que ela recebeu como parâmetro.
Chainlit.md – Markdown
Quando executamos o código e carregamos nosso aplicativo, ele iniciou com uma tela contendo um texto de boas-vindas e alguns links úteis. Essas informações vieram a partir do arquivo chainlit.md, um arquivo de Markdown.
O Markdown é basicamente um formato para escrever e formatar textos. O que está contido dentro do arquivo chainlit.md é o que irá aparecer na tela inicial do aplicativo, quando o usuário abrir o seu chat.
Então, vamos editar esse arquivo md dentro do nosso editor de códigos. Vamos apagar todas as informações dele e deixar apenas o seguinte:
# Bem-vindo ao Orientador de Programação
Diga abaixo qual linguagem de programação você está aprendendoEssa será a mensagem que o usuário verá ao acessar o nosso chat.
Criando a Lógica do Aplicativo
Feito isso, vamos voltar para o nosso arquivo main.py para definir o que queremos que aconteça quando o usuário enviar uma mensagem.
Nessa aula veremos um exemplo simplificado, porém, é dentro dessa função que é acionada sempre que o usuário envia uma mensagem que poderíamos inserir uma inteligência artificial que irá receber, tratar e responder essa mensagem.
Apenas para exemplificar a aplicação do Chainlit, nossa função verificará se dentro do texto da mensagem existe o termo “python“. Se for verdade, ela retornará uma mensagem como resposta, caso contrário, retornará outra mensagem.
import chainlit as cl
@cl.on_message
async def main(message: cl.Message):
# Your custom logic goes here...
if "python" in message.content.lower():
resposta = "Parabens, tá aprendendo uma boa linguagem"
else:
resposta = "Já pensou em aprender Python?"
# Send a response back to the user
await cl.Message(content=resposta).send()Aqui foi desenvolvida uma lógica bem simples, mas no lugar dessa estrutura condicional if-else, você poderia implementar uma conexão com a inteligência artificial, ou definir uma função mais complexa, com mais possibilidades e opções, e assim por diante.
É dentro dessa função que você vai criar a lógica baseada no conteúdo das mensagens enviadas pelos usuários e gerar a resposta final com base nessa lógica definida.
Executando esse código, podemos testar nosso aplicativo.

Perceba que ele funcionou e respondeu de acordo com o que definimos para ele.
O Chainlit é um framework muito interessante porque ele oferece todo o site pré-configurado, com formatação e visual prontos, com histórico da conversa, possibilidades de anexar arquivos, limpar histórico, iniciar uma nova conversa e muito mais.
O objetivo dessa aula foi trazer uma introdução sobre essa ferramenta para que você possa conhecer e a partir disso desenvolver seus próprios chats com Python e até mesmo saber como criar seu próprio ChatGPT.
Async e Await – Chainlit
Para finalizar esta aula, vamos falar um pouco sobre os processos assíncronos e como funcionam dentro do Chainlit.
Esses processos assíncronos (async e await) permitem que o chatbot responda instantaneamente às mensagens dos usuários sem recarregar a página.
Um processo assíncrono é independente da execução principal do site, permitindo que ele opere sem travar a interação do usuário.
O Chainlit garante que cada função seja executada de forma assíncrona, possibilitando a continuidade das operações enquanto uma função está em andamento.
Ou seja, enquanto o Chainlit espera a mensagem do usuário para enviar uma resposta, o restante do código continua em execução normalmente.
Conclusão – Como criar seu próprio ChatGPT – Chainlit no Python
Na aula de hoje, apresentei o framework do Chainlit no Python! Com ele, é possível criar um chatbot e até mesmo ter seu próprio ChatGPT com uma interface profissional já pronta para o uso.
Com o Chainlit, você pode desenvolver seu próprio chat, configurando os padrões de resposta ou até mesmo implementar inteligência artificial para ampliar as possibilidades e interações com sua aplicação.
Hashtag Treinamentos
Para acessar outras publicações de Python, clique aqui!


