From 1fe0e35aa59b2e419aa919c99064a82d13582bbd Mon Sep 17 00:00:00 2001 From: xuliefeng Date: Tue, 21 Oct 2025 18:07:54 +0800 Subject: [PATCH] feat: Handle "stop" parameter transformation in CodeCompletionRequestFactory (#1125) --- .../CodeCompletionRequestFactory.kt | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/main/kotlin/ee/carlrobert/codegpt/codecompletions/CodeCompletionRequestFactory.kt b/src/main/kotlin/ee/carlrobert/codegpt/codecompletions/CodeCompletionRequestFactory.kt index 3851aaf6..366b65e3 100644 --- a/src/main/kotlin/ee/carlrobert/codegpt/codecompletions/CodeCompletionRequestFactory.kt +++ b/src/main/kotlin/ee/carlrobert/codegpt/codecompletions/CodeCompletionRequestFactory.kt @@ -1,6 +1,7 @@ package ee.carlrobert.codegpt.codecompletions import com.fasterxml.jackson.core.JsonProcessingException +import com.fasterxml.jackson.core.type.TypeReference import com.fasterxml.jackson.databind.ObjectMapper import com.intellij.openapi.components.service import ee.carlrobert.codegpt.completions.llama.LlamaModel @@ -24,6 +25,7 @@ import ee.carlrobert.service.GrpcCodeCompletionRequest import okhttp3.MediaType.Companion.toMediaType import okhttp3.Request import okhttp3.RequestBody.Companion.toRequestBody +import org.apache.commons.text.StringEscapeUtils import java.nio.charset.StandardCharsets object CodeCompletionRequestFactory { @@ -175,7 +177,21 @@ object CodeCompletionRequestFactory { requestBuilder.addHeader(entry.key, value) } val transformedBody = body.entries.associate { (key, value) -> - key to transformValue(value, infillTemplate, details) + when (key.lowercase()) { + "stop" -> { + if (value is String) { + if (value.isEmpty()) + null + if (value.startsWith("[") && value.endsWith("]")) + key to ObjectMapper().readValue(value, object : TypeReference>() {}) + else + key to value.split(",").map { StringEscapeUtils.unescapeJava(it.trim()) } + } else { + key to value + } + } + else -> key to transformValue(value, infillTemplate, details) + } } try {