in sessions/fall24/books-genai-vertex-springai/src/main/java/services/utility/PromptUtility.java [86:113]
public static Message formatPromptBookAnalysis(Resource analysisUserMessage,
BookRequest bookRequest,
List<Map<String, Object>> bookPages,
List<String> keywords) {
// Check for an empty topics list
List<String> params = keywords.stream()
.filter(Objects::nonNull) // Filters out null values
.filter(k -> k instanceof String && !((String) k).isEmpty()) // Filters out empty strings
.collect(Collectors.toList());
if ( (params==null || params.isEmpty()) && bookPages.isEmpty()) {
return new UserMessage("Not information supplied to build a UserMessage. Missing data");
}
logger.info(params+"");
String context = "";
for(Map<String, Object> page: bookPages) {
context += page.get("page")+" ";
}
PromptTemplate userPromptTemplate = new PromptTemplate(analysisUserMessage);
return userPromptTemplate.createMessage(
Map.of("title", bookRequest.book(),
"author", bookRequest.author(),
"keywords", String.join(", ", params),
"pages", context));
}