Transforme qualquer especificação OpenAPI em ferramentas dinâmicas que podem ser invocadas por modelos de linguagem (LLMs). Construído com Spring Boot 3, Spring AI e preparado para rodar com OpenAI ou modelos locais via Ollama.
Configure e execute o Swagger Agent rapidamente com a configuração padrão (OpenAI).
# 1. Clone o repositório git clone https://github.com/cesarschutz/swagger-agent.git cd swagger-agent # 2. Adicione seus arquivos OpenAPI na pasta `openapi-specs/` # Exemplo: openapi-specs/petstore/petstore.yaml # 3. Exporte sua chave da OpenAI e execute` export OPENAI_API_KEY="sua_chave_openai_aqui" # 4. Execute a aplicação ./mvnw spring-boot:run
Pule para a seção Configurando o Provedor de IA para aprender a usar o Swagger Agent com o Ollama.
Explore as interfaces web e mobile do projeto, desde a tela inicial até a visualização de ferramentas disponíveis.
Tela principal do chat onde você pode conversar naturalmente com as APIs. Interface limpa e moderna com suporte a markdown..
Tela que mostra todas as ferramentas disponíveis geradas automaticamente das especificações OpenAPI, com métodos HTTP coloridos e descrições claras.
Versão mobile otimizada da interface principal. Design responsivo que se adapta perfeitamente a smartphones e tablets.
Navegação otimizada para dispositivos móveis, garantindo acesso rápido a todas as funcionalidades e seções do agente.
Visualização mobile das ferramentas disponíveis, com layout otimizado para telas menores e navegação touch-friendly.
Interface com gradientes, efeitos glass, animações suaves e design responsivo que funciona perfeitamente em desktop, tablet e mobile.
Visualize todas as APIs disponíveis organizadas por projeto. Clique em qualquer ferramenta para ver exemplos de como usá-la.
Conversa natural com suporte a markdown, emojis e indicadores de digitação. Sessões únicas para cada usuário.
Descubra como o Swagger Agent revoluciona a forma como você interage com APIs através de conversas naturais.
Interface conversacional que permite interagir com APIs usando linguagem natural. Streaming em tempo real e suporte a markdown.
Interface web moderna e responsiva com design profissional. Funciona perfeitamente em desktop, tablet e mobile.
Geração automática de ferramentas a partir de especificações OpenAPI. Cada endpoint se torna uma ferramenta que o LLM pode usar.
Vamos explorar cada conceito fundamental que torna possível a integração inteligente entre IA e APIs, com explicações didáticas e exemplos práticos.
Large Language Models (LLMs) são sistemas de IA treinados em enormes volumes de texto para compreender e gerar linguagem humana. Funcionam como um "cérebro digital" que leu milhões de livros e conversas.
Quando você faz uma pergunta, o LLM usa padrões estatísticos para prever qual seria a resposta mais apropriada, palavra por palavra.
Imagine um LLM como um cérebro muito inteligente que precisa de "mãos" para interagir com o mundo real. Essas "mãos" são as ferramentas (tools) ou function calling.
É como ter um assistente super inteligente que sabe de tudo, mas precisa de ferramentas específicas: uma calculadora para matemática, um telefone para ligar, uma API para buscar dados.
OpenAPI é um padrão para descrever APIs REST de forma estruturada. É como um "manual de instruções" detalhado da sua API, legível por humanos e máquinas.
Imagine que sua API é um restaurante. O OpenAPI seria o cardápio detalhado que lista todos os pratos (endpoints), ingredientes (parâmetros) e como fazer o pedido (métodos HTTP).
Spring Boot é o framework Java mais popular para criar aplicações robustas. Elimina a complexidade de configuração, permitindo focar na lógica de negócio.
É como ter um "kit de construção" completo para aplicações Java. Você não precisa montar cada peça do zero - o Spring Boot já vem com tudo configurado.
Spring AI é o framework oficial da Spring para integração com modelos de IA. Fornece abstrações simples para trabalhar com LLMs, eliminando a complexidade de integração.
É como ter um "tradutor universal" entre sua aplicação Java e qualquer modelo de IA. Você escreve código Java simples, e ele cuida da comunicação complexa com os LLMs.
Suporte nativo para múltiplos provedores de IA, desde soluções em nuvem até modelos locais. Flexibilidade total para escolher o que melhor se adapta ao seu caso de uso.
Nuvem: Mais poderosos, pagos por uso
Local: Gratuitos, privados, sem limite de uso
A seleção do provedor de IA (OpenAI ou Ollama) é feita pela propriedade app.ai.provider
.
Você pode configurá-la via variável de ambiente ou arquivo application.yml
.
Ideal para começar rapidamente. Requer uma chave de API e conexão com a internet.
# Método 1: Via Variáveis de Ambiente export OPENAI_API_KEY="sua_chave_openai_aqui" export AI_PROVIDER=openai # Opcional (padrão) # Método 2: Via application.yml app: ai: provider: openai spring: ai: openai: api-key: "sua_chave_openai_aqui" # Após configurar, execute: ./mvnw spring-boot:run
Perfeito para uso offline, maior privacidade e experimentação com modelos abertos.
# 1. Inicie o Ollama (se ainda não estiver rodando) docker run -d --name ollama -p 11434:11434 ollama/ollama:latest docker exec -it ollama ollama pull qwen2.5:0.5b # 2. Configure a aplicação export AI_PROVIDER=ollama export SPRING_AI_OLLAMA_CHAT_OPTIONS_MODEL="qwen2.5:0.5b" # 3. Execute a aplicação ./mvnw spring-boot:run
A propriedade app.ai.provider
controla qual bean de IA será carregado pelo Spring Boot.
Apenas um provedor é ativado por vez, garantindo que a aplicação seja leve e sem conflitos.
openai
: Carrega a configuração para a API da OpenAI (padrão).ollama
: Carrega a configuração para o provedor Ollama.Importante: É necessário reiniciar a aplicação após alterar o valor desta propriedade.
Documentação dos endpoints principais e exemplos de uso da API do Swagger Agent.
POST /api/chat
Content-Type: application/json
{
"message": "Quais pets estão disponíveis?",
"sessionId": "sessao-123"
}
Endpoint principal para conversas síncronas. Retorna resposta completa após processamento.
GET /api/tools
# Retorna todas as ferramentas dinâmicas
# geradas a partir das especificações OpenAPI
Lista todas as ferramentas disponíveis com suas descrições e parâmetros.
POST /api/chat/stream
Content-Type: application/json
Accept: text/event-stream
{
"message": "Explique como funciona o Spring AI",
"sessionId": "sessao-456"
}
Endpoint para respostas em streaming (Server-Sent Events). Ideal para interfaces em tempo real.
Entenda o fluxo completo desde a inicialização da aplicação até a resposta inteligente, passando por todas as camadas do sistema.
O Swagger Agent é um intermediário inteligente que conecta modelos de linguagem (LLMs) a APIs externas através de especificações OpenAPI. O processo funciona em duas fases principais:
Durante a inicialização da aplicação, o Swagger Agent:
openapi-specs/
Durante uma conversa com o usuário:
Utilizamos a API fluente do Spring AI para comunicação com modelos de IA, similar ao WebClient. Suporte a OpenAI, Ollama e outros provedores com troca fácil de componentes.
Implementamos o sistema de Tools/Function Calling do Spring AI, permitindo que o modelo execute ferramentas dinâmicas geradas a partir de especificações OpenAPI.
Aproveitamos o sistema de Chat Conversation Memory do Spring AI para manter contexto entre mensagens e sessões únicas para cada usuário.
Agora que você entende como tudo funciona, que tal testar na prática? Converse naturalmente com APIs e veja a magia acontecer!
Sobre o Demo: Utiliza dados de exemplo do Petstore API. É um ambiente seguro para experimentar sem afetar dados reais.