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

About

Aplicativo de chatbot para os restaurantes do Colégio Poliedro.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •