sequential log.

This commit is contained in:
hchen 2023-12-01 11:31:45 -06:00
parent 5bb1765fa9
commit 6197ac5ab3
3 changed files with 34 additions and 12 deletions

View file

@ -11,6 +11,18 @@ public interface IContentGeneratingHook
/// <returns></returns>
Task BeforeGenerating(Agent agent, List<RoleDialogModel> conversations) => Task.CompletedTask;
/// <summary>
/// Before function is invoked
/// </summary>
/// <returns></returns>
Task BeforeFunctionInvoked(RoleDialogModel message, TokenStatsModel tokenStats) => Task.CompletedTask;
/// <summary>
/// After function is invoked
/// </summary>
/// <returns></returns>
Task AfterFunctionInvoked(RoleDialogModel message, TokenStatsModel tokenStats) => Task.CompletedTask;
/// <summary>
/// After content generated.
/// </summary>

View file

@ -24,8 +24,10 @@ public class VerboseLogHook : IContentGeneratingHook
if (!_convSettings.ShowVerboseLog) return;
var dialog = conversations.Last();
var log = $"{dialog.Role}: {dialog.Content}";
var log = $"[msg_id: {dialog.MessageId}] {dialog.Role}: {dialog.Content}";
_logger.LogInformation(log);
await Task.CompletedTask;
}
public async Task AfterGenerated(RoleDialogModel message, TokenStatsModel tokenStats)
@ -36,8 +38,8 @@ public class VerboseLogHook : IContentGeneratingHook
var agent = await agentService.LoadAgent(message.CurrentAgentId);
var log = message.Role == AgentRole.Function ?
$"[{agent.Name}]: {message.FunctionName}({message.FunctionArgs})" :
$"[{agent.Name}]: {message.Content}";
$"[[msg_id: {message.MessageId}] [{agent.Name}]: {message.FunctionName}({message.FunctionArgs})" :
$"[[msg_id: {message.MessageId}] [{agent.Name}]: {message.Content}";
_logger.LogInformation(tokenStats.Prompt);
_logger.LogInformation(log);

View file

@ -40,8 +40,10 @@ public class ChatCompletionProvider : IChatCompletion
var contentHooks = _services.GetServices<IContentGeneratingHook>().ToList();
// Before chat completion hook
Task.WaitAll(contentHooks.Select(hook =>
hook.BeforeGenerating(agent, conversations)).ToArray());
foreach (var hook in contentHooks)
{
hook.BeforeGenerating(agent, conversations).Wait();
}
var client = ProviderHelper.GetClient(_model, _settings);
var (prompt, chatCompletionsOptions) = PrepareOptions(agent, conversations);
@ -74,14 +76,16 @@ public class ChatCompletionProvider : IChatCompletion
}
// After chat completion hook
Task.WaitAll(contentHooks.Select(hook =>
foreach(var hook in contentHooks)
{
hook.AfterGenerated(responseMessage, new TokenStatsModel
{
Prompt = prompt,
Model = _model,
PromptCount = response.Value.Usage.PromptTokens,
CompletionCount = response.Value.Usage.CompletionTokens
})).ToArray());
}).Wait();
}
return responseMessage;
}
@ -94,8 +98,10 @@ public class ChatCompletionProvider : IChatCompletion
var hooks = _services.GetServices<IContentGeneratingHook>().ToList();
// Before chat completion hook
Task.WaitAll(hooks.Select(hook =>
hook.BeforeGenerating(agent, conversations)).ToArray());
foreach (var hook in hooks)
{
await hook.BeforeGenerating(agent, conversations);
}
var client = ProviderHelper.GetClient(_model, _settings);
var (prompt, chatCompletionsOptions) = PrepareOptions(agent, conversations);
@ -111,14 +117,16 @@ public class ChatCompletionProvider : IChatCompletion
};
// After chat completion hook
Task.WaitAll(hooks.Select(hook =>
hook.AfterGenerated(msg, new TokenStatsModel
foreach (var hook in hooks)
{
await hook.AfterGenerated(msg, new TokenStatsModel
{
Prompt = prompt,
Model = _model,
PromptCount = response.Value.Usage.PromptTokens,
CompletionCount = response.Value.Usage.CompletionTokens
})).ToArray());
});
}
if (choice.FinishReason == CompletionsFinishReason.FunctionCall)
{