feat: add ERROR finish reason and handle it in completion clients
This commit is contained in:
@@ -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
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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";
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user