Projeto: Plataforma de conteúdo sobre negócios estilo portal com Chatbot e recomendação Just in time
Projeto criado para o desafio 2ª Imersão IA - Alura + Google
A plataforma tem o propósito de oferecer séries de conteúdo no formato streaming no nicho de negócios proporcionando uma experiência amigável ao usuário. Ainda oferece um Chatbot inteligente especialista em consultoria de negócios para empresas brasileiras com capacidade para orientar, informar, tirar dúvidas sobre os conteúdos da plataforma e o que mais o usuário precisar.
- Google Gemini, Google IA Studio - Poderosa ferramenta de LLM: Site do Gemini
- Flask - Framework web leve e rápido em Python: Site do framework
- Trio da alegria da Web: HTML, CSS, Javascript. Artigo da Alura
- Json-server: Uma ferramenta bem bacana para simular/mockar uma API Repositório do Json-server
- Testes com a API do Gemini para verificar o comportamento na aplicação e contexto do projeto nos models pro e 1.5-pro-latest
- Preparação da API com a utilização do dotenv (uma forma de gerenciar API_KEYS com mais segurança) Dotenv passo a passo
- Primeiro endpoint (/businesschat)
- É o endpoint padrão do Chatbot que recebe os dados das requisições, onde foi montado o prompt e retorna a resposta em JSON
- O modelo escolhido foi o 1.5-pro-latest por apresentar um excelente resultado nos testes ao tratar adequadamente apenas sobre o assunto definido nas regras do prompt
- Possui tratamento de erros para formato JSON errado, erros de requests e outros genéricos
- Endpoint /history apenas para testar o histórico do chat
- Endpoint /recomendacoes
- Faz uma requisição a uma API externa(que seria do banco de dados) para que o Gemini tenha o contexto da plataforma ao recomendar itens
- Alimentado pelos dados do próprio Chat enquanto o usuário interage (para isso recebe o histórico com chat.history)
- Ao realizar testes com o modelo 1.5-pro-latest as respostas variaram bastante, portanto foi usada a 1.5-pro com temperatura=0 com a finalidade de retornar apenas o JSON formatado adequadamente para ser retornado como resposta
- O prompt foi criado com auxílio da própria ferramenta e apresentou bons resultados. Ele basicamente recebe a base de dados da plataforma e o histórico do chat e tem que recomendar os 4 itens com maior probabilidade de interesse do usuário. Dessa forma a plataforma se torna muito mais dinâmica, embora requeira aprimoramentos.
- Desenvolvimento e testes da Interface Web
- Criação de uma base de dados com auxílio do Gemini para ser usada nos exemplos
Abra o terminal e acesse a pasta do projeto
- Instale o virtualenv
pip install virtualenv
- Crie o ambiente virtual
python -m venv .venv
- Ative o ambiente virtual
. .venv /bin/activate
- Instale as bibliotecas necessárias
pip install -r requirements.txt
- Execute o arquivo main.py
python main.py
- Teste o endpoint businesschat.
Acesse o endereço http://127.0.0.1:5000/businesschat em alguma ferramenta para teste de API como:
No caso estou usando Insomnia para fazer uma requisição do tipo GET.
Observe que o corpo do JSON possui a solicitação que será incluída dentro do prompt.
- Após algumas interações com o Chat teste o endpoint de recomendações com o endereço: http://127.0.0.1:5000/recomendacoes
Por uma questão de boa prática e organização, todo o front end é separado e está em outro repositório.
São apenas arquivos HTML, CSS e JavaScript sendo o JS fundamental para listagem dos dados e as requisições à API
Para testar acesse o repositório: Front end do projeto
1 Solicitação de conteúdos de assuntos não relacionados com o nicho como física quântica, por exemplo 2 Erros ortográficos diversos e propositais 3 Tentativa de sobrecarga do Chat com múltiplas mensagens 4 Inserir um texto Loren ipsum sem sentido com múltiplas cópias ao mesmo tempo
1 Não foram tratados todos os erros possíveis 2 Na recomendação requisições são realizadas durante as interações o que não é performático (deverá ser melhorado) 3 O Chat possui contexto limitado ao exemplo incluído no prompt
1 Analisador de negócios com IA 2 Ferramentas para negócios com IA 3 Trilha personalizada por IA para o usuário