askHermione/rephrase/summarize
This commit is contained in:
@@ -1,6 +1,37 @@
|
||||
package com.olympus.hermione.controllers;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.CrossOrigin;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import com.olympus.hermione.dto.CanvasExecutionInput;
|
||||
import com.olympus.hermione.dto.CanvasOutput;
|
||||
import com.olympus.hermione.services.CanvasExecutionService;
|
||||
|
||||
|
||||
@RestController
|
||||
@CrossOrigin
|
||||
public class CanvasController {
|
||||
|
||||
@Autowired
|
||||
CanvasExecutionService canvasExecutionService;
|
||||
|
||||
|
||||
@PostMapping("/askHermione")
|
||||
public CanvasOutput askHermione(@RequestBody CanvasExecutionInput canvasExecutionInput) {
|
||||
return canvasExecutionService.askHermione(canvasExecutionInput);
|
||||
}
|
||||
|
||||
@PostMapping("rephrase")
|
||||
public CanvasOutput rephraseText(@RequestBody CanvasExecutionInput canvasExecutionInput) {
|
||||
return canvasExecutionService.rephraseText(canvasExecutionInput);
|
||||
}
|
||||
|
||||
@PostMapping("summarize")
|
||||
public CanvasOutput summarizeText(@RequestBody CanvasExecutionInput canvasExecutionInput) {
|
||||
return canvasExecutionService.summarizeText(canvasExecutionInput);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
package com.olympus.hermione.dto;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
public class CanvasExecutionInput {
|
||||
private String input;
|
||||
}
|
||||
10
src/main/java/com/olympus/hermione/dto/CanvasOutput.java
Normal file
10
src/main/java/com/olympus/hermione/dto/CanvasOutput.java
Normal file
@@ -0,0 +1,10 @@
|
||||
package com.olympus.hermione.dto;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
public class CanvasOutput {
|
||||
private String stringOutput;
|
||||
}
|
||||
@@ -0,0 +1,86 @@
|
||||
package com.olympus.hermione.services;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.ai.chat.messages.Message;
|
||||
import org.springframework.ai.chat.messages.SystemMessage;
|
||||
import org.springframework.ai.chat.messages.UserMessage;
|
||||
import org.springframework.ai.chat.model.ChatModel;
|
||||
import org.springframework.ai.chat.model.Generation;
|
||||
import org.springframework.ai.chat.prompt.Prompt;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import com.olympus.hermione.dto.CanvasExecutionInput;
|
||||
import com.olympus.hermione.dto.CanvasOutput;
|
||||
|
||||
|
||||
@Service
|
||||
public class CanvasExecutionService {
|
||||
|
||||
@Autowired
|
||||
ChatModel chatModel;
|
||||
|
||||
private Logger logger = LoggerFactory.getLogger(CanvasExecutionService.class);
|
||||
|
||||
|
||||
public CanvasOutput askHermione(CanvasExecutionInput canvasExecutionInput){
|
||||
CanvasOutput canvasOutput = new CanvasOutput();
|
||||
String input = canvasExecutionInput.getInput();
|
||||
if(input != null){
|
||||
Message userMessage = new UserMessage(input);
|
||||
Message systemMessage = new SystemMessage("Please answer the question accurately.");
|
||||
Prompt prompt = new Prompt(List.of(userMessage,systemMessage));
|
||||
List<Generation> response = chatModel.call(prompt).getResults();
|
||||
|
||||
canvasOutput.setStringOutput(response.get(0).getOutput().getContent());
|
||||
return canvasOutput;
|
||||
} else{
|
||||
logger.error("Input is not correct");
|
||||
canvasOutput.setStringOutput(null);
|
||||
}
|
||||
return canvasOutput;
|
||||
|
||||
|
||||
}
|
||||
|
||||
public CanvasOutput rephraseText(CanvasExecutionInput canvasExecutionInput) {
|
||||
CanvasOutput canvasOutput = new CanvasOutput();
|
||||
String input = canvasExecutionInput.getInput();
|
||||
if(input != null){
|
||||
Message userMessage = new UserMessage(input);
|
||||
Message systemMessage = new SystemMessage("Please rephrase the following text: ");
|
||||
Prompt prompt = new Prompt(List.of(userMessage,systemMessage));
|
||||
List<Generation> response = chatModel.call(prompt).getResults();
|
||||
|
||||
canvasOutput.setStringOutput(response.get(0).getOutput().getContent());
|
||||
return canvasOutput;
|
||||
} else{
|
||||
logger.error("Input is not correct");
|
||||
canvasOutput.setStringOutput(null);
|
||||
}
|
||||
return canvasOutput;
|
||||
}
|
||||
|
||||
public CanvasOutput summarizeText(CanvasExecutionInput canvasExecutionInput) {
|
||||
CanvasOutput canvasOutput = new CanvasOutput();
|
||||
String input = canvasExecutionInput.getInput();
|
||||
if(input != null){
|
||||
Message userMessage = new UserMessage(input);
|
||||
Message systemMessage = new SystemMessage("Please summarize the following text: ");
|
||||
Prompt prompt = new Prompt(List.of(userMessage,systemMessage));
|
||||
List<Generation> response = chatModel.call(prompt).getResults();
|
||||
|
||||
canvasOutput.setStringOutput(response.get(0).getOutput().getContent());
|
||||
return canvasOutput;
|
||||
} else{
|
||||
logger.error("Input is not correct");
|
||||
canvasOutput.setStringOutput(null);
|
||||
}
|
||||
return canvasOutput;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user