Skip to content

Este projeto é um chatbot que recebe perguntas dos usuários e retorna respostas geradas por um modelo de IA via requisições HTTP. Ele armazena as conversas em um banco de dados PostgreSQL e permite recuperar o histórico. A interface web exibe as interações com a IA.

Notifications You must be signed in to change notification settings

gabriellglrs/ChatBot_Inteligente_com_LLM

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 

Repository files navigation

LinkedIn cover - 26

Chatbot Inteligente 🤖

Um chatbot inteligente desenvolvido com Spring AI que integra com modelos de IA local através do Ollama, oferecendo uma interface web para conversas e gerenciamento de usuários.

image

image

📋 Características

  • Interface Web Intuitiva: Interface limpa e responsiva para interação com o chatbot
  • Autenticação e Autorização: Sistema completo de login/registro com Spring Security
  • Histórico de Conversas: Armazenamento e visualização do histórico completo de conversas
  • Integração com IA Local: Utiliza Ollama para processamento de linguagem natural e Spring AI
  • Arquitetura RESTful: APIs REST para operações CRUD de conversas
  • Persistência de Dados: Banco de dados para usuários e conversas

🛠️ Tecnologias Utilizadas

  • Java 17+
  • Spring Boot 3.x
  • Spring AI - Integração com modelos de IA (LLMs) locais ou externos
  • Spring Security - Autenticação e autorização
  • Spring Data JPA - Persistência de dados
  • Thymeleaf - Template engine para frontend
  • Lombok - Redução de boilerplate code
  • ModelMapper - Mapeamento entre DTOs e entidades
  • BCrypt - Criptografia de senhas
  • Ollama - Integração com modelos de IA local
  • Banco de dados H2/MySQL (configurável)

🚀 Pré-requisitos

Antes de executar o projeto, certifique-se de ter instalado:

  • Java 17 ou superior
  • Maven 3.6+
  • Ollama instalado e configurado
  • Git

Configuração do Ollama

  1. Instale o Ollama seguindo as instruções em ollama.ai
  2. Baixe um modelo de sua preferência:
    ollama pull llama2
    # ou
    ollama pull mistral
  3. Certifique-se de que o Ollama está rodando na porta padrão (11434)

⚙️ Configuração

  1. Clone o repositório:

    git clone <url-do-repositorio>
    cd Inteligente
  2. Configure o arquivo application.properties:

    # Configuração do Ollama
    spring.ai.ollama.base-url=http://localhost:11434
    spring.ai.ollama.model=llama2
    
    # Configuração do banco de dados (exemplo com H2)
    spring.datasource.url=jdbc:h2:mem:testdb
    spring.datasource.driverClassName=org.h2.Driver
    spring.datasource.username=sa
    spring.datasource.password=password
    
    # JPA/Hibernate
    spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
    spring.jpa.hibernate.ddl-auto=update
    spring.jpa.show-sql=true
    
    # Configurações do servidor
    server.port=8080
  3. Instale as dependências:

    mvn clean install

🏃‍♂️ Como Executar

  1. Inicie o Ollama (se não estiver rodando):

    ollama serve
  2. Execute a aplicação:

    mvn spring-boot:run
  3. Acesse a aplicação:

    • URL: http://localhost:8080
    • Para fazer login, primeiro registre um usuário em /register

🎯 Funcionalidades

Autenticação

  • Registro de usuários (/register)
  • Login seguro (/login)
  • Logout
  • Criptografia de senhas com BCrypt

Chatbot

  • Conversas em tempo real com IA
  • Processamento de linguagem natural via Ollama
  • Respostas contextualizadas

Histórico

  • Visualização do histórico de todas as conversas
  • Busca por conversa específica
  • Exclusão de conversas

APIs REST

  • GET /api/conversation/{id} - Buscar conversa por ID
  • DELETE /api/conversation/{id} - Deletar conversa

📁 Estrutura do Projeto

src/main/java/com/chatbot/Inteligente/
├── DTO/                     # Data Transfer Objects
│   ├── ConversationResponseDTO.java
│   ├── UserRequestDTO.java
│   └── UserResponseDTO.java
├── config/                  # Configurações
│   ├── mapper/ModelMapperConfig.java
│   ├── rest/RestTemplateConfig.java
│   └── security/SecurityConfig.java
├── controllers/             # Controladores REST e Web
│   ├── AuthController.java
│   └── ConversationController.java
├── entities/               # Entidades JPA
│   ├── Conversation.java
│   └── User.java
├── exceptions/             # Tratamento de exceções
│   └── RecursoNaoEncontradoException.java
├── repositories/           # Repositórios de dados
│   ├── ConversationRepository.java
│   └── UserRepository.java
└── services/              # Lógica de negócio
    ├── ChatbotService.java
    └── UserService.java

🔒 Segurança

  • Autenticação baseada em formulário
  • Criptografia de senhas com BCrypt (10 rounds)
  • Proteção CSRF desabilitada para APIs REST
  • Controle de acesso baseado em rotas
  • Validação de entrada nos endpoints

🎨 Interface do Usuário

A aplicação possui uma interface web moderna construída com Thymeleaf, oferecendo:

  • Página de login responsiva
  • Formulário de registro com validação
  • Interface de chat intuitiva
  • Histórico de conversas organizador
  • Design responsivo para dispositivos móveis

🤝 Contribuindo

  1. Faça um fork do projeto
  2. Crie uma branch para sua feature (git checkout -b feature/AmazingFeature)
  3. Commit suas mudanças (git commit -m 'Add some AmazingFeature')
  4. Push para a branch (git push origin feature/AmazingFeature)
  5. Abra um Pull Request

📝 Licença

Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.

🐛 Problemas Conhecidos

  • Certifique-se de que o Ollama está rodando antes de iniciar a aplicação
  • A primeira resposta pode demorar mais devido ao carregamento do modelo
  • Em caso de timeout, verifique a conectividade com o serviço Ollama

📞 Suporte

Se você encontrar algum problema ou tiver dúvidas:

  1. Verifique se o Ollama está rodando corretamente
  2. Consulte os logs da aplicação para erros específicos
  3. Abra uma issue no repositório do projeto

Autor

Gabriel lucas rodrigues souza
LinkedIn: https://www.linkedin.com/in/gabriellglrs/


Desenvolvido com ❤️ usando Spring AI e Ollama

About

Este projeto é um chatbot que recebe perguntas dos usuários e retorna respostas geradas por um modelo de IA via requisições HTTP. Ele armazena as conversas em um banco de dados PostgreSQL e permite recuperar o histórico. A interface web exibe as interações com a IA.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published