exclude conclude log when init
This commit is contained in:
parent
97f6dd7a44
commit
9febf00795
|
|
@ -47,5 +47,5 @@ public interface IContentGeneratingHook
|
|||
/// <param name="instruction"></param>
|
||||
/// <param name="functions"></param>
|
||||
/// <returns></returns>
|
||||
Task OnSessionUpdated(Agent agent, string instruction, FunctionDef[] functions) => Task.CompletedTask;
|
||||
Task OnSessionUpdated(Agent agent, string instruction, FunctionDef[] functions, bool isInit = false) => Task.CompletedTask;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ public interface IRealTimeCompletion
|
|||
Task SendEventToModel(object message);
|
||||
Task Disconnect();
|
||||
|
||||
Task<string> UpdateSession(RealtimeHubConnection conn);
|
||||
Task<string> UpdateSession(RealtimeHubConnection conn, bool isInit = false);
|
||||
Task InsertConversationItem(RoleDialogModel message);
|
||||
Task RemoveConversationItem(string itemId);
|
||||
Task TriggerModelInference(string? instructions = null);
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ public class RealtimeHub : IRealtimeHub
|
|||
onModelReady: async () =>
|
||||
{
|
||||
// Not TriggerModelInference, waiting for user utter.
|
||||
var instruction = await _completer.UpdateSession(_conn);
|
||||
var instruction = await _completer.UpdateSession(_conn, isInit: true);
|
||||
var data = _conn.OnModelReady();
|
||||
await (init?.Invoke(data) ?? Task.CompletedTask);
|
||||
await HookEmitter.Emit<IRealtimeHook>(_services, async hook => await hook.OnModelReady(agent, _completer));
|
||||
|
|
|
|||
|
|
@ -109,9 +109,9 @@ public class ChatStreamMiddleware
|
|||
|
||||
private async Task SendEventToUser(WebSocket webSocket, string message)
|
||||
{
|
||||
var buffer = Encoding.UTF8.GetBytes(message);
|
||||
if (!webSocket.CloseStatus.HasValue)
|
||||
if (webSocket.State == WebSocketState.Open)
|
||||
{
|
||||
var buffer = Encoding.UTF8.GetBytes(message);
|
||||
await webSocket.SendAsync(new ArraySegment<byte>(buffer), WebSocketMessageType.Text, true, CancellationToken.None);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -85,7 +85,7 @@ public class StreamingLogHook : ConversationHookBase, IContentGeneratingHook, IR
|
|||
await SendContentLog(conversationId, input);
|
||||
}
|
||||
|
||||
public async Task OnSessionUpdated(Agent agent, string instruction, FunctionDef[] functions)
|
||||
public async Task OnSessionUpdated(Agent agent, string instruction, FunctionDef[] functions, bool isInit = false)
|
||||
{
|
||||
var conversationId = _state.GetConversationId();
|
||||
if (string.IsNullOrEmpty(conversationId)) return;
|
||||
|
|
@ -98,6 +98,8 @@ public class StreamingLogHook : ConversationHookBase, IContentGeneratingHook, IR
|
|||
}
|
||||
_logger.LogInformation(log);
|
||||
|
||||
if (isInit) return;
|
||||
|
||||
var message = new RoleDialogModel(AgentRole.Assistant, log)
|
||||
{
|
||||
MessageId = _routingCtx.MessageId
|
||||
|
|
|
|||
|
|
@ -238,7 +238,7 @@ public class GoogleRealTimeProvider : IRealTimeCompletion
|
|||
//todo Send Audio Chunks to Model, Botsharp RealTime Implementation seems to be incomplete
|
||||
}
|
||||
|
||||
public async Task<string> UpdateSession(RealtimeHubConnection conn)
|
||||
public async Task<string> UpdateSession(RealtimeHubConnection conn, bool isInit = false)
|
||||
{
|
||||
var convService = _services.GetRequiredService<IConversationService>();
|
||||
var conv = await convService.GetConversation(conn.ConversationId);
|
||||
|
|
@ -278,7 +278,7 @@ public class GoogleRealTimeProvider : IRealTimeCompletion
|
|||
}).ToArray();
|
||||
|
||||
await HookEmitter.Emit<IContentGeneratingHook>(_services,
|
||||
async hook => { await hook.OnSessionUpdated(agent, prompt, functions); });
|
||||
async hook => { await hook.OnSessionUpdated(agent, prompt, functions, isInit); });
|
||||
|
||||
if (_settings.Gemini.UseGoogleSearch)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -264,7 +264,7 @@ public class RealTimeCompletionProvider : IRealTimeCompletion
|
|||
await _session.SendEventToModel(message);
|
||||
}
|
||||
|
||||
public async Task<string> UpdateSession(RealtimeHubConnection conn)
|
||||
public async Task<string> UpdateSession(RealtimeHubConnection conn, bool isInit = false)
|
||||
{
|
||||
var convService = _services.GetRequiredService<IConversationService>();
|
||||
var conv = await convService.GetConversation(conn.ConversationId);
|
||||
|
|
@ -328,13 +328,11 @@ public class RealTimeCompletionProvider : IRealTimeCompletion
|
|||
|
||||
await HookEmitter.Emit<IContentGeneratingHook>(_services, async hook =>
|
||||
{
|
||||
await hook.OnSessionUpdated(agent, instruction, functions);
|
||||
await hook.OnSessionUpdated(agent, instruction, functions, isInit);
|
||||
});
|
||||
|
||||
await SendEventToModel(sessionUpdate);
|
||||
|
||||
await Task.Delay(300);
|
||||
|
||||
return instruction;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue