diff --git a/.gradle/8.14.3/executionHistory/executionHistory.bin b/.gradle/8.14.3/executionHistory/executionHistory.bin index fe734438..4d04a61b 100644 Binary files a/.gradle/8.14.3/executionHistory/executionHistory.bin and b/.gradle/8.14.3/executionHistory/executionHistory.bin differ diff --git a/.gradle/8.14.3/executionHistory/executionHistory.lock b/.gradle/8.14.3/executionHistory/executionHistory.lock index 9bcfc577..0ad427ce 100644 Binary files a/.gradle/8.14.3/executionHistory/executionHistory.lock and b/.gradle/8.14.3/executionHistory/executionHistory.lock differ diff --git a/.gradle/8.14.3/fileHashes/fileHashes.bin b/.gradle/8.14.3/fileHashes/fileHashes.bin index 1b400bd6..09b2ecaa 100644 Binary files a/.gradle/8.14.3/fileHashes/fileHashes.bin and b/.gradle/8.14.3/fileHashes/fileHashes.bin differ diff --git a/.gradle/8.14.3/fileHashes/fileHashes.lock b/.gradle/8.14.3/fileHashes/fileHashes.lock index 5921d54e..334009a2 100644 Binary files a/.gradle/8.14.3/fileHashes/fileHashes.lock and b/.gradle/8.14.3/fileHashes/fileHashes.lock differ diff --git a/.gradle/8.14.3/fileHashes/resourceHashesCache.bin b/.gradle/8.14.3/fileHashes/resourceHashesCache.bin index c1f703ee..38a429d1 100644 Binary files a/.gradle/8.14.3/fileHashes/resourceHashesCache.bin and b/.gradle/8.14.3/fileHashes/resourceHashesCache.bin differ diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock index 49fa4dbd..983dd068 100644 Binary files a/.gradle/buildOutputCleanup/buildOutputCleanup.lock and b/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ diff --git a/dat-gateway/src/main/java/io/shinhanlife/dat/mcg/presentation/ScaffoldingController.java b/dat-gateway/src/main/java/io/shinhanlife/dat/mcg/presentation/ScaffoldingController.java index 882dabc9..fc915850 100644 --- a/dat-gateway/src/main/java/io/shinhanlife/dat/mcg/presentation/ScaffoldingController.java +++ b/dat-gateway/src/main/java/io/shinhanlife/dat/mcg/presentation/ScaffoldingController.java @@ -427,10 +427,33 @@ public class ScaffoldingController { } private String generateAiContent(String prompt, String requestedModel) { - return chatClientBuilder.build().prompt() + String resolvedModel = resolveModel(requestedModel); + org.springframework.ai.chat.client.ChatClient activeChatClient; + org.springframework.ai.chat.prompt.ChatOptions chatOptions; + + if ("Qwen3-Coder".equalsIgnoreCase(resolvedModel) || "Gemma-4-31B".equalsIgnoreCase(resolvedModel)) { + String liteLlmBaseUrl = "https://dev-iam-litellm.shinhanlife.co.kr:18020"; + String apiKey = "Gemma-4-31B".equalsIgnoreCase(resolvedModel) ? "sk-EH107wYBZuU6RUTqthR17A" : "sk-UJ2IRenvaMPbY3ozQdj6zw"; + + org.springframework.ai.openai.api.OpenAiApi openAiApi = org.springframework.ai.openai.api.OpenAiApi.builder() + .baseUrl(liteLlmBaseUrl) + .apiKey(new org.springframework.ai.model.SimpleApiKey(apiKey)) + .build(); + + org.springframework.ai.openai.OpenAiChatModel dynamicChatModel = org.springframework.ai.openai.OpenAiChatModel.builder() + .openAiApi(openAiApi) + .build(); + + activeChatClient = org.springframework.ai.chat.client.ChatClient.builder(dynamicChatModel).build(); + chatOptions = org.springframework.ai.openai.OpenAiChatOptions.builder().model(resolvedModel).build(); + } else { + activeChatClient = chatClientBuilder.build(); + chatOptions = org.springframework.ai.openai.OpenAiChatOptions.builder().model(resolvedModel).build(); + } + + return activeChatClient.prompt() .user(prompt) - .options(org.springframework.ai.openai.OpenAiChatOptions.builder() - .model(resolveModel(requestedModel)).build()) + .options(chatOptions) .call() .content(); } diff --git a/dat-gateway/src/main/resources/static/admin/scaffold.html b/dat-gateway/src/main/resources/static/admin/scaffold.html index 5630d839..adc6e3d6 100644 --- a/dat-gateway/src/main/resources/static/admin/scaffold.html +++ b/dat-gateway/src/main/resources/static/admin/scaffold.html @@ -1709,8 +1709,10 @@ } catch (error) { console.warn(error); } - nameInput.value = ''; - nameInput.readOnly = false; + if (!nameInput.value) { + nameInput.value = ''; + nameInput.readOnly = false; + } loadUseCasesForSelection(); }