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.
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 |
- Navegue até a pasta
api/
:
cd ./api
- Copie o arquivo
.env.example
para.env
:
cp .env.example .env
- 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.
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
-
Insira no
api/.env
as informações para conexão com seu banco de dados vetorial (instruções acima) -
Abra a pasta
api/
e execute o seguinte comando para criar o banco de dados vetorial:
cd api &&
python -m embedding.build_vector_database
- Python 3.8 ou superior
- pip (gerenciador de pacotes do Python)
- Navegue até a pasta
api/
:
cd ./api/
- Instale as dependências do projeto:
pip install -r requirements.txt
-
Configure as variáveis de ambiente (instruções acima)
-
Inicie o servidor:
uvicorn main:app --reload
- Acesse o servidor:
- API: http://localhost:8000
- Documentação interativa (Swagger): http://localhost:8000/docs
- Documentação alternativa: http://localhost:8000/redoc
GET /
- Endpoint de testePOST /cadastro
- Cadastro de usuáriosPOST /login
- Autenticação de usuáriosPOST /chatbot
- Interação com o chatbotGET /cozinha/pedidos
- Obter pedidos (requer autenticação)
-
Siga as instruções acima para iniciar o servidor FastAPI.
-
Abra uma nova aba do terminal e navegue até a pasta
api/
:
cd ./api/
- Execute o script de testes:
python test_api.py
Esse script irá:
- ✅ Verificar se a API está rodando
- 🧪 Testar todos os endpoints
- 💬 Oferecer um modo de chat interativo
This is an Expo project created with create-expo-app
.
-
Install dependencies
npm install
-
Start the app
npx expo start
In the output, you'll find options to open the app in a
- development build
- Android emulator
- iOS simulator
- Expo Go, a limited sandbox for trying out app development with Expo
You can start developing by editing the files inside the app directory. This project uses file-based routing.
When you're ready, run:
npm run reset-project
This command will move the starter code to the app-example directory and create a blank app directory where you can start developing.
To learn more about developing your project with Expo, look at the following resources:
- Expo documentation: Learn fundamentals, or go into advanced topics with our guides.
- Learn Expo tutorial: Follow a step-by-step tutorial where you'll create a project that runs on Android, iOS, and the web.
Join our community of developers creating universal apps.
- Expo on GitHub: View our open source platform and contribute.
- Discord community: Chat with Expo users and ask questions.