diff --git a/src/main/java/de/extio/lmlib/client/CompletionFinishReason.java b/src/main/java/de/extio/lmlib/client/CompletionFinishReason.java index 3ba5ab7..27e8386 100644 --- a/src/main/java/de/extio/lmlib/client/CompletionFinishReason.java +++ b/src/main/java/de/extio/lmlib/client/CompletionFinishReason.java @@ -20,6 +20,11 @@ public enum CompletionFinishReason { /** * Completion stopped because the model emitted one or more tool calls. */ - TOOL_CALLS + TOOL_CALLS, + + /** + * Completion stopped because of an error. You may continue the conversation. + */ + ERROR } \ No newline at end of file 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 dd2e5a9..19b480a 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 @@ -203,6 +203,7 @@ public abstract class AbstractCompletionClient implements Client, DisposableBean return List.of(); } catch (final RuntimeException e) { + LOGGER.warn("Failed to load model names", e); return List.of(); } } @@ -212,6 +213,7 @@ public abstract class AbstractCompletionClient implements Client, DisposableBean case FinishReasons.FINISH_REASON_CONTENT_FILTER -> CompletionFinishReason.CONTENT_FILTERED; case FinishReasons.FINISH_REASON_LENGTH -> CompletionFinishReason.TOKEN_LIMIT_REACHED; case FinishReasons.FINISH_REASON_TOOL_CALLS -> CompletionFinishReason.TOOL_CALLS; + case FinishReasons.FINISH_REASON_ERROR -> CompletionFinishReason.ERROR; default -> CompletionFinishReason.DONE; }; } diff --git a/src/main/java/de/extio/lmlib/client/oai/completion/FinishReasons.java b/src/main/java/de/extio/lmlib/client/oai/completion/FinishReasons.java index df39a16..56781df 100644 --- a/src/main/java/de/extio/lmlib/client/oai/completion/FinishReasons.java +++ b/src/main/java/de/extio/lmlib/client/oai/completion/FinishReasons.java @@ -9,5 +9,7 @@ public final class FinishReasons { public static final String FINISH_REASON_CONTENT_FILTER = "content_filter"; public static final String FINISH_REASON_TOOL_CALLS = "tool_calls"; + + public static final String FINISH_REASON_ERROR = "error"; } diff --git a/src/main/java/de/extio/lmlib/client/ollama/OllamaClient.java b/src/main/java/de/extio/lmlib/client/ollama/OllamaClient.java index 4b95b54..641dc70 100644 --- a/src/main/java/de/extio/lmlib/client/ollama/OllamaClient.java +++ b/src/main/java/de/extio/lmlib/client/ollama/OllamaClient.java @@ -379,6 +379,7 @@ public class OllamaClient implements Client { case FinishReasons.FINISH_REASON_LENGTH -> CompletionFinishReason.TOKEN_LIMIT_REACHED; case FinishReasons.FINISH_REASON_CONTENT_FILTER -> CompletionFinishReason.CONTENT_FILTERED; case FinishReasons.FINISH_REASON_TOOL_CALLS -> CompletionFinishReason.TOOL_CALLS; + case FinishReasons.FINISH_REASON_ERROR -> CompletionFinishReason.ERROR; default -> CompletionFinishReason.DONE; }; }