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
Chines
Sueco