Aplicação Spring Boot que integra OpenAI API com TensorFlow para processamento de linguagem natural.
- ✅ Resumir mensagens usando OpenAI GPT
- ✅ Resposta automática inteligente
- ✅ Classificação de sentimento com TensorFlow
- ✅ Geração de descrições de produtos
- ✅ Tradução de textos
- ✅ Geração de código
- ✅ Busca semântica com Milvus
- ✅ Armazenamento vetorial de embeddings
- ✅ RAG (Retrieval-Augmented Generation)
[Cliente] → [Spring Boot API] → [OpenAI API] (LLM + Embeddings)
→ [TensorFlow] (ML local)
→ [H2 Database] (persistência)
→ [Milvus] (busca vetorial)
↑
[Docker Compose]
(etcd + MinIO + Attu)
- Controller: APIs REST para chat, produtos, IA e busca
- Service: Lógica de negócio (OpenAI, TensorFlow, Milvus)
- Repository: Persistência JPA com H2
- Entity: ChatMessage e Product
- DTO: Objetos de transferência validados
- Configure a chave da OpenAI no
application.yml
- Inicie o Milvus:
docker-compose up -d
- Execute:
./mvnw spring-boot:run
- Acesse:
http://localhost:8080
- Console Milvus (Attu):
http://localhost:8000
# Processar mensagem (resumo + resposta + sentimento)
POST /api/chat/process
{
"message": "Estou muito feliz com este produto!"
}
# Histórico de mensagens
GET /api/chat/history
# Mensagens por sentimento
GET /api/chat/sentiment/POSITIVE
# Criar produto com descrição gerada por IA
POST /api/products
{
"name": "Smartphone XYZ",
"description": "Celular básico",
"price": 899.99,
"category": "Eletrônicos"
}
# Listar produtos
GET /api/products
# Resumir texto
POST /api/ai/summarize
{
"text": "Texto longo para resumir..."
}
# Traduzir
POST /api/ai/translate
{
"text": "Hello world",
"targetLanguage": "português"
}
# Gerar código
POST /api/ai/generate-code
{
"description": "Função para calcular fibonacci",
"language": "Java"
}
# Buscar mensagens similares
POST /api/search/semantic
{
"query": "produto com problema",
"topK": "5"
}
Mensagem → OpenAI (resumo + resposta) → TensorFlow (sentimento) → H2 (persistência) → Milvus (embedding)
Exemplo prático:
- Input: "Adorei este produto, muito bom!"
- OpenAI Resume: "Cliente expressa satisfação com produto"
- OpenAI Responde: "Obrigado pelo feedback positivo!"
- TensorFlow Analisa: POSITIVE (score: 0.85)
- H2 Persiste: Dados estruturados salvos
- Milvus Indexa: Embedding vetorial para busca futura
Query → OpenAI (embedding) → Milvus (similaridade) → H2 (dados) → Resultado
Exemplo prático:
- Query: "problemas com entrega"
- Milvus encontra: Mensagens similares por vetor
- Sistema retorna: Histórico relevante de reclamações
- Spring Boot 3.5.6 - Framework principal
- Spring AI 1.0.2 - Integração com IA
- Spring Data JPA - Persistência
- Lombok - Redução de boilerplate
- Validation - Validação de dados
- OpenAI GPT-3.5-turbo - LLM para texto
- OpenAI Embeddings - Vetorização (simulado)
- TensorFlow Java 0.5.0 - ML local
- H2 Database - Dados estruturados (memória)
- Milvus 2.3.3 - Banco vetorial
- etcd - Metadados do Milvus
- MinIO - Storage do Milvus
- Docker Compose - Orquestração
- Attu - Interface web do Milvus
- H2 Console - Interface web do H2
Acesse: http://localhost:8080/h2-console
- URL:
jdbc:h2:mem:testdb
- User:
sa
- Password: (vazio)
Acesse: http://localhost:8000
- Visualização: Coleções e embeddings
- Gerenciamento: Índices e consultas
- Monitoramento: Performance e estatísticas
src/main/java/com/gmontinny/springbootaiopenaitensorflow/
├── config/ # Configurações (ChatClient)
├── controller/ # APIs REST
│ ├── ChatController
│ ├── ProductController
│ ├── AIController
│ └── SearchController
├── dto/ # Transfer Objects
├── entity/ # Entidades JPA
├── repository/ # Repositórios JPA
└── service/ # Lógica de negócio
├── OpenAIService
├── TensorFlowService
├── MilvusService
├── ChatService
└── ProductService