O projeto Spring AI incorpora recursos e funcionalidade de Inteligência Artificial no desenvolvimento de aplicações Java de forma simples e rápida. O projeto Spring AI traz suporte para integração com os principais modelos de IA do mercado como o OpenAI ChatGPT, Azure OpenAI, Amazon Bedrock, GoogleAI Gemini, Ollama, MistralAI que icluem API's para chat, geração de imagem, incorporação, suporte para API síncrona e assíncrona, além de API Chat Completion que unifica a comunicação com modelos de IA disponíveis.
- Arquitetura básica da aplicação
- Pré-requisitos
- Configurar o projeto
- Desenvolvimento da aplicação
- Instalação
- Endpoints
Essa aplicação ilustra a criação de uma Bookstore Assistant AI utilizando Spring Boot e Spring AI fazendo a integração através da plataforma OpenAI conforme ilustrado abaixo.
- Ter uma conta na plataforma OpenAI.
- Criar uma "secret key" no campo
API keys
. - Inserir a secret key no parâmetro spring.ai.openai.pai-key no arquivo aplication.properties pelo
STS
.
-
Criar projeto Maven usando Spring Initializr e importar no STS.
-
Selecionar as dependências para
Spring Web
eOpenAI
selecionandoJava 21
e oMaven
como gerenciador de dependências. -
Sugestão: acrescentar no .gitignore:
.vscode
.metadata
.mvn
mvnw
mvnw.cmd
- Criar os endpoints
/informations
,/reviews
e/stream/informations
na uri/bookstore
no arquivoBookstoreAssistantController
conforme disponível no repositório deste projeto em Bookstore Assistant AI.
- Clonar repositório
git@github.com:heliohdd/bookstore-assistant-ai.git
- Fazer o build do projeto
./mvnw clean package
- Subir a aplicação
java -jar /target/bookstore-assistant-ai-0.0.1-SNAPSHOT.jar
- Conferir o resultado da API usando o
Postman
emhttp://localhost:8080
com os endpoints abaixo
HTTP Verb | Endpoint | Ação |
---|---|---|
GET | /bookstore/informations | Recebe informação geral sobre algum livro na forma de String |
GET | /bookstore/reviews | Recebe resumo de um livro e biografia do autor na forma de Prompt Template |
GET | /bookstore/stream/informations | Recebe informação geral sobre algum livro na forma assíncrona WebFlux |