mirror of
https://github.com/slhaf/Partner.git
synced 2026-05-12 08:43:02 +08:00
refactor(model): expose stream chat lifecycle callbacks
This commit is contained in:
@@ -49,8 +49,7 @@ data class ReplyEvent @JvmOverloads constructor(
|
|||||||
override val target: String,
|
override val target: String,
|
||||||
val content: String,
|
val content: String,
|
||||||
val mode: ContentMode = ContentMode.REPLACE,
|
val mode: ContentMode = ContentMode.REPLACE,
|
||||||
val seq: Long? = null,
|
val seq: Long? = null
|
||||||
val done: Boolean = false
|
|
||||||
) : InteractionEvent() {
|
) : InteractionEvent() {
|
||||||
override val event = Event.REPLY
|
override val event = Event.REPLY
|
||||||
|
|
||||||
|
|||||||
@@ -15,11 +15,12 @@ interface ActivateModel {
|
|||||||
|
|
||||||
fun streamChat(
|
fun streamChat(
|
||||||
messages: List<Message>,
|
messages: List<Message>,
|
||||||
handler: StreamChatMessageConsumer
|
consumer: StreamChatMessageConsumer
|
||||||
): Result<Unit> {
|
): Result<Unit> {
|
||||||
return ModelRuntimeRegistry.resolveProvider(modelKey())
|
return ModelRuntimeRegistry.resolveProvider(modelKey())
|
||||||
.streamChat(mergeMessages(messages), handler)
|
.streamChat(mergeMessages(messages), consumer)
|
||||||
.onFailure { ExceptionReporterHandler.report(it) }
|
.onSuccess { consumer.onComplete() }
|
||||||
|
.onFailure { consumer.onError(it) }
|
||||||
}
|
}
|
||||||
|
|
||||||
fun <T : Any> formattedChat(messages: List<Message>, responseType: Class<T>): Result<T> {
|
fun <T : Any> formattedChat(messages: List<Message>, responseType: Class<T>): Result<T> {
|
||||||
|
|||||||
@@ -1,16 +1,16 @@
|
|||||||
package work.slhaf.partner.framework.agent.model;
|
package work.slhaf.partner.framework.agent.model;
|
||||||
|
|
||||||
public abstract class StreamChatMessageConsumer {
|
import work.slhaf.partner.framework.agent.exception.AgentRuntimeException;
|
||||||
private final StringBuilder responseText = new StringBuilder();
|
|
||||||
|
|
||||||
public void onDelta(String delta) {
|
public interface StreamChatMessageConsumer {
|
||||||
consumeDelta(delta);
|
|
||||||
responseText.append(delta);
|
void onDelta(String delta);
|
||||||
|
|
||||||
|
default void onComplete() {
|
||||||
}
|
}
|
||||||
|
|
||||||
public String collectResponse() {
|
default void onError(AgentRuntimeException exception) {
|
||||||
return responseText.toString();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected abstract void consumeDelta(String delta);
|
String collectResponse();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user