Skip to content

PI-ChatBot/chatbot

Repository files navigation

Projeto Integrador Interdisciplinar:
Desenvolvimento de Chatbot para os Restaurantes do Colégio Poliedro

Este projeto universitário foi desenvolvido como parte da disciplina Projeto Integrador Interdisciplinar - Ciência da Computação (CIC204) dos cursos de Ciência da Computação e Inteligência Artificial e Ciência de Dados do Instituto Mauá de Tecnologia.

O projeto visa desenvolver um sistema integrado de gestão de pedidos para o restaurante do Colégio Poliedro, com a implementação de um chatbot para otimizar a experiência dos clientes. O objetivo principal é facilitar o processo de pedidos no restaurante e oferecer uma forma eficiente, moderna e humanizada para os clientes interagirem com o sistema.

🤝 Parceria

🧑🏻‍💻 Integrantes do Projeto

Aluno RA
Alexandre Raminelli 24.01625-0
Henrique Yuri Cawamura Seppelfelt 24.00545-2
Mateus Martins Gonçalves Dóro 24.00553-3
Pedro Correia 24.00845-0

⚙️ Configurando variáveis de ambiente

  1. Navegue até a pasta api/:
cd ./api
  1. Copie o arquivo .env.example para .env:
cp .env.example .env
  1. Configure as variáveis de ambiente no api/.env:

3.1. Conexão com o banco de dados:

  • DATABASE_URL: URL de conexão com o banco de dados PostgreSQL. O formato é postgresql://<usuário>:<senha>@<host>:<porta>/<nome_do_banco>.

  • SECRET_KEY: Chave secreta para criptografia de dados sensíveis, como senhas.

3.2. Conexão com o LLM:

  • CHATBOT_API_KEY: Chave de API para autenticação com o provedor do chatbot.
  • CHATBOT_URL: URL base do provedor do chatbot.
  • MODEL_NAME: Nome do modelo de linguagem utilizado pelo chatbot.

Recomendação: OpenRouter

Se estiver testando esse projeto, recomendados utilizar o OpenRouter como provedor de modelo de LLM. Para isso, crie uma conta gratuita em OpenRouter e obtenha sua chave de API.

Também recomendados utilizar o modelo gratuito "Meta: Llama 3.1 8B Instruct".

Depois, configure as variáveis de ambiente conforme abaixo:

CHATBOT_API_KEY=your_openrouter_api_key

CHATBOT_URL=https://api.openrouter.ai/v1

MODEL_NAME=meta-llama/llama-3.1-8b-instruct:free # ou outro modelo de sua escolha

🗃️ Criar banco de dados vetorial no Pinecone

  1. Insira no api/.env as informações para conexão com seu banco de dados vetorial (instruções acima)

  2. Abra a pasta api/ e execute o seguinte comando para criar o banco de dados vetorial:

cd api &&
python -m embedding.build_vector_database

⚡ Executando o servidor FastAPI

Pré-requisitos

  • Python 3.8 ou superior
  • pip (gerenciador de pacotes do Python)

Passos para execução

  1. Navegue até a pasta api/:
cd ./api/
  1. Instale as dependências do projeto:
pip install -r requirements.txt
  1. Configure as variáveis de ambiente (instruções acima)

  2. Inicie o servidor:

uvicorn main:app --reload
  1. Acesse o servidor:

📡 Endpoints disponíveis

  • GET / - Endpoint de teste
  • POST /cadastro - Cadastro de usuários
  • POST /login - Autenticação de usuários
  • POST /chatbot - Interação com o chatbot
  • GET /cozinha/pedidos - Obter pedidos (requer autenticação)

🧪 Testando a API

Executar o Script de Testes

  1. Siga as instruções acima para iniciar o servidor FastAPI.

  2. Abra uma nova aba do terminal e navegue até a pasta api/:

cd ./api/
  1. Execute o script de testes:
python test_api.py

Esse script irá:

  1. ✅ Verificar se a API está rodando
  2. 🧪 Testar todos os endpoints
  3. 💬 Oferecer um modo de chat interativo


📸 Capturas de Tela

Aplicativo Cliente

Tela de Boas-Vindas

Tela de Boas-Vindas

Tela de Login

Tela de Login

Tela de Cadastro

Tela de Cadastro