From e1502d4b6ddca5937d852519dbed13e1ae73e4fd Mon Sep 17 00:00:00 2001 From: YunChan-Oh Date: Tue, 19 Nov 2024 08:46:05 +0900 Subject: [PATCH 01/22] refactor(ai): AiAllMessagesResponse MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 사용하지 않는 값들을 삭제했습니다. --- .../service/dto/response/gpt/AiAllMessagesResponse.java | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/space/server/domain/ai/service/dto/response/gpt/AiAllMessagesResponse.java b/src/main/java/com/space/server/domain/ai/service/dto/response/gpt/AiAllMessagesResponse.java index aca28bf0..7fcee40f 100644 --- a/src/main/java/com/space/server/domain/ai/service/dto/response/gpt/AiAllMessagesResponse.java +++ b/src/main/java/com/space/server/domain/ai/service/dto/response/gpt/AiAllMessagesResponse.java @@ -1,11 +1,8 @@ package com.space.server.domain.ai.service.dto.response.gpt; -import java.util.List; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +@JsonIgnoreProperties(ignoreUnknown = true) public record AiAllMessagesResponse( - String object, - List data, - String first_id, - String last_id, - Boolean has_more + String first_id ) {} From 363296e298c9aa965cfaffdca944098776986d59 Mon Sep 17 00:00:00 2001 From: YunChan-Oh Date: Tue, 19 Nov 2024 08:46:20 +0900 Subject: [PATCH 02/22] refactor(ai): AiMessagesResponses MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 사용하지 않는 값들을 삭제했습니다. --- .../dto/response/gpt/AiMessagesResponse.java | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/space/server/domain/ai/service/dto/response/gpt/AiMessagesResponse.java b/src/main/java/com/space/server/domain/ai/service/dto/response/gpt/AiMessagesResponse.java index 710f9352..bfa1fbf7 100644 --- a/src/main/java/com/space/server/domain/ai/service/dto/response/gpt/AiMessagesResponse.java +++ b/src/main/java/com/space/server/domain/ai/service/dto/response/gpt/AiMessagesResponse.java @@ -1,17 +1,11 @@ package com.space.server.domain.ai.service.dto.response.gpt; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; + import java.util.List; import java.util.Map; +@JsonIgnoreProperties(ignoreUnknown = true) public record AiMessagesResponse( - String id, - String object, - Long created_at, - String assistant_id, - String thread_id, - String run_id, - String role, - List content, - List attachments, - Map metadata + List content ) {} From f71141e1c77ff92f0f25ab7ccae51af47e3c9bac Mon Sep 17 00:00:00 2001 From: YunChan-Oh Date: Tue, 19 Nov 2024 08:46:35 +0900 Subject: [PATCH 03/22] refactor(ai): AiResponse MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 사용하지 않는 값들을 삭제했습니다. --- .../space/server/domain/ai/service/dto/response/AiResponse.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/com/space/server/domain/ai/service/dto/response/AiResponse.java b/src/main/java/com/space/server/domain/ai/service/dto/response/AiResponse.java index 2f121c1a..9462fb1a 100644 --- a/src/main/java/com/space/server/domain/ai/service/dto/response/AiResponse.java +++ b/src/main/java/com/space/server/domain/ai/service/dto/response/AiResponse.java @@ -1,6 +1,5 @@ package com.space.server.domain.ai.service.dto.response; -import java.util.Map; public record AiResponse ( Boolean isSuccess, From 1c9ff6028b76975c1a9cd86d5a5de1ff88a8a636 Mon Sep 17 00:00:00 2001 From: YunChan-Oh Date: Tue, 19 Nov 2024 08:46:47 +0900 Subject: [PATCH 04/22] refactor(ai): AiRunsResponse MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 사용하지 않는 값들을 삭제했습니다. --- .../dto/response/gpt/AiRunsResponse.java | 34 ++----------------- 1 file changed, 3 insertions(+), 31 deletions(-) diff --git a/src/main/java/com/space/server/domain/ai/service/dto/response/gpt/AiRunsResponse.java b/src/main/java/com/space/server/domain/ai/service/dto/response/gpt/AiRunsResponse.java index 39e5c5a4..c5b4470d 100644 --- a/src/main/java/com/space/server/domain/ai/service/dto/response/gpt/AiRunsResponse.java +++ b/src/main/java/com/space/server/domain/ai/service/dto/response/gpt/AiRunsResponse.java @@ -1,37 +1,9 @@ package com.space.server.domain.ai.service.dto.response.gpt; -import com.space.server.domain.ai.service.dto.response.gpt.tools.FileSearchTool; - -import java.util.List; -import java.util.Map; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +@JsonIgnoreProperties(ignoreUnknown = true) public record AiRunsResponse( String id, - String object, - Long created_at, - String assistant_id, - String thread_id, - String status, - Map>> required_action, - Long started_at, - Long expires_at, - Long cancelled_at, - Long failed_at, - Long completed_at, - Map last_error, - String model, - String instructions, - List incomplete_details, - List tools, - ToolResources tool_resources, - Map metadata, - Map usage, - Double temperature, - Double top_p, - Long max_prompt_tokens, - Long max_completion_tokens, - TruncationStrategy truncation_strategy, - String response_format, - String tool_choice, - Boolean parallel_tool_calls + String status ) {} From 7f8406bbbe72c411f4f3d263619007c433d381e4 Mon Sep 17 00:00:00 2001 From: YunChan-Oh Date: Tue, 19 Nov 2024 08:46:59 +0900 Subject: [PATCH 05/22] refactor(ai): AiThreadResponse MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 사용하지 않는 값들을 삭제했습니다. --- .../ai/service/dto/response/gpt/AiThreadResponse.java | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/space/server/domain/ai/service/dto/response/gpt/AiThreadResponse.java b/src/main/java/com/space/server/domain/ai/service/dto/response/gpt/AiThreadResponse.java index cee2b014..b40de0ba 100644 --- a/src/main/java/com/space/server/domain/ai/service/dto/response/gpt/AiThreadResponse.java +++ b/src/main/java/com/space/server/domain/ai/service/dto/response/gpt/AiThreadResponse.java @@ -1,11 +1,8 @@ package com.space.server.domain.ai.service.dto.response.gpt; -import java.util.Map; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +@JsonIgnoreProperties(ignoreUnknown = true) public record AiThreadResponse( - String id, - String object, - Long created_at, - Map metadata, - ToolResources tool_resources + String id ) {} From 72943f0fa28d8b5af0bbc24d1311e1c6c2a416ce Mon Sep 17 00:00:00 2001 From: YunChan-Oh Date: Tue, 19 Nov 2024 08:47:16 +0900 Subject: [PATCH 06/22] refactor(ai): MessagesContent MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 사용하지 않는 값들을 삭제했습니다. --- .../domain/ai/service/dto/response/gpt/MessagesContent.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/space/server/domain/ai/service/dto/response/gpt/MessagesContent.java b/src/main/java/com/space/server/domain/ai/service/dto/response/gpt/MessagesContent.java index 4443e99b..890be7ba 100644 --- a/src/main/java/com/space/server/domain/ai/service/dto/response/gpt/MessagesContent.java +++ b/src/main/java/com/space/server/domain/ai/service/dto/response/gpt/MessagesContent.java @@ -1,6 +1,8 @@ package com.space.server.domain.ai.service.dto.response.gpt; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; + +@JsonIgnoreProperties(ignoreUnknown = true) public record MessagesContent( - String type, MessagesText text ) {} From 5afb85ecbd18d5d6286aa7ee4821c6ae7b741e8a Mon Sep 17 00:00:00 2001 From: YunChan-Oh Date: Tue, 19 Nov 2024 08:47:28 +0900 Subject: [PATCH 07/22] refactor(ai): MessagesText MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 사용하지 않는 값들을 삭제했습니다. --- .../domain/ai/service/dto/response/gpt/MessagesText.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/space/server/domain/ai/service/dto/response/gpt/MessagesText.java b/src/main/java/com/space/server/domain/ai/service/dto/response/gpt/MessagesText.java index 8e732d1c..abd56bd5 100644 --- a/src/main/java/com/space/server/domain/ai/service/dto/response/gpt/MessagesText.java +++ b/src/main/java/com/space/server/domain/ai/service/dto/response/gpt/MessagesText.java @@ -1,8 +1,8 @@ package com.space.server.domain.ai.service.dto.response.gpt; -import java.util.List; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +@JsonIgnoreProperties(ignoreUnknown = true) public record MessagesText( - String value, - List annotations + String value ) {} From 3d9420df9ddf8f92aa8cc890b6eeadc630f2c87c Mon Sep 17 00:00:00 2001 From: YunChan-Oh Date: Tue, 19 Nov 2024 08:49:54 +0900 Subject: [PATCH 08/22] remove(ai): AiAssistantsRequest MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 사용하지 않는 값들을 삭제했습니다. --- .../dto/request/gpt/AiAssistantsRequest.java | 15 --------------- 1 file changed, 15 deletions(-) delete mode 100644 src/main/java/com/space/server/domain/ai/service/dto/request/gpt/AiAssistantsRequest.java diff --git a/src/main/java/com/space/server/domain/ai/service/dto/request/gpt/AiAssistantsRequest.java b/src/main/java/com/space/server/domain/ai/service/dto/request/gpt/AiAssistantsRequest.java deleted file mode 100644 index d77d7b9c..00000000 --- a/src/main/java/com/space/server/domain/ai/service/dto/request/gpt/AiAssistantsRequest.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.space.server.domain.ai.service.dto.request.gpt; - -import java.util.List; -import java.util.Map; - -public record AiAssistantsRequest( - String instructions, - String name, - List> tools, - String model -) { - public AiAssistantsRequest toEntity(String instructions, String name, List> tools, String model) { - return new AiAssistantsRequest(instructions, name, tools, model); - } -} From 9868f4f7b85361fd10ba14d42e117c780bfce890 Mon Sep 17 00:00:00 2001 From: YunChan-Oh Date: Tue, 19 Nov 2024 08:50:06 +0900 Subject: [PATCH 09/22] remove(ai): FileSearch MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 사용하지 않는 값들을 삭제했습니다. --- .../ai/service/dto/response/gpt/tools/FileSearch.java | 8 -------- 1 file changed, 8 deletions(-) delete mode 100644 src/main/java/com/space/server/domain/ai/service/dto/response/gpt/tools/FileSearch.java diff --git a/src/main/java/com/space/server/domain/ai/service/dto/response/gpt/tools/FileSearch.java b/src/main/java/com/space/server/domain/ai/service/dto/response/gpt/tools/FileSearch.java deleted file mode 100644 index 6c014064..00000000 --- a/src/main/java/com/space/server/domain/ai/service/dto/response/gpt/tools/FileSearch.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.space.server.domain.ai.service.dto.response.gpt.tools; - -import java.util.Map; - -public record FileSearch( - Long max_num_results, - Map ranking_options -) {} From a393fae431b2f3d5e7a6af31ce03739f35d8c750 Mon Sep 17 00:00:00 2001 From: YunChan-Oh Date: Tue, 19 Nov 2024 08:50:18 +0900 Subject: [PATCH 10/22] remove(ai): FileSearchTool MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 사용하지 않는 값들을 삭제했습니다. --- .../ai/service/dto/response/gpt/tools/FileSearchTool.java | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 src/main/java/com/space/server/domain/ai/service/dto/response/gpt/tools/FileSearchTool.java diff --git a/src/main/java/com/space/server/domain/ai/service/dto/response/gpt/tools/FileSearchTool.java b/src/main/java/com/space/server/domain/ai/service/dto/response/gpt/tools/FileSearchTool.java deleted file mode 100644 index 20ca1f18..00000000 --- a/src/main/java/com/space/server/domain/ai/service/dto/response/gpt/tools/FileSearchTool.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.space.server.domain.ai.service.dto.response.gpt.tools; - -public record FileSearchTool( - String type, - FileSearch file_search -) {} From 2357c3c2417bcc6e4d139ca9eab877c8856fecb9 Mon Sep 17 00:00:00 2001 From: YunChan-Oh Date: Tue, 19 Nov 2024 08:50:28 +0900 Subject: [PATCH 11/22] remove(ai): ToolResources MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 사용하지 않는 값들을 삭제했습니다. --- .../ai/service/dto/response/gpt/ToolResources.java | 9 --------- 1 file changed, 9 deletions(-) delete mode 100644 src/main/java/com/space/server/domain/ai/service/dto/response/gpt/ToolResources.java diff --git a/src/main/java/com/space/server/domain/ai/service/dto/response/gpt/ToolResources.java b/src/main/java/com/space/server/domain/ai/service/dto/response/gpt/ToolResources.java deleted file mode 100644 index dbf638a4..00000000 --- a/src/main/java/com/space/server/domain/ai/service/dto/response/gpt/ToolResources.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.space.server.domain.ai.service.dto.response.gpt; - -import java.util.List; -import java.util.Map; - -public record ToolResources( - Map code_interpreter, - Map file_search -) {} From 561e62572973f3c0a2af2fece8850c614647c884 Mon Sep 17 00:00:00 2001 From: YunChan-Oh Date: Tue, 19 Nov 2024 08:50:44 +0900 Subject: [PATCH 12/22] remove(ai): TruncationStrategy MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 사용하지 않는 값들을 삭제했습니다. --- .../ai/service/dto/response/gpt/TruncationStrategy.java | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 src/main/java/com/space/server/domain/ai/service/dto/response/gpt/TruncationStrategy.java diff --git a/src/main/java/com/space/server/domain/ai/service/dto/response/gpt/TruncationStrategy.java b/src/main/java/com/space/server/domain/ai/service/dto/response/gpt/TruncationStrategy.java deleted file mode 100644 index 31786ba9..00000000 --- a/src/main/java/com/space/server/domain/ai/service/dto/response/gpt/TruncationStrategy.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.space.server.domain.ai.service.dto.response.gpt; - -public record TruncationStrategy( - String type, - String last_messages -) {} From 94290bfafb355d075a43f8746bc1e8975b12256f Mon Sep 17 00:00:00 2001 From: YunChan-Oh Date: Tue, 19 Nov 2024 09:02:32 +0900 Subject: [PATCH 13/22] rename(ai): response gpt package MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit gpt 패키지명을 internal로 변경했습니다. --- .../response/{gpt => internal}/AiAllMessagesResponse.java | 2 +- .../response/{gpt => internal}/AiMessagesResponse.java | 3 +-- .../dto/response/{gpt => internal}/AiRunsResponse.java | 2 +- .../dto/response/{gpt => internal}/AiThreadResponse.java | 2 +- .../dto/response/{gpt => internal}/MessagesContent.java | 2 +- .../dto/response/{gpt => internal}/MessagesText.java | 2 +- .../domain/ai/service/implementation/ChatCompleter.java | 8 ++++---- .../server/domain/chat/service/CommandChatService.java | 8 ++++---- 8 files changed, 14 insertions(+), 15 deletions(-) rename src/main/java/com/space/server/domain/ai/service/dto/response/{gpt => internal}/AiAllMessagesResponse.java (72%) rename src/main/java/com/space/server/domain/ai/service/dto/response/{gpt => internal}/AiMessagesResponse.java (71%) rename src/main/java/com/space/server/domain/ai/service/dto/response/{gpt => internal}/AiRunsResponse.java (72%) rename src/main/java/com/space/server/domain/ai/service/dto/response/{gpt => internal}/AiThreadResponse.java (70%) rename src/main/java/com/space/server/domain/ai/service/dto/response/{gpt => internal}/MessagesContent.java (71%) rename src/main/java/com/space/server/domain/ai/service/dto/response/{gpt => internal}/MessagesText.java (70%) diff --git a/src/main/java/com/space/server/domain/ai/service/dto/response/gpt/AiAllMessagesResponse.java b/src/main/java/com/space/server/domain/ai/service/dto/response/internal/AiAllMessagesResponse.java similarity index 72% rename from src/main/java/com/space/server/domain/ai/service/dto/response/gpt/AiAllMessagesResponse.java rename to src/main/java/com/space/server/domain/ai/service/dto/response/internal/AiAllMessagesResponse.java index 7fcee40f..3d833d1b 100644 --- a/src/main/java/com/space/server/domain/ai/service/dto/response/gpt/AiAllMessagesResponse.java +++ b/src/main/java/com/space/server/domain/ai/service/dto/response/internal/AiAllMessagesResponse.java @@ -1,4 +1,4 @@ -package com.space.server.domain.ai.service.dto.response.gpt; +package com.space.server.domain.ai.service.dto.response.internal; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; diff --git a/src/main/java/com/space/server/domain/ai/service/dto/response/gpt/AiMessagesResponse.java b/src/main/java/com/space/server/domain/ai/service/dto/response/internal/AiMessagesResponse.java similarity index 71% rename from src/main/java/com/space/server/domain/ai/service/dto/response/gpt/AiMessagesResponse.java rename to src/main/java/com/space/server/domain/ai/service/dto/response/internal/AiMessagesResponse.java index bfa1fbf7..379739c3 100644 --- a/src/main/java/com/space/server/domain/ai/service/dto/response/gpt/AiMessagesResponse.java +++ b/src/main/java/com/space/server/domain/ai/service/dto/response/internal/AiMessagesResponse.java @@ -1,9 +1,8 @@ -package com.space.server.domain.ai.service.dto.response.gpt; +package com.space.server.domain.ai.service.dto.response.internal; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import java.util.List; -import java.util.Map; @JsonIgnoreProperties(ignoreUnknown = true) public record AiMessagesResponse( diff --git a/src/main/java/com/space/server/domain/ai/service/dto/response/gpt/AiRunsResponse.java b/src/main/java/com/space/server/domain/ai/service/dto/response/internal/AiRunsResponse.java similarity index 72% rename from src/main/java/com/space/server/domain/ai/service/dto/response/gpt/AiRunsResponse.java rename to src/main/java/com/space/server/domain/ai/service/dto/response/internal/AiRunsResponse.java index c5b4470d..d5331242 100644 --- a/src/main/java/com/space/server/domain/ai/service/dto/response/gpt/AiRunsResponse.java +++ b/src/main/java/com/space/server/domain/ai/service/dto/response/internal/AiRunsResponse.java @@ -1,4 +1,4 @@ -package com.space.server.domain.ai.service.dto.response.gpt; +package com.space.server.domain.ai.service.dto.response.internal; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; diff --git a/src/main/java/com/space/server/domain/ai/service/dto/response/gpt/AiThreadResponse.java b/src/main/java/com/space/server/domain/ai/service/dto/response/internal/AiThreadResponse.java similarity index 70% rename from src/main/java/com/space/server/domain/ai/service/dto/response/gpt/AiThreadResponse.java rename to src/main/java/com/space/server/domain/ai/service/dto/response/internal/AiThreadResponse.java index b40de0ba..29e5b1ce 100644 --- a/src/main/java/com/space/server/domain/ai/service/dto/response/gpt/AiThreadResponse.java +++ b/src/main/java/com/space/server/domain/ai/service/dto/response/internal/AiThreadResponse.java @@ -1,4 +1,4 @@ -package com.space.server.domain.ai.service.dto.response.gpt; +package com.space.server.domain.ai.service.dto.response.internal; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; diff --git a/src/main/java/com/space/server/domain/ai/service/dto/response/gpt/MessagesContent.java b/src/main/java/com/space/server/domain/ai/service/dto/response/internal/MessagesContent.java similarity index 71% rename from src/main/java/com/space/server/domain/ai/service/dto/response/gpt/MessagesContent.java rename to src/main/java/com/space/server/domain/ai/service/dto/response/internal/MessagesContent.java index 890be7ba..ed8cb0f8 100644 --- a/src/main/java/com/space/server/domain/ai/service/dto/response/gpt/MessagesContent.java +++ b/src/main/java/com/space/server/domain/ai/service/dto/response/internal/MessagesContent.java @@ -1,4 +1,4 @@ -package com.space.server.domain.ai.service.dto.response.gpt; +package com.space.server.domain.ai.service.dto.response.internal; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; diff --git a/src/main/java/com/space/server/domain/ai/service/dto/response/gpt/MessagesText.java b/src/main/java/com/space/server/domain/ai/service/dto/response/internal/MessagesText.java similarity index 70% rename from src/main/java/com/space/server/domain/ai/service/dto/response/gpt/MessagesText.java rename to src/main/java/com/space/server/domain/ai/service/dto/response/internal/MessagesText.java index abd56bd5..5cb54695 100644 --- a/src/main/java/com/space/server/domain/ai/service/dto/response/gpt/MessagesText.java +++ b/src/main/java/com/space/server/domain/ai/service/dto/response/internal/MessagesText.java @@ -1,4 +1,4 @@ -package com.space.server.domain.ai.service.dto.response.gpt; +package com.space.server.domain.ai.service.dto.response.internal; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; diff --git a/src/main/java/com/space/server/domain/ai/service/implementation/ChatCompleter.java b/src/main/java/com/space/server/domain/ai/service/implementation/ChatCompleter.java index d369aa0a..bf5a9920 100644 --- a/src/main/java/com/space/server/domain/ai/service/implementation/ChatCompleter.java +++ b/src/main/java/com/space/server/domain/ai/service/implementation/ChatCompleter.java @@ -4,10 +4,10 @@ import com.space.server.domain.ai.service.dto.request.gpt.AiChat; import com.space.server.domain.ai.service.dto.request.gpt.AiRunsRequest; import com.space.server.domain.ai.service.dto.request.gpt.AiThreadRequest; -import com.space.server.domain.ai.service.dto.response.gpt.AiAllMessagesResponse; -import com.space.server.domain.ai.service.dto.response.gpt.AiMessagesResponse; -import com.space.server.domain.ai.service.dto.response.gpt.AiRunsResponse; -import com.space.server.domain.ai.service.dto.response.gpt.AiThreadResponse; +import com.space.server.domain.ai.service.dto.response.internal.AiAllMessagesResponse; +import com.space.server.domain.ai.service.dto.response.internal.AiMessagesResponse; +import com.space.server.domain.ai.service.dto.response.internal.AiRunsResponse; +import com.space.server.domain.ai.service.dto.response.internal.AiThreadResponse; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; import org.springframework.http.HttpEntity; diff --git a/src/main/java/com/space/server/domain/chat/service/CommandChatService.java b/src/main/java/com/space/server/domain/chat/service/CommandChatService.java index 91268c39..7682e240 100644 --- a/src/main/java/com/space/server/domain/chat/service/CommandChatService.java +++ b/src/main/java/com/space/server/domain/chat/service/CommandChatService.java @@ -2,10 +2,10 @@ import com.space.server.domain.ai.service.dto.request.gpt.AiChat; import com.space.server.domain.ai.service.dto.response.AiResponse; -import com.space.server.domain.ai.service.dto.response.gpt.AiAllMessagesResponse; -import com.space.server.domain.ai.service.dto.response.gpt.AiMessagesResponse; -import com.space.server.domain.ai.service.dto.response.gpt.AiRunsResponse; -import com.space.server.domain.ai.service.dto.response.gpt.AiThreadResponse; +import com.space.server.domain.ai.service.dto.response.internal.AiAllMessagesResponse; +import com.space.server.domain.ai.service.dto.response.internal.AiMessagesResponse; +import com.space.server.domain.ai.service.dto.response.internal.AiRunsResponse; +import com.space.server.domain.ai.service.dto.response.internal.AiThreadResponse; import com.space.server.domain.ai.service.implementation.ChatCompleter; import com.space.server.domain.ai.service.implementation.PromptCreator; import com.space.server.domain.chat.domain.Chat; From a6380cbb38845d381723d872948b231596d4bfff Mon Sep 17 00:00:00 2001 From: YunChan-Oh Date: Tue, 19 Nov 2024 09:03:11 +0900 Subject: [PATCH 14/22] rename(ai): request gpt package MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit gpt 패키지명을 internal로 변경했습니다. --- .../domain/ai/service/dto/request/gpt/AiRunsRequest.java | 5 ----- .../ai/service/dto/request/{gpt => internal}/AiChat.java | 2 +- .../ai/service/dto/request/internal/AiRunsRequest.java | 5 +++++ .../dto/request/{gpt => internal}/AiThreadRequest.java | 2 +- .../domain/ai/service/implementation/ChatCompleter.java | 6 +++--- .../server/domain/chat/service/CommandChatService.java | 2 +- 6 files changed, 11 insertions(+), 11 deletions(-) delete mode 100644 src/main/java/com/space/server/domain/ai/service/dto/request/gpt/AiRunsRequest.java rename src/main/java/com/space/server/domain/ai/service/dto/request/{gpt => internal}/AiChat.java (50%) create mode 100644 src/main/java/com/space/server/domain/ai/service/dto/request/internal/AiRunsRequest.java rename src/main/java/com/space/server/domain/ai/service/dto/request/{gpt => internal}/AiThreadRequest.java (57%) diff --git a/src/main/java/com/space/server/domain/ai/service/dto/request/gpt/AiRunsRequest.java b/src/main/java/com/space/server/domain/ai/service/dto/request/gpt/AiRunsRequest.java deleted file mode 100644 index 1e98532b..00000000 --- a/src/main/java/com/space/server/domain/ai/service/dto/request/gpt/AiRunsRequest.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.space.server.domain.ai.service.dto.request.gpt; - -public record AiRunsRequest( - String assistant_id -) {} diff --git a/src/main/java/com/space/server/domain/ai/service/dto/request/gpt/AiChat.java b/src/main/java/com/space/server/domain/ai/service/dto/request/internal/AiChat.java similarity index 50% rename from src/main/java/com/space/server/domain/ai/service/dto/request/gpt/AiChat.java rename to src/main/java/com/space/server/domain/ai/service/dto/request/internal/AiChat.java index db7573f2..65ea79a4 100644 --- a/src/main/java/com/space/server/domain/ai/service/dto/request/gpt/AiChat.java +++ b/src/main/java/com/space/server/domain/ai/service/dto/request/internal/AiChat.java @@ -1,4 +1,4 @@ -package com.space.server.domain.ai.service.dto.request.gpt; +package com.space.server.domain.ai.service.dto.request.internal; public record AiChat ( String role, diff --git a/src/main/java/com/space/server/domain/ai/service/dto/request/internal/AiRunsRequest.java b/src/main/java/com/space/server/domain/ai/service/dto/request/internal/AiRunsRequest.java new file mode 100644 index 00000000..6dda4bfe --- /dev/null +++ b/src/main/java/com/space/server/domain/ai/service/dto/request/internal/AiRunsRequest.java @@ -0,0 +1,5 @@ +package com.space.server.domain.ai.service.dto.request.internal; + +public record AiRunsRequest( + String assistant_id +) {} diff --git a/src/main/java/com/space/server/domain/ai/service/dto/request/gpt/AiThreadRequest.java b/src/main/java/com/space/server/domain/ai/service/dto/request/internal/AiThreadRequest.java similarity index 57% rename from src/main/java/com/space/server/domain/ai/service/dto/request/gpt/AiThreadRequest.java rename to src/main/java/com/space/server/domain/ai/service/dto/request/internal/AiThreadRequest.java index f9366534..39555875 100644 --- a/src/main/java/com/space/server/domain/ai/service/dto/request/gpt/AiThreadRequest.java +++ b/src/main/java/com/space/server/domain/ai/service/dto/request/internal/AiThreadRequest.java @@ -1,4 +1,4 @@ -package com.space.server.domain.ai.service.dto.request.gpt; +package com.space.server.domain.ai.service.dto.request.internal; import java.util.List; diff --git a/src/main/java/com/space/server/domain/ai/service/implementation/ChatCompleter.java b/src/main/java/com/space/server/domain/ai/service/implementation/ChatCompleter.java index bf5a9920..d138653f 100644 --- a/src/main/java/com/space/server/domain/ai/service/implementation/ChatCompleter.java +++ b/src/main/java/com/space/server/domain/ai/service/implementation/ChatCompleter.java @@ -1,9 +1,9 @@ package com.space.server.domain.ai.service.implementation; import com.fasterxml.jackson.databind.ObjectMapper; -import com.space.server.domain.ai.service.dto.request.gpt.AiChat; -import com.space.server.domain.ai.service.dto.request.gpt.AiRunsRequest; -import com.space.server.domain.ai.service.dto.request.gpt.AiThreadRequest; +import com.space.server.domain.ai.service.dto.request.internal.AiChat; +import com.space.server.domain.ai.service.dto.request.internal.AiRunsRequest; +import com.space.server.domain.ai.service.dto.request.internal.AiThreadRequest; import com.space.server.domain.ai.service.dto.response.internal.AiAllMessagesResponse; import com.space.server.domain.ai.service.dto.response.internal.AiMessagesResponse; import com.space.server.domain.ai.service.dto.response.internal.AiRunsResponse; diff --git a/src/main/java/com/space/server/domain/chat/service/CommandChatService.java b/src/main/java/com/space/server/domain/chat/service/CommandChatService.java index 7682e240..a13817db 100644 --- a/src/main/java/com/space/server/domain/chat/service/CommandChatService.java +++ b/src/main/java/com/space/server/domain/chat/service/CommandChatService.java @@ -1,6 +1,6 @@ package com.space.server.domain.chat.service; -import com.space.server.domain.ai.service.dto.request.gpt.AiChat; +import com.space.server.domain.ai.service.dto.request.internal.AiChat; import com.space.server.domain.ai.service.dto.response.AiResponse; import com.space.server.domain.ai.service.dto.response.internal.AiAllMessagesResponse; import com.space.server.domain.ai.service.dto.response.internal.AiMessagesResponse; From 07dc1f60fc204e56373af512367ef0e41aa96f77 Mon Sep 17 00:00:00 2001 From: YunChan-Oh Date: Tue, 19 Nov 2024 11:34:30 +0900 Subject: [PATCH 15/22] feat(ai): build.gradle MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit openfeign 디펜던시를 추가했습니다. --- build.gradle | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/build.gradle b/build.gradle index 2b2b7299..55ef8461 100644 --- a/build.gradle +++ b/build.gradle @@ -36,6 +36,16 @@ sourceSets { } } +ext { + set('springCloudVersion', "2023.0.1") +} + +dependencyManagement { + imports { + mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}" + } +} + dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-validation' @@ -45,15 +55,20 @@ dependencies { implementation 'org.springframework.boot:spring-boot-starter-oauth2-client' implementation 'org.springframework.boot:spring-boot-starter-mail' implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' + implementation 'io.jsonwebtoken:jjwt-api:0.12.3' implementation 'io.jsonwebtoken:jjwt-impl:0.12.3' implementation 'io.jsonwebtoken:jjwt-jackson:0.12.3' + implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.4.0' + compileOnly 'org.projectlombok:lombok' + runtimeOnly 'org.postgresql:postgresql' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' testRuntimeOnly 'org.junit.platform:junit-platform-launcher' implementation 'com.googlecode.json-simple:json-simple:1.1.1' implementation 'org.springframework.boot:spring-boot-starter-aop' + implementation 'org.springframework.cloud:spring-cloud-starter-openfeign' } From 98673f06b3a3daf5f73f28a8ce0118514e609996 Mon Sep 17 00:00:00 2001 From: YunChan-Oh Date: Tue, 19 Nov 2024 11:36:08 +0900 Subject: [PATCH 16/22] feat(ai): OpenAiFeignClient MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit OpenAi를 위한 FeignClient를 설정했습니다. --- .../ai/infra/feign/OpenAiFeignClient.java | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 src/main/java/com/space/server/domain/ai/infra/feign/OpenAiFeignClient.java diff --git a/src/main/java/com/space/server/domain/ai/infra/feign/OpenAiFeignClient.java b/src/main/java/com/space/server/domain/ai/infra/feign/OpenAiFeignClient.java new file mode 100644 index 00000000..f0d821b6 --- /dev/null +++ b/src/main/java/com/space/server/domain/ai/infra/feign/OpenAiFeignClient.java @@ -0,0 +1,44 @@ +package com.space.server.domain.ai.infra.feign; + +import com.space.server.common.config.OpenAiFeignConfig; +import com.space.server.domain.ai.service.dto.request.internal.AiChat; +import com.space.server.domain.ai.service.dto.request.internal.AiRunsRequest; +import com.space.server.domain.ai.service.dto.response.internal.AiAllMessagesResponse; +import com.space.server.domain.ai.service.dto.response.internal.AiMessagesResponse; +import com.space.server.domain.ai.service.dto.response.internal.AiRunsResponse; +import com.space.server.domain.ai.service.dto.response.internal.AiThreadResponse; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +@FeignClient( + name = "OpenAiFeign", + url = "https://api.openai.com/v1/threads", + configuration = OpenAiFeignConfig.class +) +public interface OpenAiFeignClient { + + @PostMapping + AiThreadResponse createThread(); + + @PostMapping("/{threadId}/messages") + AiMessagesResponse createMessage(@PathVariable("threadId") String threadId, + @RequestBody AiChat aiChat); + + @GetMapping("/{threadId}/messages") + AiAllMessagesResponse getAllMessages(@PathVariable("threadId") String threadId); + + @GetMapping("/{threadId}/messages/{messageId}") + AiMessagesResponse getMessage(@PathVariable("threadId") String threadId, + @PathVariable("messageId") String messageId); + + @PostMapping("/{threadId}/runs") + AiRunsResponse createRun(@PathVariable("threadId") String threadId, + @RequestBody AiRunsRequest request); + + @GetMapping("/{threadId}/runs/{runId}") + AiRunsResponse getRun(@PathVariable("threadId") String threadId, + @PathVariable("runId") String runId); +} \ No newline at end of file From 4f6b08daffdd4c070ed8a7eeaf9710181d3d90ad Mon Sep 17 00:00:00 2001 From: YunChan-Oh Date: Tue, 19 Nov 2024 11:37:02 +0900 Subject: [PATCH 17/22] feat(ai): OpenAiFeignConfig MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit OpenAi를 위한 FeignConfig를 설정했습니다. --- .../common/config/OpenAiFeignConfig.java | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 src/main/java/com/space/server/common/config/OpenAiFeignConfig.java diff --git a/src/main/java/com/space/server/common/config/OpenAiFeignConfig.java b/src/main/java/com/space/server/common/config/OpenAiFeignConfig.java new file mode 100644 index 00000000..14aecffa --- /dev/null +++ b/src/main/java/com/space/server/common/config/OpenAiFeignConfig.java @@ -0,0 +1,23 @@ +package com.space.server.common.config; + +import feign.RequestInterceptor; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.cloud.openfeign.EnableFeignClients; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +@EnableFeignClients +public class OpenAiFeignConfig { + @Value("${gpt.api.key}") + private String apiKey; + + @Bean + public RequestInterceptor requestInterceptor() { + return requestTemplate -> { + requestTemplate.header("Content-Type", "application/json"); + requestTemplate.header("Authorization", "Bearer " + apiKey); + requestTemplate.header("OpenAI-Beta", "assistants=v2"); + }; + } +} From 02b624e803e5eb827dd475eb118f6d0cd8760fcd Mon Sep 17 00:00:00 2001 From: YunChan-Oh Date: Thu, 16 Jan 2025 07:45:03 +0900 Subject: [PATCH 18/22] feat(chat): MessageCreator --- .../domain/ai/service/implementation/MessageCreator.java | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 src/main/java/com/space/server/domain/ai/service/implementation/MessageCreator.java diff --git a/src/main/java/com/space/server/domain/ai/service/implementation/MessageCreator.java b/src/main/java/com/space/server/domain/ai/service/implementation/MessageCreator.java new file mode 100644 index 00000000..934bab4c --- /dev/null +++ b/src/main/java/com/space/server/domain/ai/service/implementation/MessageCreator.java @@ -0,0 +1,4 @@ +package com.space.server.domain.ai.service.implementation; + +public class MessageCreator { +} From a048a68a31fec7a6c7cbfe8478f3741969337160 Mon Sep 17 00:00:00 2001 From: YunChan-Oh Date: Thu, 16 Jan 2025 07:45:12 +0900 Subject: [PATCH 19/22] feat(chat): MessageReader --- .../domain/ai/service/implementation/MessageReader.java | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 src/main/java/com/space/server/domain/ai/service/implementation/MessageReader.java diff --git a/src/main/java/com/space/server/domain/ai/service/implementation/MessageReader.java b/src/main/java/com/space/server/domain/ai/service/implementation/MessageReader.java new file mode 100644 index 00000000..d3dc9c1d --- /dev/null +++ b/src/main/java/com/space/server/domain/ai/service/implementation/MessageReader.java @@ -0,0 +1,4 @@ +package com.space.server.domain.ai.service.implementation; + +public class MessageReader { +} From c3fbd230db775f7492b3ede4812867aef88580a3 Mon Sep 17 00:00:00 2001 From: YunChan-Oh Date: Thu, 16 Jan 2025 07:45:23 +0900 Subject: [PATCH 20/22] feat(chat): RunsCreator --- .../server/domain/ai/service/implementation/RunsCreator.java | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 src/main/java/com/space/server/domain/ai/service/implementation/RunsCreator.java diff --git a/src/main/java/com/space/server/domain/ai/service/implementation/RunsCreator.java b/src/main/java/com/space/server/domain/ai/service/implementation/RunsCreator.java new file mode 100644 index 00000000..242880c5 --- /dev/null +++ b/src/main/java/com/space/server/domain/ai/service/implementation/RunsCreator.java @@ -0,0 +1,4 @@ +package com.space.server.domain.ai.service.implementation; + +public class RunsCreator { +} From d2922a0408be81ed4cd21285ff67beadf747e715 Mon Sep 17 00:00:00 2001 From: YunChan-Oh Date: Thu, 16 Jan 2025 07:45:35 +0900 Subject: [PATCH 21/22] feat(chat): RunsReader --- .../server/domain/ai/service/implementation/RunsReader.java | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 src/main/java/com/space/server/domain/ai/service/implementation/RunsReader.java diff --git a/src/main/java/com/space/server/domain/ai/service/implementation/RunsReader.java b/src/main/java/com/space/server/domain/ai/service/implementation/RunsReader.java new file mode 100644 index 00000000..4b9691bf --- /dev/null +++ b/src/main/java/com/space/server/domain/ai/service/implementation/RunsReader.java @@ -0,0 +1,4 @@ +package com.space.server.domain.ai.service.implementation; + +public class RunsReader { +} From 7a6e02c12093bc5dfa77ccec93a95d67f4c977f5 Mon Sep 17 00:00:00 2001 From: YunChan-Oh Date: Thu, 16 Jan 2025 07:45:52 +0900 Subject: [PATCH 22/22] feat(chat): ThreadCreator --- .../domain/ai/service/implementation/ThreadCreator.java | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 src/main/java/com/space/server/domain/ai/service/implementation/ThreadCreator.java diff --git a/src/main/java/com/space/server/domain/ai/service/implementation/ThreadCreator.java b/src/main/java/com/space/server/domain/ai/service/implementation/ThreadCreator.java new file mode 100644 index 00000000..a13fde16 --- /dev/null +++ b/src/main/java/com/space/server/domain/ai/service/implementation/ThreadCreator.java @@ -0,0 +1,4 @@ +package com.space.server.domain.ai.service.implementation; + +public class ThreadCreator { +}