image

Access unlimited bootcamps and 650+ courses forever

60
%OFF
Article image
Luiz Café
Luiz Café26/06/2025 13:14
Share

DuoForTech: Criando um Chatbot com Java, IA e SpringBoot para te Ajudar com Inglês

  • #Java

Olá, comunidade da DIO!

Você sabia que o Brasil, pode ser considerado um dos países do mundo que mais possui escolas de inglês?

Porém, por que tão poucas pessoas são fluentes no idioma?

Segundo dados EF, o país ocupa a 81° posição em 2024, uma queda em relação a 2023, em que o país ocupava a 71° posição. São ao todo 113 países avaliados.

Como podemos mudar esse cenário?

A resposta não é simples, porém, neste artigo, compartilho com vocês como criar um chatbot simples usando Java e SpringBoot, para você praticar inglês e se destacar.

Já pensou se existisse um chatbot parecido com o Duolingo, porém com o foco em ensinar Inglês para Desenvolvedores?

Talvez você esteja pensando: para fazer isso, tenho que usar a linguagem de programação Python, não é verdade?

Mas Java também vem conquistando seu espaço no mercado e por isso, vamos fazer esse pequeno chatbot para te ajudar!

Vamos lá?

Neste artigo você encontra:

  • Introdução a IA no contexto de Java;
  •  Conhecendo o Spring Boot;
  •  A Revolução com Spring AI;
  • Criando o DuoForTech que te ajuda com Inglês;
  • Considerações Finais.

Java no Contexto de IA: uma Opção além de Python

Muitas pessoas, ao pensar em automação com IA, logo vem a mente o uso da linguagem Python, porém Java, se apresenta como uma ótima opção para esse fim também. No entanto, não se preocupe, Python e Java não são rivais, longe disso, ambas podem ser aprendidas e úteis para desenvolver soluções em IA. Você não precisa necessariamente escolher uma ou outra, pode aprender as duas sem problema algum, para falar a verdade, isso vai te destacar ainda mais.

Veja nessa tabela, uma pequena comparação entre Java e Python, no contexto de IA:

image

Figura 1- Comparação entre Java e Python no contexto de IA. Fonte: Elaborado pelo autor.

Na tabela podemos identificar algumas características importantes, quando estamos falando do desenvolvimento de soluções em IA. Python se apresenta uma ótima solução para criar soluções mais rápidas e para quem busca resultados mais rápidos, no entanto, a linguagem pode ter algumas limitações quando estamos falando de velocidade de execução. Em relação a linguagem Java, é possível observar que apesar de ser uma linguagem mais complexa de se aprender, pode ser ideal para que construção de sistemas empresariais.

Podemos concluir que não existe uma melhor ou pior e sim, uma aplicação fundamental de acordo com a necessidade, por isso é preciso entender muito bem qual o problema deve ser resolvido, antes de iniciar o processo de desenvolvimento do projeto. Como o foco desse artigo é a linguagem Java, vamos aprofundar mais sobre ela.

Por que escolher Java para criar automações em IA?

Algumas características peculiares de Java tornam a linguagem uma ótima opção para criar projetos:

  • Confiável: Com 30 anos de mercado, podemos considerar Java como uma linguagem segura, robusta e confiável.
  • Facilidade em tratar erros: oferece o tratamento de erros de maneira eficiente e eficaz, impedindo que pequenos detalhes passem despercebidos e comprometam toda aplicação.
  • Gerenciamento de memória de maneira automática: Isso é possível com o Garbage Collector, tornado os projetos feitos em Java menos propensos a erros e uso de memória sem necessidade o que pode reduzir também o chamado vazamento de memória (memory leaks).
  • Fortemente tipada: isso significa que, enquanto você está escrevendo seu código, existe a possibilidade de identificar e tratar erros. Deixando os sistemas escritos em Java ainda mais confiáveis.
  • Flexível: com a JAVA VIRTUAL MACHINE (JVM), você pode usar Java em diversos sistemas operacionais, sem precisar se preocupar com detalhes específicos de cada sistema. Você criar seus projetos no Windows ou Linux, por exemplo, sem dificuldades. Esse princípio é conhecido como Write Once, Run Anywhere;
  • Comunidade de Respeito: A comunidade Java é extremante engajada, o que torna fácil de aprender e criar soluções. Você não terá dificuldades em encontrar grupos, fóruns, projetos no GitHub que te ajudem a aprender Java. Assim, ela se torna uma mão na roda para quem deseja ser desenvolvedor.

Em resumo: Java já demonstrou ao longo desses anos sua capacidade de se adaptar a diferentes cenários e com a IA não é diferente. Por ser considerada uma linguagem segura, robusta, fortemente tipada, com uma comunidade engajada, Java não perde em nada para Python, quando o assunto é construir soluções em IA.

Agora que você sabe os motivos de Java ser uma ótima opção para criar soluções em IA, vamos explorar mais sobre o framework que está se tornando uma ótima opção para criar soluções em IA, com a linguagem que já está a 30 anos no mercado de desenvolvimento.

Conhecendo o Spring Boot

Esse framework é o seu melhor amigo, quando estamos falando de automação. No início para criar um deploy de um Spring era um grande desafio. Pensando em facilitar todo esse processo, foi criado o Spring Boot.

Ele é bem recente, sendo criado em 2014, facilitando a vida dos desenvolvedores, principalmente quando estamos falando em aumento da produtividade e na qualidade dos projetos, além disso é open-source o que permite maior colaboração dentro da comunidade de desenvolvimento.

Principais Motivos para usar Spring Boot

image

Existe uma infinidade de aplicações para o uso do Spring Boot, entre elas temos:

  • Configuração Automática: você não precisa ficar configurando “na mão”, pois todo o processo pode ser feito automaticamente, o que reduz o tempo de configuração e agiliza a criação dos projetos;
  • Embarcação de Servidores: você pode empacotar uma aplicação como um JAR, com um servidor já embutido como por exemplo, o Tomc
  • Configuração: no Spring Boot você tem o benefício dele seguir a chamada “convenção sobre configuração”, isso significa que você terá que fazer menos ajustes, na maioria das situações. Além disso, graças aos chamados “starters”, você pode contar com dependências já agrupadas, que já inclui as bibliotecas que você precisa para construir seus projetos.
  • Facilidade em Operações DevOps: enquanto você está construindo seus projetos é possível realizar o monitoramento e gestão das aplicações. Assim, você tem a sua disposição dados e análises para entender como está a “saúde” da aplicação, o que é fundamental para que trabalha com DevOps.
  • Aumento da Produtividade: esse é sem dúvidas um dos maiores benefícios do Spring Boot, pois ele permite que você, desenvolva muito mais rapidamente e ainda ajuda na redução de erros e retrabalho.

Esses são alguns dos benefícios do Spring Boot, ele surgiu da necessidade de facilitar a construção de projetos, que antes era um processo mais complexo e agora pode ser considerável escalável e mais produtivo.

Importante: O Spring Boot não substitui o Spring Framework! Muito pelo contrário, ele surge como um facilitador do processo de desenvolvimento, ideal para iniciantes e profissionais que desejam acelerar o processo de desenvolvimento, bem como para aqueles que desejam modernizar aplicações antigas.

Introdução ao Spring AI

Outro tema fundamental quando estamos falando de Spring é a recente chegada do Spring AI. Visando se adaptar as novas demandas do mercado de desenvolvimento, a comunidade de desenvolvedores decidiu criar uma solução para os programadores que utilizam Java no seu dia a dia de trabalho.

Benefícios do Spring AI

  • Unificação: no Spring AI é possível integrar as interfaces comuns em diferentes modelos de IA como os LLMs, imagens e até mesmo os embeddings. Assim, você não precisa usar necessariamente uma API diferente da API unificada da Spring AI, está tudo interligado para facilitar o desenvolvimento.
  • Padrões Mantidos: os principais padrões de desenvolvimento com Spring foram mantidos como por exemplo, injeção de dependência e configuração orientada a anotações, assim os profissionais e estudantes de Java, não terão tanta dificuldade em se adaptar a este novo cenário que se apresenta;
  • Velocidade: combinado com a IA, construir um projeto, ficou ainda mais fácil e rápido, com funcionalidades sendo atualizadas constantemente, sendo necessário acompanhar essas mudanças rápidas para não ficar desatualizado.

Por fim, podemos concluir que o Spring AI, assim como o Spring Boot são essenciais para construção de soluções cada vez mais robustas, com o objetivo principal proporcionar uma maior facilidade para trabalhar com ele. É importante destacar que aprender Spring AI ou Spring Boot não anula a necessidade de aprender conceitos sobre Machine Learning, LLM, engenharia de prompt entre outros conceitos fundamentais de IA.

Mão na Massa: Construindo um Chatbot simples que ensina Inglês para Desenvolvedores: DuoForTech

Agora que você já sabe mais sobre o que é Spring Boot e Spring IA bem como seus benefícios, vamos para a parte prática! O objetivo aqui é criar um chatbot simples para te auxiliar no aprendizado de inglês, focado em profissionais de programação, é importante ressaltar que, ele não ensina inglês avançado ou subistitui a necessidade de um bom professor para te ajudar no aprendizado de idiomas, foi elaborado apenas para fins didáticos, para que seja possível entender na prática como usar o Spring Boot, Java e IA podem ser utilizados a seu favor.

Para criar esse projeto você vai precisar de:

  • Java 11 ou superior instalado em sua máquina;
  • Acessar o site: < https://start.spring.io/> para configurações do Spring Boot
  • Uma IDE de sua preferência( IntelliJ, Visual Studio Code, Eclipse, entre outras opções);
  • Uma chave API( preferencialmente da OpenAI, porém você pode usar do Gemini do Google e explorar outras opções também);
  • Postman para ver os resultados;

Verificando se Java está instalado na sua máquina

Para verificar se Java está instalado no seu computador, use o comando:

java – version

image

Figura 2- Captura de Tela do Windows, mostrando a Versão de Java Instalada.

Caso, não apareça nada, você pode obter o SDK em:<https://www.azul.com/downloads/?package=jdk#zulu>

Configurações no Spring Boot

image

Figura 3- Captura de Tela do Spring Initializr, com as configurações do projeto. Duofortech.

Após acessar o site: start.spring.io, faça as seguintes configurações:

  • Project: você escolhe pode ser Gradle ou Maven. Neste caso, foi escolhido Maven;
  • Language: vamos utilizar Java;
  • Spring Boot : escolha 3.5.3;
  • Group: com.chatbot;
  • Artifact: duofortech;
  • Dependências: são duas a Spring Web e Spring Boot Dev Tools.

Após, criar todas essas configurações, confira se está tudo “ok” e clique em GENERATE para fazer o download, após isso, extraia o arquivo zip com o projeto e abra ele na sua IDE.

Estrutura do Projeto:

src/
├─ main/
│  ├─ java/
│  │  └─ com.duofortech.duofortech/
│  │     ├─ controller/
│  │     │  └─ ChatController.java
│  │     ├─ service/
│  │     │  └─ ChatService.java
│  │     └─ DuofortechApplication.java
│  └─ resources/
│     └─ application.properties

Essa é a estrutura do projeto do Duofortech. Nele podemos observar a organização das pastas:

  • src: pasta raiz do projeto. Nela está tudo que é necessário para que o projeto ganhe "vida";
  • main: armazena o código principal do projeto;
  • java: os arquivos com a extensão .java, ficam dentro desta pasta;
  • com.duofortech.duofortech: é onde se encontra o coração da aplicação deste projeto;

OBERSVAÇÃO: O projeto, segue a Arquitetura MVC uma prática extremamente comum para criação de projetos dessa natureza.

  • controller: é onde se encontra a camada de controle. Aqui são recebidas as requisições HTTP, processamento de requisições e o retorno da resposta;
  • services: aqui está a camada de serviços, onde são executados as regras de negócio,
  • Duofortech.Application: é onde está iniciado a execução propriamente dita do projeto, que foi configurada no Spring Boot initializr;
  • resources: alguns recursos salvos no projeto, não se tratando de código java em si;
  • application.properties: responsável pelas propriedades das aplicações do Spring Boot.

Tudo isso, tem o objetivo de facilitar o processo de construção e entendimento do que foi construído.

Códigos:

DuofortechApplication.java:

package com.duofortech.duofortech;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class DuofortechApplication {
  public static void main(String[] args) {
      SpringApplication.run(DuofortechApplication.class, args);
  }
}
./mvnw spring-boot:run

ChatController.java:

package com.duofortech.duofortech.controller;


import com.duofortech.duofortech.service.ChatService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;


@RestController
@RequestMapping("/chat")
public class ChatController {


  @Autowired
  private ChatService chatService;


  @PostMapping
  public String conversar(@RequestBody String mensagemDoAluno) {
      return chatService.enviarMensagem(mensagemDoAluno);
  }
}

service/ChatService.java:

package com.duofortech.duofortech.service;


import org.springframework.http.*;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
import org.json.JSONObject;


@Service
public class ChatService {


  private static final String API_URL = "https://api.openai.com/v1/completions"; // a chave utilizada é da OPEN AI
  private static final String API_KEY = "SUA_CHAVE_AQUI"; // substitua pela sua chave da OpenAI. NUNCA COMPARTILHE SUA CHAVE COM NINGUÉM


  public String enviarMensagem(String mensagemDoAluno) {
      RestTemplate restTemplate = new RestTemplate();


      HttpHeaders headers = new HttpHeaders();
      headers.setBearerAuth(API_KEY);
      headers.setContentType(MediaType.APPLICATION_JSON);


      String prompt = "Você é um professor de inglês especialista em profissionais de tecnologia. Explique com clareza e educação. Responda à seguinte pergunta do aluno: " + mensagemDoAluno;


      JSONObject requisicao = new JSONObject();
      requisicao.put("model", "text-davinci-003");
      requisicao.put("prompt", prompt);
      requisicao.put("max_tokens", 150);
      requisicao.put("temperature", 0.6);


      HttpEntity<String> entidade = new HttpEntity<>(requisicao.toString(), headers);


      try {
          ResponseEntity<String> resposta = restTemplate.exchange(
              API_URL,
              HttpMethod.POST,
              entidade,
              String.class
          );


          JSONObject respostaJson = new JSONObject(resposta.getBody());
          return respostaJson
                  .getJSONArray("choices")
                  .getJSONObject(0)
                  .getString("text")
                  .trim();


      } catch (Exception e) {
          return "Erro ao acessar a IA: " + e.getMessage();
      }
  }
}

Resources/applications.properties:

server.port=8080
spring.main.allow-bean-definition-overriding=true

Arquivo pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.duofortech</groupId>
  <artifactId>duofortech</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <name>duofortech</name>
  <description>Chatbot para ensinar inglês básico</description>
  <properties>
      <java.version>11</java.version>
  </properties>
  <dependencies>
      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-web</artifactId>
      </dependency>
      <dependency>
          <groupId>org.json</groupId>
          <artifactId>json</artifactId>
          <version>20230618</version>
      </dependency>
  </dependencies>
  <build>
      <plugins>
          <plugin>
              <groupId>org.springframework.boot</groupId>
              <artifactId>spring-boot-maven-plugin</artifactId>
          </plugin>
      </plugins>
  </build>
</project>



IMPORTANTE: você precisa ter o Maven instalado no seu computador para testar o projeto, do contrário, não vai funcionar. Para verficar se o Maven está instalado, faça o seguinte:

mvn -v

Caso, apareça a versão do Maven instalado está tudo certo:

Apache Maven 3.9.6

Caso, não você pode encontrar neste link, um passo a passo para instalar o Maven.

Usando o Postman

Você pode usar o Postman para ver o que o seu chatbot pode fazer. Para isso, faça o seguinte:

  • Baixe e instale o Postman na sua máquina;
  • Crie uma requisição, como esta:
http://localhost:8080/chat
  • Procure pela aba Body, marque a opção raw e depois você pode escolher entre as opções TEXT ou JSON.
  • Faça uma pergunta de teste como: ""How can I say 'estou disponível para novas oportunidades'?"
  • Agora, basta clicar em SEND;

Considerações Finais

Após a leitura deste artigo, você entendeu como criar um chatbot utilizando Java, Spring Boot e uma Chave API para te ajudar a estudar inglês, com foco em desenvolvedores. Além disso, foi possível aprender sobre o Spring AI e como a comunidade Java está se adaptando para a era da IA. Você entendeu conceitos importantes sobre a linguagem Java e porque ela pode ser considerada uma ótima opção para quem deseja criar soluções em IA, além da linguagem Python, que já é tradicional neste ramo.

Está pronto para essa nova etapa no mundo do desenvolvimento? Então, não deixe de estudar bastante sobre Java, IA, Spring Boot e demais temas que você julgar necessário aprender, não deixe de assumir o papel de protagonista da sua carreira e buscar o aprendizado contínuo. Na DIO temos diversos Bootcamps, cursos, mentorias e acelerações que podem te ajudar para este novo momento do mercado, a IA não vai substituir profissionais preparados e atualizados que saibam trabalhar em conjunto com ela, como você viu no artigo, ela está aumentando a produtividade dos times de desenvolvimento e isso pode beneficiar você também, mesmo que esteja começando!

O importante é se manter sempre atualizado! Bons estudos!

Referências

APACHE SOFTWARE FOUNDATION. Download – Apache Maven. Apache, s.d. Disponível em: https://maven.apache.org/download.cgi. Acesso em: 26 jun. 2025.

BAELDUNG. Introduction to Spring Boot. [S.l.], 2023. Disponível em: https://www.baeldung.com/spring-boot. Acesso em: 25 jun. 2025.

CNN Brasil. Brasil tem quarto pior índice de proficiência em inglês na América Latina. CNN Brasil, s.d. Disponível em: https://www.cnnbrasil.com.br/educacao/brasil-tem-quarto-pior-indice-de-proficiencia-em-ingles-na-america-latina/. Acesso em: 26 jun. 2025.

COODESH. O que é JVM?. Coodesh, 2025. Disponível em: https://coodesh.com/blog/dicionario/o-que-e-jvm/. Acesso em: 26 jun. 2025.

DEVMEDIA. Introdução ao Java Garbage Collection. DevMedia, s.d. Disponível em: https://www.devmedia.com.br/introducao-ao-java-garbage-collection/30326. Acesso em: 26 jun. 2025.

DEREMUK, Iryna. Python vs Java for AI: How to Choose the Right Language. Litslink, 04 set. 2024. Disponível em: https://litslink.com/blog/python-vs-java-which-one-to-choose-for-ai. Acesso em: 26 jun. 2025.

JDEV TREINAMENTO. Linguagem Java e suas características. JDev Treinamento, s.d. Disponível em: https://www.jdevtreinamento.com.br/linguagem-java-e-suas-caracteristicas/. Acesso em: 26 jun. 2025.

MENDES, DevMedia. Introdução ao Padrão MVC: Primeiros passos na Arquitetura MVC. DevMedia, s.d. Disponível em: https://www.devmedia.com.br/introducao-ao-padrao-mvc/29308. Acesso em: 26 jun. 2025.

MICROSOFT CORPORATION. O que é DevOps?. Microsoft Azure. Disponível em: https://azure.microsoft.com/pt-br/resources/cloud-computing-dictionary/what-is-devops. Acesso em: 26 jun. 2025.

OLIVEIRA, Januário. O que é o Maven e como instalar. Medium, 29 nov. 2018. Disponível em: https://medium.com/@januario86/o-que-%C3%A9-o-maven-e-como-instalar-1d5e9f29ac4c. Acesso em: 26 jun. 2025.

START SPRING. Spring Initializr. [S.l.]: Spring, [2025?]. Disponível em: https://start.spring.io/. Acesso em: 25 jun. 2025.

SPRING. Spring Framework. [S.l.]: Spring, [2025?]. Disponível em: https://spring.io/. Acesso em: 25 jun. 2025.

SPRING. Spring AI: API Reference. [S.l.]: Spring, [2025?]. Disponível em: https://docs.spring.io/spring-ai/reference/api/index.html. Acesso em: 25 jun. 2025.

SPRING. spring-projects/spring-ai. GitHub, 2025. Disponível em: https://github.com/spring-projects/spring-ai. Acesso em: 25 jun. 2025.

Share
Recommended for you
NTT DATA - Java e IA para Iniciantes
TONNIE - Java and AI in Europe
Deal - Spring Boot e Angular (17+)
Comments (2)
Luiz Café
Luiz Café - 26/06/2025 16:33

Obrigado pelo comentário DIO COMMUNITY! De certo modo o projeto precisa de melhorias para se tornar um produto ou serviço. Para isso é preciso testar, criar um plano de negócios e rodar a solução. Para isso, eu acredito que devo transformar o chatbot em um Agente mais completo, sem esquecer dos custos envolvidos com a chave API, disponibilizar uma versão de teste para um pequeno grupo de pessoas e verificar se faz sentido para os usuários. Assim, acredito que pode dar certo.

DIO Community
DIO Community - 26/06/2025 13:55

Excelente contribuição, Luiz. Seu artigo não apenas propõe uma solução criativa para um problema real da educação no Brasil, mas também conecta de maneira clara tecnologia, inovação e propósito. A proposta do DuoForTech é inspiradora: aplicar Java, Spring Boot e IA para democratizar o aprendizado de inglês, especialmente entre desenvolvedores.

A abordagem pedagógica, o passo a passo técnico e o cuidado em contextualizar a escolha de tecnologias mostram domínio técnico e visão de impacto social. A estrutura do projeto e a integração com o Spring AI ajudam ainda mais quem está começando a entender o potencial dessa combinação.

Na sua visão, quais seriam os próximos passos para escalar o DuoForTech como um produto educacional completo?