- Visão Geral
- Características
- Tecnologias Utilizadas
- Pré-requisitos
- Instalação
- Configuração
- Uso
- Estrutura do Projeto
- Testes
- Contribuição
- Licença
- Contato
O ChatBot Uniube Aberta - Backend é uma aplicação desenvolvida em Spring Boot que fornece uma API REST para interagir com um chatbot alimentado pelo modelo GPT-4 da OpenAI. A aplicação gerencia as solicitações do usuário, processa as mensagens através do serviço de chatbot e retorna respostas formatadas.
- API RESTful: Endpoints para enviar mensagens e receber respostas do chatbot.
- CORS Configurado: Permite comunicação segura entre o frontend Angular e o backend.
- Integração com OpenAI: Utiliza a API do OpenAI para gerar respostas inteligentes.
- Segurança: Gestão de chaves API e configurações de segurança.
- Testes Automatizados: Testes de integração para garantir a estabilidade da aplicação.
- Configuração Flexível: Utiliza application.properties para configurações personalizáveis.
- Spring Boot - Framework principal.
- Java 21 - Linguagem de programação.
- Maven - Gerenciador de dependências.
- Lombok - Redução de boilerplate no código.
- Spring AI - Integração com serviços de AI.
- H2 Database - Banco de dados em memória para desenvolvimento.
- JUnit 5 - Framework de testes.
- ModelMapper - Mapeamento de objetos.
Antes de começar, certifique-se de ter instalado em sua máquina as seguintes ferramentas:
- Java JDK 21
- Maven
- Git
git clone https://github.com/seu-usuario/chatbot-backend.git
cd chatbot-backend
mvn clean install
Abra o arquivo application.properties
localizado em src/main/resources/
e configure as seguintes propriedades:
spring.application.name=ChatBot - Uniube Aberta
spring.ai.openai.api-key=${OPENAI_API_KEY}
spring.ai.openai.chat.options.model=gpt-4
logging.level.org.springframework.ai.chat.client.advisor=DEBUG
- spring.ai.openai.api-key: Chave API da OpenAI. Recomenda-se utilizar variáveis de ambiente para segurança.
- spring.ai.openai.chat.options.model: Modelo do OpenAI a ser utilizado (ex: gpt-4).
Defina a variável de ambiente OPENAI_API_KEY
com a sua chave API da OpenAI. Em sistemas Unix-based, você pode fazer isso temporariamente no terminal:
export OPENAI_API_KEY=suachaveapi
Para definir permanentemente, adicione a linha acima no seu arquivo de configuração de shell (como .bashrc
ou .zshrc
).
Execute o comando abaixo para iniciar a aplicação Spring Boot:
mvn spring-boot:run
A aplicação será iniciada em http://localhost:8080/
.
-
Descrição: Envia uma mensagem ao chatbot e recebe a resposta.
-
Parâmetros de Query:
message
(String) - Mensagem do usuário.prompt
(String, opcional) - Prompt do sistema para o chatbot.
-
Exemplo de Requisição:
curl "http://localhost:8080/chat?message=Olá&prompt=Você+é+um+assistente+útil"
- Resposta:
{
"content": "Olá! Como posso ajudar você hoje?"
}
A seguir, uma visão geral da estrutura dos diretórios e arquivos mais importantes:
chatbot-backend/
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── br/
│ │ │ └── com/
│ │ │ └── johnlaff/
│ │ │ └── chatbot/
│ │ │ ├── ChatBotUniubeAbertaApplication.class
│ │ │ ├── application/
│ │ │ │ ├── config/
│ │ │ │ │ └── CorsConfig.class
│ │ │ │ └── controllers/
│ │ │ │ └── ChatController.class
│ │ │ └── domain/
│ │ │ └── services/
│ │ │ └── ChatService.class
│ │ ├── resources/
│ │ │ └── application.properties
│ ├── test/
│ │ └── java/
│ │ └── br/
│ │ └── com/
│ │ └── johnlaff/
│ │ └── chatbot/
│ │ └── ChatBotUniubeAbertaApplicationTests.class
├── pom.xml
└── README.md
- ChatBotUniubeAbertaApplication: Classe principal para iniciar a aplicação Spring Boot.
- Config
CorsConfig.class
: Configuração de CORS para permitir requisições do frontend Angular.
- Controllers
ChatController.class
: Controlador REST que gerencia as requisições de chat.
- Services
ChatService.class
: Serviço que interage com a API do OpenAI para processar mensagens.
- Recursos
application.properties
: Arquivo de configuração da aplicação.
Contribuições são bem-vindas! Se você deseja contribuir para este projeto, por favor, siga os passos abaixo:
- Fork este Repositório
- Crie uma Branch para sua Feature
git checkout -b feature/NovaFeature
- Faça Commit das Suas Alterações
git commit -m "Adiciona nova feature"
- Push para a Branch
git push origin feature/NovaFeature
- Abra um Pull Request
Se você tiver qualquer dúvida ou sugestão, sinta-se à vontade para entrar em contato:
- Nome: João Lucas Ferreira
- Email: joaoaraxaiba@gmail.com
- LinkedIn: João Lucas Ferreira