Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions src/CLI/RodelCommit/CommitService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -226,18 +226,18 @@ private async Task GenerateWithAIAsync(string diff)

private async Task<List<string>> GenerateSummaryWithDocumentsAsync(IChatService chatService, string model, CommitTypeItem commitType, List<string> documents, string? repoDesc)
{
var result = new List<string>();
var index = 0;
var limit = ChatConfigManager.AppConfiguration.App.ConcurrentLimit;
var concurrentLimit = limit > 0 ? limit : 5;
var semaphore = new SemaphoreSlim(limit);
var semaphore = new SemaphoreSlim(concurrentLimit);
var useSegments = documents.Count > 1;
var summaries = new string[documents.Count];
await AnsiConsole.Status()
.StartAsync("Generating summaries...", ctx =>
{
ctx.Spinner(Spinner.Known.Dots2);
ctx.SpinnerStyle(Style.Parse("yellow"));
var tasks = documents.Select(async doc =>
var tasks = documents.Select(async (doc, documentIndex) =>
{
await semaphore.WaitAsync();
try
Expand All @@ -257,8 +257,8 @@ await AnsiConsole.Status()
Temperature = 0.5f,
};
var summary = await chatService.Client!.GetResponseAsync([chatMsg], options, cancellationToken: _stopCts.Token);
var text = summary.Message.Text!;
result.Add(text);
var text = summary.Text!;
summaries[documentIndex] = text;
index++;
ctx.Status($"Generating summaries...({index}/{documents.Count})");
}
Expand All @@ -271,7 +271,7 @@ await AnsiConsole.Status()
return Task.WhenAll(tasks);
});

return result;
return summaries.ToList();
}

private async Task<string> GenerateSummaryWithSegmentsAsync(IChatService chatService, string model, CommitTypeItem commitType, List<string> segments, string? repoDesc)
Expand All @@ -285,7 +285,7 @@ private async Task<string> GenerateSummaryWithSegmentsAsync(IChatService chatSer
};

var summary = await chatService.Client!.GetResponseAsync([chatMsg], options, cancellationToken: _stopCts.Token);
return summary.Message.Text!;
return summary.Text!;
}

private static ChatProviderType AskProvider(List<ChatProviderType> availableServices)
Expand Down