public static Message formatPromptBookAnalysis()

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));
    }