Keep assistant prompts focused on semantic metrics
This commit is contained in:
@@ -171,6 +171,15 @@ class GeoAssistantService:
|
||||
return round(value, 4)
|
||||
return round(value, 2)
|
||||
|
||||
@staticmethod
|
||||
def model_context_metrics(metrics: list[dict[str, Any]]) -> list[dict[str, Any]]:
|
||||
meaningful_metrics = [
|
||||
metric
|
||||
for metric in metrics
|
||||
if str(metric.get("metric_unit") or "").casefold().strip() not in {"objecten", "features"}
|
||||
]
|
||||
return meaningful_metrics or metrics
|
||||
|
||||
@staticmethod
|
||||
def normalize_plain_text(answer: str) -> str:
|
||||
lines: list[str] = []
|
||||
@@ -418,6 +427,7 @@ class GeoAssistantService:
|
||||
"is_estimate": summary.get("is_estimate", False),
|
||||
}
|
||||
]
|
||||
model_metric_ids = {id(metric) for metric in self.model_context_metrics(metrics)}
|
||||
serialized_metrics: list[dict[str, Any]] = []
|
||||
for metric in metrics:
|
||||
if not isinstance(metric, dict):
|
||||
@@ -433,6 +443,8 @@ class GeoAssistantService:
|
||||
is_estimate=bool(metric.get("is_estimate")),
|
||||
)
|
||||
context_metrics.append(item)
|
||||
if id(metric) not in model_metric_ids:
|
||||
continue
|
||||
serialized_metrics.append(item.model_dump(mode="json"))
|
||||
serialized_metrics[-1]["value"] = self.rounded_context_value(item.value, item.unit)
|
||||
serialized_metrics[-1]["measurement_quality"] = (
|
||||
|
||||
Reference in New Issue
Block a user