zyx 2 vuotta sitten
vanhempi
commit
0ae62ca3cb

+ 4 - 2
src/main/java/com/sxtvs/api/chatgpt/controller/ChatGptController.java

@@ -4,6 +4,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
 import com.sxtvs.api.chatgpt.dto.CompletionsParamsDto;
 import com.sxtvs.api.chatgpt.dto.CompletionsRequestDto;
 import com.sxtvs.api.chatgpt.dto.CompletionsResponseDto;
+import com.sxtvs.api.chatgpt.dto.GptResponse;
 import lombok.SneakyThrows;
 import org.apache.hc.client5.http.fluent.Request;
 import org.apache.hc.core5.http.ContentType;
@@ -28,9 +29,10 @@ public class ChatGptController {
                 .execute()
                 .returnContent()
                 .toString();
-        System.out.println(response);
+        var gptResponse = objectMapper.readValue(response, GptResponse.class);
         var completionsResponseDto = new CompletionsResponseDto();
-        completionsResponseDto.setResult(response);
+        var text = gptResponse.getChoices().stream().map(GptResponse.ChoicesDTO::getText).findFirst().orElse("");
+        completionsResponseDto.setResult(text);
         return completionsResponseDto;
     }
 

+ 49 - 0
src/main/java/com/sxtvs/api/chatgpt/dto/GptResponse.java

@@ -0,0 +1,49 @@
+package com.sxtvs.api.chatgpt.dto;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+@NoArgsConstructor
+@Data
+public class GptResponse {
+
+    @JsonProperty("id")
+    private String id;
+    @JsonProperty("object")
+    private String object;
+    @JsonProperty("created")
+    private Integer created;
+    @JsonProperty("model")
+    private String model;
+    @JsonProperty("choices")
+    private List<ChoicesDTO> choices;
+    @JsonProperty("usage")
+    private UsageDTO usage;
+
+    @NoArgsConstructor
+    @Data
+    public static class UsageDTO {
+        @JsonProperty("prompt_tokens")
+        private Integer promptTokens;
+        @JsonProperty("completion_tokens")
+        private Integer completionTokens;
+        @JsonProperty("total_tokens")
+        private Integer totalTokens;
+    }
+
+    @NoArgsConstructor
+    @Data
+    public static class ChoicesDTO {
+        @JsonProperty("text")
+        private String text;
+        @JsonProperty("index")
+        private Integer index;
+        @JsonProperty("logprobs")
+        private Object logprobs;
+        @JsonProperty("finish_reason")
+        private String finishReason;
+    }
+}