fix(ai): meter synchronous generations
CI and Deploy / test (pull_request) Successful in 5m18s
CI and Deploy / deploy (pull_request) Has been skipped

This commit is contained in:
cesnimda
2026-08-15 20:25:10 +02:00
parent dbf28b97ce
commit 25a6da951e
9 changed files with 360 additions and 21 deletions
@@ -20,14 +20,16 @@ public sealed class AiWorkspaceController : ControllerBase
private readonly IConfiguration _config;
private readonly JobTrackerApi.Data.JobTrackerContext? _db;
private readonly AiUsageMeter? _usage;
private readonly AiUsageExecutionScope? _usageScope;
public AiWorkspaceController(UserManager<ApplicationUser> users, IAiWorkspaceService workspace, IConfiguration config, JobTrackerApi.Data.JobTrackerContext? db = null, AiUsageMeter? usage = null)
public AiWorkspaceController(UserManager<ApplicationUser> users, IAiWorkspaceService workspace, IConfiguration config, JobTrackerApi.Data.JobTrackerContext? db = null, AiUsageMeter? usage = null, AiUsageExecutionScope? usageScope = null)
{
_users = users;
_workspace = workspace;
_config = config;
_db = db;
_usage = usage;
_usageScope = usageScope;
}
public sealed record GenerateRequest(string Module, string? Mode, string? ExtraContext);
@@ -71,6 +73,7 @@ public sealed class AiWorkspaceController : ControllerBase
try
{
using var metering = _usageScope?.Suppress();
var interaction = await _workspace.GenerateAsync(
user.Id, jobId, user.ProfileCvText ?? string.Empty, ResolveName(user),
new AiGenerateRequest(request.Module, request.Mode, request.ExtraContext), ResolveProvider(), ct);