Skip to content

Commit 2c757ac

Browse files
authored
Merge branch 'SciSharp:master' into master
2 parents 57122f7 + 19ceb94 commit 2c757ac

File tree

1 file changed

+39
-11
lines changed

1 file changed

+39
-11
lines changed

src/Plugins/BotSharp.Plugin.ChatHub/Hooks/StreamingLogHook.cs

Lines changed: 39 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using BotSharp.Abstraction.Agents.Models;
2+
using BotSharp.Abstraction.Conversations.Models;
23
using BotSharp.Abstraction.Functions.Models;
34
using BotSharp.Abstraction.Loggers;
45
using BotSharp.Abstraction.Loggers.Enums;
@@ -49,6 +50,8 @@ public StreamingLogHook(
4950
public override async Task OnMessageReceived(RoleDialogModel message)
5051
{
5152
var conversationId = _state.GetConversationId();
53+
if (string.IsNullOrEmpty(conversationId)) return;
54+
5255
var log = $"{GetMessageContent(message)}";
5356

5457
var input = new ContentLogInputModel(conversationId, message)
@@ -63,6 +66,8 @@ public override async Task OnMessageReceived(RoleDialogModel message)
6366
public override async Task OnPostbackMessageReceived(RoleDialogModel message, PostbackMessageModel replyMsg)
6467
{
6568
var conversationId = _state.GetConversationId();
69+
if (string.IsNullOrEmpty(conversationId)) return;
70+
6671
var log = $"{GetMessageContent(message)}";
6772
var replyContent = JsonSerializer.Serialize(replyMsg, _options.JsonSerializerOptions);
6873
log += $"\r\n```json\r\n{replyContent}\r\n```";
@@ -81,6 +86,7 @@ public async Task OnRenderingTemplate(Agent agent, string name, string content)
8186
if (!_convSettings.ShowVerboseLog) return;
8287

8388
var conversationId = _state.GetConversationId();
89+
if (string.IsNullOrEmpty(conversationId)) return;
8490

8591
var log = $"{agent.Name} is using template {name}";
8692
var message = new RoleDialogModel(AgentRole.System, log)
@@ -104,12 +110,11 @@ public async Task BeforeGenerating(Agent agent, List<RoleDialogModel> conversati
104110

105111
public override async Task OnFunctionExecuting(RoleDialogModel message)
106112
{
107-
if (message.FunctionName == "route_to_agent")
108-
{
109-
return;
110-
}
111-
112113
var conversationId = _state.GetConversationId();
114+
if (string.IsNullOrEmpty(conversationId)) return;
115+
116+
if (message.FunctionName == "route_to_agent") return;
117+
113118
var agent = await _agentService.LoadAgent(message.CurrentAgentId);
114119
message.FunctionArgs = message.FunctionArgs ?? "{}";
115120
var args = JsonSerializer.Serialize(JsonDocument.Parse(message.FunctionArgs), _options.JsonSerializerOptions);
@@ -127,12 +132,11 @@ public override async Task OnFunctionExecuting(RoleDialogModel message)
127132

128133
public override async Task OnFunctionExecuted(RoleDialogModel message)
129134
{
130-
if (message.FunctionName == "route_to_agent")
131-
{
132-
return;
133-
}
134-
135135
var conversationId = _state.GetConversationId();
136+
if (string.IsNullOrEmpty(conversationId)) return;
137+
138+
if (message.FunctionName == "route_to_agent") return;
139+
136140
var agent = await _agentService.LoadAgent(message.CurrentAgentId);
137141
message.FunctionArgs = message.FunctionArgs ?? "{}";
138142
// var args = JsonSerializer.Serialize(JsonDocument.Parse(message.FunctionArgs), _options.JsonSerializerOptions);
@@ -159,6 +163,8 @@ public async Task AfterGenerated(RoleDialogModel message, TokenStatsModel tokenS
159163
if (!_convSettings.ShowVerboseLog) return;
160164

161165
var conversationId = _state.GetConversationId();
166+
if (string.IsNullOrEmpty(conversationId)) return;
167+
162168
var agent = await _agentService.LoadAgent(message.CurrentAgentId);
163169

164170
var log = tokenStats.Prompt;
@@ -180,8 +186,10 @@ public async Task AfterGenerated(RoleDialogModel message, TokenStatsModel tokenS
180186
/// <returns></returns>
181187
public override async Task OnResponseGenerated(RoleDialogModel message)
182188
{
183-
var conv = _services.GetRequiredService<IConversationService>();
189+
var conversationId = _state.GetConversationId();
190+
if (string.IsNullOrEmpty(conversationId)) return;
184191

192+
var conv = _services.GetRequiredService<IConversationService>();
185193
await _chatHub.Clients.User(_user.Id).SendAsync("OnConversateStateLogGenerated", BuildStateLog(conv.ConversationId, _state.GetStates(), message));
186194

187195
if (message.Role == AgentRole.Assistant)
@@ -208,6 +216,8 @@ public override async Task OnResponseGenerated(RoleDialogModel message)
208216
public override async Task OnTaskCompleted(RoleDialogModel message)
209217
{
210218
var conversationId = _state.GetConversationId();
219+
if (string.IsNullOrEmpty(conversationId)) return;
220+
211221
var log = $"{GetMessageContent(message)}";
212222
var agent = await _agentService.LoadAgent(message.CurrentAgentId);
213223

@@ -223,6 +233,8 @@ public override async Task OnTaskCompleted(RoleDialogModel message)
223233
public override async Task OnConversationEnding(RoleDialogModel message)
224234
{
225235
var conversationId = _state.GetConversationId();
236+
if (string.IsNullOrEmpty(conversationId)) return;
237+
226238
var log = $"Conversation ended";
227239
var agent = await _agentService.LoadAgent(message.CurrentAgentId);
228240

@@ -237,6 +249,8 @@ public override async Task OnConversationEnding(RoleDialogModel message)
237249

238250
public override async Task OnBreakpointUpdated(string conversationId, bool resetStates)
239251
{
252+
if (string.IsNullOrEmpty(conversationId)) return;
253+
240254
var log = $"Conversation breakpoint is updated";
241255
if (resetStates)
242256
{
@@ -263,6 +277,9 @@ public override async Task OnBreakpointUpdated(string conversationId, bool reset
263277

264278
public override async Task OnStateChanged(StateChangeModel stateChange)
265279
{
280+
var conversationId = _state.GetConversationId();
281+
if (string.IsNullOrEmpty(conversationId)) return;
282+
266283
if (stateChange == null) return;
267284

268285
await _chatHub.Clients.User(_user.Id).SendAsync("OnStateChangeGenerated", BuildStateChangeLog(stateChange));
@@ -273,6 +290,8 @@ public override async Task OnStateChanged(StateChangeModel stateChange)
273290
public async Task OnAgentEnqueued(string agentId, string preAgentId, string? reason = null)
274291
{
275292
var conversationId = _state.GetConversationId();
293+
if (string.IsNullOrEmpty(conversationId)) return;
294+
276295
var agent = await _agentService.LoadAgent(agentId);
277296

278297
// Agent queue log
@@ -298,6 +317,8 @@ public async Task OnAgentEnqueued(string agentId, string preAgentId, string? rea
298317
public async Task OnAgentDequeued(string agentId, string currentAgentId, string? reason = null)
299318
{
300319
var conversationId = _state.GetConversationId();
320+
if (string.IsNullOrEmpty(conversationId)) return;
321+
301322
var agent = await _agentService.LoadAgent(agentId);
302323
var currentAgent = await _agentService.LoadAgent(currentAgentId);
303324

@@ -324,6 +345,8 @@ public async Task OnAgentDequeued(string agentId, string currentAgentId, string?
324345
public async Task OnAgentReplaced(string fromAgentId, string toAgentId, string? reason = null)
325346
{
326347
var conversationId = _state.GetConversationId();
348+
if (string.IsNullOrEmpty(conversationId)) return;
349+
327350
var fromAgent = await _agentService.LoadAgent(fromAgentId);
328351
var toAgent = await _agentService.LoadAgent(toAgentId);
329352

@@ -350,6 +373,7 @@ public async Task OnAgentReplaced(string fromAgentId, string toAgentId, string?
350373
public async Task OnAgentQueueEmptied(string agentId, string? reason = null)
351374
{
352375
var conversationId = _state.GetConversationId();
376+
if (string.IsNullOrEmpty(conversationId)) return;
353377

354378
// Agent queue log
355379
var log = $"Agent queue is empty";
@@ -374,6 +398,8 @@ public async Task OnAgentQueueEmptied(string agentId, string? reason = null)
374398
public async Task OnRoutingInstructionReceived(FunctionCallFromLlm instruct, RoleDialogModel message)
375399
{
376400
var conversationId = _state.GetConversationId();
401+
if (string.IsNullOrEmpty(conversationId)) return;
402+
377403
var agent = await _agentService.LoadAgent(message.CurrentAgentId);
378404
var log = JsonSerializer.Serialize(instruct, _options.JsonSerializerOptions);
379405
log = $"```json\r\n{log}\r\n```";
@@ -391,6 +417,8 @@ public async Task OnRoutingInstructionReceived(FunctionCallFromLlm instruct, Rol
391417
public async Task OnRoutingInstructionRevised(FunctionCallFromLlm instruct, RoleDialogModel message)
392418
{
393419
var conversationId = _state.GetConversationId();
420+
if (string.IsNullOrEmpty(conversationId)) return;
421+
394422
var agent = await _agentService.LoadAgent(message.CurrentAgentId);
395423
var log = $"Revised user goal agent to {instruct.OriginalAgent}";
396424

0 commit comments

Comments
 (0)