1
resposta

[Sugestão] Alternativa Translate Gemini com langchain4j

Alternativa que Achei foi utilizando o gemini através de um repositorio chamado langchain4j.

no pom.xml

<!-- https://mvnrepository.com/artifact/dev.langchain4j/langchain4j-google-ai-gemini -->
        <dependency>
            <groupId>dev.langchain4j</groupId>
            <artifactId>langchain4j-google-ai-gemini</artifactId>
            <version>1.0.0-beta4</version>
        </dependency>

Criei um classe GeminiTranslateService. KEY_API_GEMINI é API que vocês vão ter que obter no google.

package med.voll.service;

import dev.langchain4j.model.chat.ChatModel;
import dev.langchain4j.model.googleai.GoogleAiGeminiChatModel;

public class GeminiTranslateService {

    public static String traduzir(String texto, String lingua) {
        final String KEY_API_GEMINI = System.getenv("KEY_API_GEMINI");

            ChatModel gemini = GoogleAiGeminiChatModel.builder()
                    .apiKey(KEY_API_GEMINI)
                    .modelName("gemini-1.5-flash-latest")
                    .build();

            String response = gemini.chat("me da resposta somente da tradução de " + texto + " em " + lingua);
            return response.trim();
    }
}

Classe para fazer tradução do produto

package med.voll.service;

import med.voll.model.Produto;

public class TraducaoProdutoService {

    public void traduz(Produto produto, String lingua){
        String name = GeminiTranslateService.traduzir(produto.getName(), lingua);
        String category = GeminiTranslateService.traduzir(produto.getCategory(), lingua);
        String description = GeminiTranslateService.traduzir(produto.getDescription(), lingua);

        produto.setName(name);
        produto.setCategory(category);
        produto.setDescription(description);
    }
}

Main

package med.voll;

import com.opencsv.bean.CsvToBeanBuilder;
import med.voll.model.Produto;
import med.voll.service.TraducaoProdutoService;

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.util.List;

public class Main {
    public static void main(String[] args) throws FileNotFoundException {

        TraducaoProdutoService traduzProdutoService = new TraducaoProdutoService();

        List<Produto> produtos = new CsvToBeanBuilder(new FileReader("src/main/resources/products.csv"))
                .withType(Produto.class).build().parse();

        System.out.println("Produtos não traduzidos");
        for(Produto produto: produtos){
            System.out.println(produto);
        }

        for(Produto produto: produtos){
            traduzProdutoService.traduz(produto, "RUSSO");
        }

        System.out.println();
        System.out.println("Produtos já traduzidos.");
        for(Produto produto: produtos){
            System.out.println(produto);
        }

    }
}

Posso traduzir para qualquer língua agora.

Russo, Chines, Latin, Alemão, English etc.....

Russo Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Chines

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Sueco Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Oi, Caio!

Obrigada por compartilhar.

Achei muito interessante a forma como você usou o langchain4j com o Gemini para traduzir textos em várias línguas. Isso mostra uma aplicação prática bem legal de IA integrada ao Maven.

Com certeza vai ajudar outras pessoas.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!