private void pesquisarDadosSobreArtista() {
System.out.println("Digite o nome do artista: ");
String nomeArtista = entrada.nextLine();
ConsumoChatGpt.informacaoArtista(nomeArtista);
System.out.println("Deseja Pesquisar sobre Alguma musica dele? \nSe não tiver pode deixar com a gente");
var respostaPerguntaPlaylist = entrada.nextLine();
if (respostaPerguntaPlaylist.equalsIgnoreCase("playlist")){
dadosArtista = repository.findByNomeLike(nomeArtista);
if (dadosArtista.isPresent()){
DadosArtista artistas = dadosArtista.get();
List<String> nomeDasMusicas = artistas.getMusicas().stream()
.map(musica -> musica.getTitulo())
.limit(3)
.collect(Collectors.toList());
for(String musicaDaLista : nomeDasMusicas){
ConsumoChatGpt.informacaoMusicaArtista(musicaDaLista);
}
} else {
System.out.println("Artista Não Encontrado");
}
} else {
ConsumoChatGpt.informacaoUmaMusicaArtista(respostaPerguntaPlaylist);
}
}
public static String informacaoMusicaArtista(String texto) {
OpenAiService service = new OpenAiService("suaApiKey");
CompletionRequest requisicao = CompletionRequest.builder()
.model("gpt-3.5-turbo-instruct")
.prompt("Busque informações sobre essa musica " + texto)
.maxTokens(500)
.temperature(0.7)
.build();
var resposta = service.createCompletion(requisicao);
System.out.println(resposta.getChoices().get(0).getText());
return resposta.getChoices().get(0).getText();
}
public static String informacaoUmaMusicaArtista(String texto) {
OpenAiService service = new OpenAiService("suaApiKey");
CompletionRequest requisicao = CompletionRequest.builder()
.model("gpt-3.5-turbo-instruct")
.prompt("Busque informações sobre essa musica " + texto)
.maxTokens(500)
.temperature(0.7)
.build();
var resposta = service.createCompletion(requisicao);
System.out.println(resposta.getChoices().get(0).getText());
return resposta.getChoices().get(0).getText();
}
Eu teria outra ideia, por exemplo antes da linha " .map(musica -> musica.getTitulo()) " filtrar todos os objetos da lista pelo numero de vizualizações, por exemplo musicas superiores a 2 milhoes de views para ficar mais interativo.