Skip to content

Commit 8f5a0d4

Browse files
committed
refactor: Improve code quality by removing duplicate using statements and enhancing null safety in FunctionCostCalculationService
1 parent 4b91aef commit 8f5a0d4

11 files changed

Lines changed: 24 additions & 26 deletions

File tree

Services/ConduitLLM.Admin/Services/LLMCacheManagementService.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,12 @@ public class LLMCacheManagementService : ILLMCacheManagementService
1818

1919
private const string LLM_CACHE_SETTING_KEY = "LLM.Caching.Enabled";
2020

21+
/// <summary>
22+
/// Initializes a new instance of the <see cref="LLMCacheManagementService"/> class.
23+
/// </summary>
24+
/// <param name="globalSettingRepository">Repository for managing global settings.</param>
25+
/// <param name="publishEndpoint">MassTransit publish endpoint for broadcasting cache configuration changes.</param>
26+
/// <param name="logger">Logger instance for diagnostics and monitoring.</param>
2127
public LLMCacheManagementService(
2228
IGlobalSettingRepository globalSettingRepository,
2329
IPublishEndpoint publishEndpoint,

Shared/ConduitLLM.Configuration/Repositories/FunctionCostMappingRepository.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
using ConduitLLM.Configuration;
22
using ConduitLLM.Configuration.Utilities;
3-
using ConduitLLM.Configuration;
4-
using ConduitLLM.Configuration.Utilities;
53
using ConduitLLM.Functions.Entities;
64
using ConduitLLM.Functions.Interfaces;
75
using Microsoft.EntityFrameworkCore;

Shared/ConduitLLM.Configuration/Repositories/FunctionCostRepository.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
using ConduitLLM.Configuration;
22
using ConduitLLM.Configuration.Utilities;
3-
using ConduitLLM.Configuration;
4-
using ConduitLLM.Configuration.Utilities;
53
using ConduitLLM.Functions.Entities;
64
using ConduitLLM.Functions.Interfaces;
75
using Microsoft.EntityFrameworkCore;

Shared/ConduitLLM.Configuration/Repositories/FunctionExecutionRepository.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
using ConduitLLM.Configuration;
22
using ConduitLLM.Configuration.Utilities;
3-
using ConduitLLM.Configuration;
4-
using ConduitLLM.Configuration.Utilities;
53
using ConduitLLM.Functions.Entities;
64
using ConduitLLM.Functions.Enums;
75
using ConduitLLM.Functions.Interfaces;

Shared/ConduitLLM.Configuration/Repositories/ModelCostRepository.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
using ConduitLLM.Configuration.Entities;
22
using ConduitLLM.Configuration.Utilities;
3-
using ConduitLLM.Configuration.Utilities;
43

54
using Microsoft.EntityFrameworkCore;
65
using Microsoft.Extensions.Logging;

Shared/ConduitLLM.Configuration/Repositories/VirtualKeyRepository.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
using ConduitLLM.Configuration.Entities;
22
using ConduitLLM.Configuration.Utilities;
3-
using ConduitLLM.Configuration.Utilities;
43

54
using Microsoft.EntityFrameworkCore;
65
using Microsoft.Extensions.Logging;

Shared/ConduitLLM.Core/Conduit.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -365,9 +365,9 @@ private async IAsyncEnumerable<ChatCompletionChunk> StreamChatCompletionWithFunc
365365
}
366366

367367
// Accumulate tool calls from chunks
368-
if (chunk.Choices?.Count > 0 && chunk.Choices[0].Delta?.ToolCalls != null)
368+
if (chunk.Choices?.Count > 0 && chunk.Choices[0].Delta?.ToolCalls is { } toolCalls)
369369
{
370-
foreach (var toolCallChunk in chunk.Choices[0].Delta.ToolCalls)
370+
foreach (var toolCallChunk in toolCalls)
371371
{
372372
if (!accumulatedToolCalls.ContainsKey(toolCallChunk.Index))
373373
{

Shared/ConduitLLM.Core/Services/BatchOperations/BatchSpendUpdateOperation.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public BatchSpendUpdateOperation(
3434
/// <param name="idempotencyToken">Optional token to prevent duplicate processing</param>
3535
/// <param name="cancellationToken">Cancellation token</param>
3636
/// <returns>Result of the batch operation</returns>
37-
public virtual async Task<BatchOperationResult> ExecuteAsync(
37+
public new virtual async Task<BatchOperationResult> ExecuteAsync(
3838
List<SpendUpdateItem> spendUpdates,
3939
int virtualKeyId,
4040
string? idempotencyToken = null,

Shared/ConduitLLM.Functions/Services/FunctionCostCalculationService.Estimation.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -268,13 +268,13 @@ private decimal EstimateExaHybridCost(ExaHybridPricingConfig config, Dictionary<
268268

269269
// 1. Estimate search cost (assume neural for conservatism)
270270
decimal searchEstimate;
271-
if (requestedResults <= (config.SearchCosts.Neural.Tier1.MaxResults ?? 25))
271+
if (requestedResults <= (config.SearchCosts?.Neural?.Tier1.MaxResults ?? 25))
272272
{
273-
searchEstimate = config.SearchCosts.Neural.Tier1.Cost;
273+
searchEstimate = config.SearchCosts?.Neural?.Tier1.Cost ?? 0m;
274274
}
275275
else
276276
{
277-
searchEstimate = config.SearchCosts.Neural.Tier2.Cost;
277+
searchEstimate = config.SearchCosts?.Neural?.Tier2.Cost ?? 0m;
278278
}
279279
totalEstimate += searchEstimate;
280280

Shared/ConduitLLM.Functions/Services/FunctionCostCalculationService.Hybrid.cs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -143,43 +143,43 @@ private decimal CalculateExaSearchCost(ExaHybridPricingConfig config, FunctionEx
143143
{
144144
case "neural":
145145
// Determine tier based on result count
146-
if (resultCount <= (config.SearchCosts.Neural.Tier1.MaxResults ?? 25))
146+
if (resultCount <= (config.SearchCosts?.Neural?.Tier1.MaxResults ?? 25))
147147
{
148-
searchCost = config.SearchCosts.Neural.Tier1.Cost;
148+
searchCost = config.SearchCosts?.Neural?.Tier1.Cost ?? 0m;
149149
_logger.LogDebug("Neural search tier 1 (1-{Max} results): ${Cost}",
150-
config.SearchCosts.Neural.Tier1.MaxResults ?? 25, searchCost);
150+
config.SearchCosts?.Neural?.Tier1.MaxResults ?? 25, searchCost);
151151
}
152152
else
153153
{
154-
searchCost = config.SearchCosts.Neural.Tier2.Cost;
154+
searchCost = config.SearchCosts?.Neural?.Tier2.Cost ?? 0m;
155155
_logger.LogDebug("Neural search tier 2 ({Min}+ results): ${Cost}",
156-
(config.SearchCosts.Neural.Tier1.MaxResults ?? 25) + 1, searchCost);
156+
(config.SearchCosts?.Neural?.Tier1.MaxResults ?? 25) + 1, searchCost);
157157
}
158158
break;
159159

160160
case "keyword":
161-
searchCost = config.SearchCosts.Keyword.Cost;
161+
searchCost = config.SearchCosts?.Keyword?.Cost ?? 0m;
162162
_logger.LogDebug("Keyword search (any results): ${Cost}", searchCost);
163163
break;
164164

165165
case "auto":
166166
// Auto mode: use conservative estimate (keyword pricing by default, or neural tier 1 if configured)
167-
if (config.SearchCosts.Auto?.FallbackToKeyword == true)
167+
if (config.SearchCosts?.Auto?.FallbackToKeyword == true)
168168
{
169-
searchCost = config.SearchCosts.Keyword.Cost;
169+
searchCost = config.SearchCosts?.Keyword?.Cost ?? 0m;
170170
_logger.LogDebug("Auto search (fallback to keyword pricing): ${Cost}", searchCost);
171171
}
172172
else
173173
{
174174
// Conservative: assume neural tier 1
175-
searchCost = config.SearchCosts.Neural.Tier1.Cost;
175+
searchCost = config.SearchCosts?.Neural?.Tier1.Cost ?? 0m;
176176
_logger.LogDebug("Auto search (fallback to neural tier 1 pricing): ${Cost}", searchCost);
177177
}
178178
break;
179179

180180
default:
181181
_logger.LogWarning("Unknown search type '{SearchType}', defaulting to keyword pricing", searchType);
182-
searchCost = config.SearchCosts.Keyword.Cost;
182+
searchCost = config.SearchCosts?.Keyword?.Cost ?? 0m;
183183
break;
184184
}
185185

0 commit comments

Comments
 (0)