@@ -21,7 +21,7 @@ public RealtimeHub(IServiceProvider services, ILogger<RealtimeHub> logger)
2121 _logger = logger ;
2222 }
2323
24- public async Task ConnectToModel ( Func < string , Task > responseToUser )
24+ public async Task ConnectToModel ( Func < string , Task > ? responseToUser = null , Func < string , Task > ? init = null )
2525 {
2626 var hookProvider = _services . GetService < ConversationHookProvider > ( ) ;
2727 var convService = _services . GetRequiredService < IConversationService > ( ) ;
@@ -57,13 +57,13 @@ await _completer.Connect(_conn,
5757 // Not TriggerModelInference, waiting for user utter.
5858 var instruction = await _completer . UpdateSession ( _conn ) ;
5959 var data = _conn . OnModelReady ( ) ;
60- await responseToUser ( data ) ;
60+ await ( init ? . Invoke ( data ) ?? Task . CompletedTask ) ;
6161 await HookEmitter . Emit < IRealtimeHook > ( _services , async hook => await hook . OnModelReady ( agent , _completer ) ) ;
6262 } ,
6363 onModelAudioDeltaReceived : async ( audioDeltaData , itemId ) =>
6464 {
6565 var data = _conn . OnModelMessageReceived ( audioDeltaData ) ;
66- await responseToUser ( data ) ;
66+ await ( responseToUser ? . Invoke ( data ) ?? Task . CompletedTask ) ;
6767
6868 // If this is the first delta of a new response, set the start timestamp
6969 if ( ! _conn . ResponseStartTimestamp . HasValue )
@@ -83,7 +83,7 @@ await _completer.Connect(_conn,
8383 onModelAudioResponseDone : async ( ) =>
8484 {
8585 var data = _conn . OnModelAudioResponseDone ( ) ;
86- await responseToUser ( data ) ;
86+ await ( responseToUser ? . Invoke ( data ) ?? Task . CompletedTask ) ;
8787 } ,
8888 onAudioTranscriptDone : async transcript =>
8989 {
@@ -148,7 +148,7 @@ await _completer.Connect(_conn,
148148 _conn . ResetResponseState ( ) ;
149149
150150 var data = _conn . OnModelUserInterrupted ( ) ;
151- await responseToUser ( data ) ;
151+ await ( responseToUser ? . Invoke ( data ) ?? Task . CompletedTask ) ;
152152 }
153153 } ) ;
154154 }
0 commit comments