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

Welcome to your Expo app 👋

This is an Expo project created with create-expo-app.

Get started

  1. Install dependencies

    npm install
  2. Start the app

     npx expo start

In the output, you'll find options to open the app in a

You can start developing by editing the files inside the app directory. This project uses file-based routing.

Get a fresh project

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.

Learn more

To learn more about developing your project with Expo, look at the following resources:

Join the community

Join our community of developers creating universal apps.

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

  •  
  •  
  •