- Introduced `get_profile_reference_values_current_snapshot` and `get_profile_reference_values_recent_snapshot` functions to retrieve current and recent reference values for profiles. - Updated the placeholder resolver to include new placeholders for current and recent reference values. - Added new API endpoints for fetching current and recent reference values snapshots. - Enhanced the frontend API utility to support the new snapshot endpoints. - Improved unit tests to validate the new data layer functions and their behavior.
69 lines
2.8 KiB
Python
69 lines
2.8 KiB
Python
"""
|
|
Registry: Persönliche Referenzwerte (Profil) — Layer 1 reference_values, JSON-Platzhalter 2a.
|
|
"""
|
|
|
|
from placeholder_registry import (
|
|
PlaceholderMetadata,
|
|
MissingValuePolicy,
|
|
OutputType,
|
|
PlaceholderType,
|
|
register_placeholder,
|
|
)
|
|
from ._evidence import tag_standard_evidence
|
|
|
|
CAT = "Referenzwerte"
|
|
MVP = lambda reason, disp: MissingValuePolicy(
|
|
available=False, value_raw=None, missing_reason=reason, legacy_display=disp
|
|
)
|
|
|
|
|
|
def register_profile_reference_values():
|
|
for key, dl_fn, desc, sem in [
|
|
(
|
|
"reference_values_current_json",
|
|
"get_profile_reference_values_current_snapshot",
|
|
"JSON: aktuelle Referenzwerte (jüngster Eintrag pro Typ, Katalog-Reihenfolge)",
|
|
"reference_values.get_profile_reference_values_current_snapshot(profile_id)",
|
|
),
|
|
(
|
|
"reference_values_recent_json",
|
|
"get_profile_reference_values_recent_snapshot",
|
|
"JSON: Verlauf — bis zu 5 Einträge pro Referenztyp (neueste zuerst), optional Datumsfilter in Layer-1-API",
|
|
"reference_values.get_profile_reference_values_recent_snapshot(profile_id, limit_per_type=5)",
|
|
),
|
|
]:
|
|
m = PlaceholderMetadata(
|
|
key=key,
|
|
category=CAT,
|
|
description=desc,
|
|
resolver_module="backend/placeholder_resolver.py",
|
|
resolver_function="_safe_json",
|
|
data_layer_module="backend/data_layer/reference_values.py",
|
|
data_layer_function=dl_fn,
|
|
source_tables=["profile_reference_values", "reference_value_types"],
|
|
semantic_contract=sem,
|
|
business_meaning="Persönliche Referenzkennwerte für KI-Kontext (Messmethode, Vertrauen, Historie)",
|
|
unit="JSON",
|
|
time_window="aktuell bzw. letzte N Einträge pro Typ",
|
|
output_type=OutputType.JSON,
|
|
placeholder_type=PlaceholderType.RAW_DATA,
|
|
format_hint="JSON-String (schema *_v1)",
|
|
example_output='{"count":0,"items":[]}',
|
|
minimum_data_requirements="Keine Pflicht — leere Listen möglich",
|
|
quality_filter_policy=None,
|
|
confidence_logic="Rohdaten aus Erfassung (confidence-Feld pro Eintrag)",
|
|
missing_value_policy=MVP("optional_module", "{}"),
|
|
known_limitations="recent_json: fest 5 pro Typ im Platzhalter; Datumsfilter nur über API/Layer-1-Parameter",
|
|
layer_1_decision="data_layer.reference_values",
|
|
layer_2a_decision="_safe_json + compact_json_payload_for_prompts",
|
|
layer_2b_reuse_possible=True,
|
|
architecture_alignment="Issue 53 / Phase 0c Layer 1",
|
|
issue_53_alignment="Strukturierte L1-Daten für Prompts",
|
|
evidence={},
|
|
)
|
|
tag_standard_evidence(m)
|
|
register_placeholder(m)
|
|
|
|
|
|
register_profile_reference_values()
|