Search/AdvisoryAI and DAL conversion to EF finishes up. Preparation for microservices consolidation.
This commit is contained in:
@@ -24,7 +24,8 @@ public sealed record UnifiedSearchRequest(
|
||||
int? K = null,
|
||||
UnifiedSearchFilter? Filters = null,
|
||||
bool IncludeSynthesis = true,
|
||||
bool IncludeDebug = false);
|
||||
bool IncludeDebug = false,
|
||||
AmbientContext? Ambient = null);
|
||||
|
||||
public sealed record UnifiedSearchFilter
|
||||
{
|
||||
@@ -50,6 +51,24 @@ public sealed record UnifiedSearchFilter
|
||||
/// Not serialized in API responses.
|
||||
/// </summary>
|
||||
public IReadOnlyList<string>? UserScopes { get; init; }
|
||||
|
||||
/// <summary>
|
||||
/// Optional user identifier for ephemeral session context carry-forward.
|
||||
/// </summary>
|
||||
public string? UserId { get; init; }
|
||||
}
|
||||
|
||||
public sealed record AmbientContext
|
||||
{
|
||||
public string? CurrentRoute { get; init; }
|
||||
|
||||
public IReadOnlyList<string>? VisibleEntityKeys { get; init; }
|
||||
|
||||
public IReadOnlyList<string>? RecentSearches { get; init; }
|
||||
|
||||
public string? SessionId { get; init; }
|
||||
|
||||
public bool ResetSession { get; init; }
|
||||
}
|
||||
|
||||
public sealed record SearchSuggestion(string Text, string Reason);
|
||||
@@ -88,6 +107,28 @@ public sealed record EntityCard
|
||||
public IReadOnlyList<string> Sources { get; init; } = [];
|
||||
|
||||
public EntityCardPreview? Preview { get; init; }
|
||||
|
||||
public IReadOnlyList<EntityCardFacet> Facets { get; init; } = [];
|
||||
|
||||
public IReadOnlyList<string> Connections { get; init; } = [];
|
||||
|
||||
public IReadOnlyDictionary<string, string> SynthesisHints { get; init; } =
|
||||
new Dictionary<string, string>(StringComparer.Ordinal);
|
||||
}
|
||||
|
||||
public sealed record EntityCardFacet
|
||||
{
|
||||
public string Domain { get; init; } = "knowledge";
|
||||
|
||||
public string Title { get; init; } = string.Empty;
|
||||
|
||||
public string Snippet { get; init; } = string.Empty;
|
||||
|
||||
public double Score { get; init; }
|
||||
|
||||
public IReadOnlyDictionary<string, string>? Metadata { get; init; }
|
||||
|
||||
public IReadOnlyList<EntityCardAction> Actions { get; init; } = [];
|
||||
}
|
||||
|
||||
public sealed record EntityCardPreview(
|
||||
@@ -138,7 +179,15 @@ public sealed record UnifiedSearchDiagnostics(
|
||||
long DurationMs,
|
||||
bool UsedVector,
|
||||
string Mode,
|
||||
QueryPlan? Plan = null);
|
||||
QueryPlan? Plan = null,
|
||||
IReadOnlyList<FederationBackendDiagnostic>? Federation = null);
|
||||
|
||||
public sealed record FederationBackendDiagnostic(
|
||||
string Backend,
|
||||
int ResultCount,
|
||||
long DurationMs,
|
||||
bool TimedOut,
|
||||
string Status);
|
||||
|
||||
public sealed record QueryPlan
|
||||
{
|
||||
@@ -152,6 +201,9 @@ public sealed record QueryPlan
|
||||
|
||||
public IReadOnlyDictionary<string, double> DomainWeights { get; init; } =
|
||||
new Dictionary<string, double>(StringComparer.Ordinal);
|
||||
|
||||
public IReadOnlyDictionary<string, double> ContextEntityBoosts { get; init; } =
|
||||
new Dictionary<string, double>(StringComparer.Ordinal);
|
||||
}
|
||||
|
||||
public sealed record EntityMention(
|
||||
|
||||
Reference in New Issue
Block a user