Skip to content

joselinosantos/businessflix-backend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

Businessflix

Tecnologias

  1. Google Gemini, Google IA Studio - Poderosa ferramenta de LLM: Site do Gemini
  2. Flask - Framework web leve e rápido em Python: Site do framework
  3. Trio da alegria da Web: HTML, CSS, Javascript. Artigo da Alura
  4. Json-server: Uma ferramenta bem bacana para simular/mockar uma API Repositório do Json-server

Diagrama

Diagrama

Desenvolvimento

  1. 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
  2. Preparação da API com a utilização do dotenv (uma forma de gerenciar API_KEYS com mais segurança) Dotenv passo a passo
  3. 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
  4. Endpoint /history apenas para testar o histórico do chat
  5. 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.
  6. Desenvolvimento e testes da Interface Web
  7. Criação de uma base de dados com auxílio do Gemini para ser usada nos exemplos

Execução do backend

Abra o terminal e acesse a pasta do projeto

  1. Instale o virtualenv
    pip install virtualenv
  1. Crie o ambiente virtual
    python -m venv .venv
  1. Ative o ambiente virtual
    . .venv /bin/activate
  1. Instale as bibliotecas necessárias
    pip install -r requirements.txt
  1. Execute o arquivo main.py
    python main.py
  1. 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.

Teste endpoint businesschat

Observe que o corpo do JSON possui a solicitação que será incluída dentro do prompt.

  1. 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 Teste endpoint recomendacoes

Front end

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

Testes realizados

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

Limitações

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

Features Futuras

1 Analisador de negócios com IA 2 Ferramentas para negócios com IA 3 Trilha personalizada por IA para o usuário

About

Plataforma de estudos sobre negócios com Chatbot e recomendação Just in time. Projeto criado para o desafio Imersão Alura + Google

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages