-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: VIN-422 - criando PairingService
- Loading branch information
1 parent
c50a8bd
commit 1d47d90
Showing
3 changed files
with
83 additions
and
10 deletions.
There are no files selected for viewing
12 changes: 12 additions & 0 deletions
12
...izacao/src/main/java/com/vinhonotas/harmonizacao/application/services/PairingService.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
package com.vinhonotas.harmonizacao.application.services; | ||
|
||
import com.vinhonotas.harmonizacao.interfaces.dtos.inputs.WineInputDTO; | ||
import com.vinhonotas.harmonizacao.interfaces.dtos.outputs.PairingResponseDTO; | ||
|
||
public interface PairingService { | ||
|
||
PairingResponseDTO getWineInformation(WineInputDTO wine); | ||
PairingResponseDTO getWinePairing(WineInputDTO wine); | ||
PairingResponseDTO getMenuPairing(WineInputDTO wine); | ||
|
||
} |
50 changes: 50 additions & 0 deletions
50
...c/main/java/com/vinhonotas/harmonizacao/application/services/impl/PairingServiceImpl.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
package com.vinhonotas.harmonizacao.application.services.impl; | ||
|
||
import com.vinhonotas.harmonizacao.application.services.PairingService; | ||
import com.vinhonotas.harmonizacao.interfaces.dtos.inputs.WineInputDTO; | ||
import com.vinhonotas.harmonizacao.interfaces.dtos.outputs.PairingResponseDTO; | ||
import lombok.RequiredArgsConstructor; | ||
import lombok.extern.slf4j.Slf4j; | ||
import org.springframework.ai.chat.prompt.PromptTemplate; | ||
import org.springframework.ai.openai.OpenAiChatClient; | ||
import org.springframework.stereotype.Service; | ||
|
||
@Service | ||
@RequiredArgsConstructor | ||
@Slf4j | ||
public class PairingServiceImpl implements PairingService { | ||
|
||
private final OpenAiChatClient openAiChatClient; | ||
|
||
@Override | ||
public PairingResponseDTO getWineInformation(WineInputDTO wine) { | ||
PromptTemplate promptTemplate = new PromptTemplate("Quais as características do vinho {wine}?"); | ||
log.info("getWineInformation :: Buscando informações sobre o vinho: {}", wine); | ||
promptTemplate.add("wine", wine); | ||
String result = openAiChatClient.call(promptTemplate.create()).getResult().getOutput().getContent(); | ||
log.info("getWineInformation :: Informações encontradas: {}", result); | ||
return new PairingResponseDTO(result); | ||
} | ||
|
||
@Override | ||
public PairingResponseDTO getWinePairing(WineInputDTO wine) { | ||
PromptTemplate promptTemplate = new PromptTemplate("Quais os pratos que combinam com o vinho {wine}?"); | ||
log.info("getWinePairing :: Buscando harmonizações para o vinho: {}", wine); | ||
promptTemplate.add("wine", wine); | ||
|
||
String result = openAiChatClient.call(promptTemplate.create()).getResult().getOutput().getContent(); | ||
log.info("getWinePairing :: Harmonizações encontradas: {}", result); | ||
return new PairingResponseDTO(result); | ||
} | ||
|
||
@Override | ||
public PairingResponseDTO getMenuPairing(WineInputDTO wine) { | ||
PromptTemplate promptTemplate = new PromptTemplate("Crie um menu com entrada, prato principal e sobremesa que harmonize com o vinho {wine}?"); | ||
log.info("getMenuPairing :: Buscando menu harmonizado para o vinho: {}", wine); | ||
promptTemplate.add("wine", wine); | ||
String result = openAiChatClient.call(promptTemplate.create()).getResult().getOutput().getContent(); | ||
log.info("getMenuPairing :: Menu harmonizado: {}", result); | ||
return new PairingResponseDTO(result); | ||
} | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters