Вынести условия-предикаты в extension-методы
HasUser из 13 endpoint-файлов сведён в AuthHelpers.HasUser; 15 приватных предикатов заменены extension-методами с удалением дублирующих приватных методов: IsCommunicationFailure, IsTransportFailure, IsPrivateEndpoint, IsConfigured, IsTrue, IsExpired, IsFailedLogin/IsSuccessfulLogin, HasChanges, HasBudget, HasAnyTerm, IsCurrencyLetter, IsEmojiCodePoint, ContainsFooterHint, IsTypeLabel.
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
namespace Deal.Ml.Model;
|
||||
|
||||
/// <summary>
|
||||
/// Расширения <see cref="string"/> для меток классов ML-модели.
|
||||
/// </summary>
|
||||
internal static class LabelExtensions
|
||||
{
|
||||
/// <summary>
|
||||
/// Метка внутреннего типа заявки (префикс t:).
|
||||
/// </summary>
|
||||
/// <param name="label">Метка класса.</param>
|
||||
/// <returns>True — метка является внутренним типом заявки (префикс t:).</returns>
|
||||
public static bool IsTypeLabel(this string label)
|
||||
{
|
||||
return label.StartsWith(ModelConstants.TypeLabelPrefix, StringComparison.Ordinal);
|
||||
}
|
||||
}
|
||||
@@ -115,7 +115,7 @@ public static class OnlineNaiveBayes
|
||||
MlTypeDecision? typeDecision = DecideType(state, scores, prior, margin);
|
||||
|
||||
// ── колонка/спам: без t:* классов ────────────────────────────────────────────────
|
||||
List<string> regularLabels = state.Classes.Keys.Where(label => !IsTypeLabel(label)).ToList();
|
||||
List<string> regularLabels = state.Classes.Keys.Where(label => !label.IsTypeLabel()).ToList();
|
||||
if (regularLabels.Count == 0 || scores.Count == 0)
|
||||
{
|
||||
return TakeFalse(state, typeDecision);
|
||||
@@ -288,11 +288,6 @@ public static class OnlineNaiveBayes
|
||||
private static Dictionary<string, double>? TryGetTerms(ModelState state, string label)
|
||||
=> state.TermsByLabel.TryGetValue(label, out Dictionary<string, double>? terms) ? terms : null;
|
||||
|
||||
// Метка внутреннего типа заявки (префикс t:).
|
||||
// label: Метка класса.
|
||||
private static bool IsTypeLabel(string label)
|
||||
=> label.StartsWith(ModelConstants.TypeLabelPrefix, StringComparison.Ordinal);
|
||||
|
||||
// Фиксированный ответ «не уверен» (нет опыта/терминов — модель не решает).
|
||||
// ready: Готовность модели на момент вызова.
|
||||
private static MlPredictResult NotReady(bool ready)
|
||||
|
||||
Reference in New Issue
Block a user