diff --git a/src/main/java/de/extio/lmlib/client/oai/completion/AbstractCompletionClient.java b/src/main/java/de/extio/lmlib/client/oai/completion/AbstractCompletionClient.java index d2f7765..dd2e5a9 100755 --- a/src/main/java/de/extio/lmlib/client/oai/completion/AbstractCompletionClient.java +++ b/src/main/java/de/extio/lmlib/client/oai/completion/AbstractCompletionClient.java @@ -1,5 +1,7 @@ package de.extio.lmlib.client.oai.completion; +import java.io.IOException; +import java.io.InputStream; import java.math.BigDecimal; import java.text.DecimalFormat; import java.time.Duration; @@ -17,6 +19,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Value; import org.springframework.http.HttpMethod; +import org.springframework.http.HttpStatusCode; import org.springframework.web.client.RestClient; import org.springframework.web.client.RestClientException; import org.springframework.web.client.RestClientResponseException; @@ -168,6 +171,15 @@ public abstract class AbstractCompletionClient implements Client, DisposableBean return this.getModelNames(modelProfile, false).stream().findFirst().orElse(""); } + protected void logErrorResponse(final HttpStatusCode statusCode, final InputStream responseBody) { + try { + LOGGER.warn("Error response from server: {} {}", statusCode, new String(responseBody.readAllBytes(), java.nio.charset.StandardCharsets.UTF_8)); + } + catch (final IOException e) { + LOGGER.warn("Error response from server: {} ", statusCode, e.getMessage()); + } + } + private List loadModelNames(final ModelProfile modelProfile) { try { final var restClient = this.restClientBuilder.baseUrl(modelProfile.url()).build(); diff --git a/src/main/java/de/extio/lmlib/client/oai/completion/chat/ChatCompletionClient.java b/src/main/java/de/extio/lmlib/client/oai/completion/chat/ChatCompletionClient.java index 8295814..3d4aa64 100755 --- a/src/main/java/de/extio/lmlib/client/oai/completion/chat/ChatCompletionClient.java +++ b/src/main/java/de/extio/lmlib/client/oai/completion/chat/ChatCompletionClient.java @@ -74,6 +74,7 @@ public class ChatCompletionClient extends AbstractCompletionClient { .body(requestBody) .exchange((clientRequest, clientResponse) -> { if (clientResponse.getStatusCode().isError()) { + this.logErrorResponse(clientResponse.getStatusCode(), clientResponse.getBody()); throw new IllegalStateException("Error response from server: " + clientResponse.getStatusCode()); } diff --git a/src/main/java/de/extio/lmlib/client/oai/completion/text/TextCompletionClient.java b/src/main/java/de/extio/lmlib/client/oai/completion/text/TextCompletionClient.java index 4e18b02..64adbef 100755 --- a/src/main/java/de/extio/lmlib/client/oai/completion/text/TextCompletionClient.java +++ b/src/main/java/de/extio/lmlib/client/oai/completion/text/TextCompletionClient.java @@ -77,6 +77,7 @@ public class TextCompletionClient extends AbstractCompletionClient { .body(requestBody) .exchange((clientRequest, clientResponse) -> { if (clientResponse.getStatusCode().isError()) { + this.logErrorResponse(clientResponse.getStatusCode(), clientResponse.getBody()); throw new IllegalStateException("Error response from server: " + clientResponse.getStatusCode()); }