refactor(model): expose stream chat lifecycle callbacks

This commit is contained in:
2026-05-02 21:54:48 +08:00
parent 2a8b2aff7b
commit 692c601f17
3 changed files with 13 additions and 13 deletions

View File

@@ -49,8 +49,7 @@ data class ReplyEvent @JvmOverloads constructor(
override val target: String,
val content: String,
val mode: ContentMode = ContentMode.REPLACE,
val seq: Long? = null,
val done: Boolean = false
val seq: Long? = null
) : InteractionEvent() {
override val event = Event.REPLY

View File

@@ -15,11 +15,12 @@ interface ActivateModel {
fun streamChat(
messages: List<Message>,
handler: StreamChatMessageConsumer
consumer: StreamChatMessageConsumer
): Result<Unit> {
return ModelRuntimeRegistry.resolveProvider(modelKey())
.streamChat(mergeMessages(messages), handler)
.onFailure { ExceptionReporterHandler.report(it) }
.streamChat(mergeMessages(messages), consumer)
.onSuccess { consumer.onComplete() }
.onFailure { consumer.onError(it) }
}
fun <T : Any> formattedChat(messages: List<Message>, responseType: Class<T>): Result<T> {

View File

@@ -1,16 +1,16 @@
package work.slhaf.partner.framework.agent.model;
public abstract class StreamChatMessageConsumer {
private final StringBuilder responseText = new StringBuilder();
import work.slhaf.partner.framework.agent.exception.AgentRuntimeException;
public void onDelta(String delta) {
consumeDelta(delta);
responseText.append(delta);
public interface StreamChatMessageConsumer {
void onDelta(String delta);
default void onComplete() {
}
public String collectResponse() {
return responseText.toString();
default void onError(AgentRuntimeException exception) {
}
protected abstract void consumeDelta(String delta);
String collectResponse();
}