본문 바로가기
Side Project

[Spring Boot] chatGPT를 활용한 AI 사이트 (5) - 기능 추가(광고 문구)

by jisayDeveloper 2023. 10. 25.
728x90
반응형
SMALL

자소서 기능만 있어서 추가로 광고문구 만드는 기능도 추가했습니다.

 

ChatGPTService

public String advertisementSearch(String query,String query2,String query3) {

        ChatGPTRequest chatGPTRequest = new ChatGPTRequest();
        chatGPTRequest.setPrompt(query + "에 대해서 광고 문구 만들고 싶어 종류나 장르는 "+query2+"이고 깔끔한 한줄짜리 광고 문구 만들어주고 강조할 부분은"+query3);
        chatGPTRequest.setMaxTokens(300);

        String url = OPEN_AI_URL;
        HttpPost post = new HttpPost(url);
        post.addHeader("Content-Type", "application/json");
        post.addHeader("Authorization", "Bearer " + OPEN_AI_KEY);

        Gson gson = new Gson();

        String body = gson.toJson(chatGPTRequest);
        log.info("body : " + body);

        try {
            final StringEntity entity = new StringEntity(body, "UTF-8");
            post.setEntity(entity);

            try (CloseableHttpClient httpClient = HttpClients.custom().build();
                 CloseableHttpResponse response = httpClient.execute(post)) {

                String responseBody = EntityUtils.toString(response.getEntity());

                log.info("responseBody = " + responseBody);

                ChatGPTResponse chatGPTResponse = gson.fromJson(responseBody, ChatGPTResponse.class);
                return chatGPTResponse.getChoices().get(0).getText();

            } catch (Exception e) {
                return "faileddd";
            }
        } catch (Exception e) {
            return "failed2";
        }
    }

조건을 setPrompt에 담아서 요청을 보내고 응답을 받아 출력합니다.

 

ChatGPTRestController

@GetMapping("/advertisementChatGPT")
    public String blogChatGPT() {
        return "gpt/advertisement";
    }
    
@PostMapping("/advertisementChatGPT")
    public String blogChatGPT(@RequestParam("query") String query,
                              @RequestParam("query2") String query2,
                              @RequestParam("query3") String query3, Model model) {

        log.info("blogChatGPT Started query: " + query);


        String result = chatGPTService.advertisementSearch(query,query2,query3);


        model.addAttribute("query", query);
        model.addAttribute("result", result);

        return "gpt/advertisement";
    }

각 조건들을 받아와서 advertisementSearch(query,query2,query3); 메서드를 실행하고 결과값을 model에 담습니다.

 

view

조건을 입력받을 화면이고 여기에 조건들을 입력하여 controller에 바인딩 합니다.

이렇게 광고 문구를 만들어 주고 조건에 따라 다양하게 만들어 줍니다.

728x90
반응형
LIST