1+ using BotSharp . Abstraction . Agents ;
12using BotSharp . Abstraction . Agents . Models ;
3+ using BotSharp . Abstraction . Conversations . Models ;
24using BotSharp . Abstraction . Loggers ;
35using BotSharp . Abstraction . Loggers . Models ;
46using BotSharp . Abstraction . Repositories ;
7+ using BotSharp . Core . Agents . Services ;
58using Microsoft . AspNetCore . SignalR ;
69
710namespace 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