Skip to content

Commit 6c676da

Browse files
author
Haiping Chen
committed
Fix stream log.
1 parent fb757e7 commit 6c676da

File tree

1 file changed

+33
-7
lines changed

1 file changed

+33
-7
lines changed

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

Lines changed: 33 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
1+
using BotSharp.Abstraction.Agents;
12
using BotSharp.Abstraction.Agents.Models;
3+
using BotSharp.Abstraction.Conversations.Models;
24
using BotSharp.Abstraction.Loggers;
35
using BotSharp.Abstraction.Loggers.Models;
46
using BotSharp.Abstraction.Repositories;
7+
using BotSharp.Core.Agents.Services;
58
using Microsoft.AspNetCore.SignalR;
69

710
namespace BotSharp.Plugin.ChatHub.Hooks;
@@ -54,9 +57,20 @@ public async Task BeforeGenerating(Agent agent, List<RoleDialogModel> conversati
5457

5558
public override async Task OnFunctionExecuted(RoleDialogModel message)
5659
{
57-
60+
var agentService = _services.GetRequiredService<IAgentService>();
61+
var conversationId = _state.GetConversationId();
62+
var agent = await agentService.LoadAgent(message.CurrentAgentId);
63+
var log = $"[{agent?.Name}]: {message.FunctionName}({message.FunctionArgs}) => {message.Content}";
64+
log += $"\r\n<== MessageId: {message.MessageId}";
65+
await _chatHub.Clients.User(_user.Id).SendAsync("OnConversationContentLogGenerated", BuildContentLog(conversationId, agent?.Name, log, message));
5866
}
5967

68+
/// <summary>
69+
/// Used to log prompt
70+
/// </summary>
71+
/// <param name="message"></param>
72+
/// <param name="tokenStats"></param>
73+
/// <returns></returns>
6074
public async Task AfterGenerated(RoleDialogModel message, TokenStatsModel tokenStats)
6175
{
6276
if (!_convSettings.ShowVerboseLog) return;
@@ -66,20 +80,32 @@ public async Task AfterGenerated(RoleDialogModel message, TokenStatsModel tokenS
6680
var agent = await agentService.LoadAgent(message.CurrentAgentId);
6781

6882
await _chatHub.Clients.User(_user.Id).SendAsync("OnConversationContentLogGenerated", BuildContentLog(conversationId, agent?.Name, tokenStats.Prompt, message));
69-
70-
var log = message.Role == AgentRole.Function ?
71-
$"[{agent?.Name}]: {message.FunctionName}({message.FunctionArgs})" :
72-
$"[{agent?.Name}]: {message.Content}";
73-
log += $"\r\n<== MessageId: {message.MessageId}";
74-
await _chatHub.Clients.User(_user.Id).SendAsync("OnConversationContentLogGenerated", BuildContentLog(conversationId, agent?.Name, log, message));
7583
}
7684

85+
/// <summary>
86+
/// Used to log final response
87+
/// </summary>
88+
/// <param name="message"></param>
89+
/// <returns></returns>
7790
public override async Task OnResponseGenerated(RoleDialogModel message)
7891
{
7992
var conv = _services.GetRequiredService<IConversationService>();
8093
var state = _services.GetRequiredService<IConversationStateService>();
8194

8295
await _chatHub.Clients.User(_user.Id).SendAsync("OnConversateStateLogGenerated", BuildStateLog(conv.ConversationId, state.GetStates(), message));
96+
97+
if (message.Role == AgentRole.Assistant)
98+
{
99+
var agentService = _services.GetRequiredService<IAgentService>();
100+
var agent = await agentService.LoadAgent(message.CurrentAgentId);
101+
var log = $"[{agent?.Name}]: {message.Content}";
102+
if (message.RichContent != null)
103+
{
104+
log += $"\r\n{message.RichContent}";
105+
}
106+
log += $"\r\n<== MessageId: {message.MessageId}";
107+
await _chatHub.Clients.User(_user.Id).SendAsync("OnConversationContentLogGenerated", BuildContentLog(conv.ConversationId, agent?.Name, log, message));
108+
}
83109
}
84110

85111
private string BuildContentLog(string conversationId, string? name, string content, RoleDialogModel message)

0 commit comments

Comments
 (0)