(
*,
status_code: int,
actual_cost: float | None = None,
usage_metrics: UsageMetrics | None = None,
streaming: bool,
error_code: str = "",
error_stage: str = "",
error_message: str = "",
response_content: bytes | None = None,
stream_chunks: list[bytes] | None = None,
)
| 5065 | ) |
| 5066 | |
| 5067 | def _record_route_trace( |
| 5068 | *, |
| 5069 | status_code: int, |
| 5070 | actual_cost: float | None = None, |
| 5071 | usage_metrics: UsageMetrics | None = None, |
| 5072 | streaming: bool, |
| 5073 | error_code: str = "", |
| 5074 | error_stage: str = "", |
| 5075 | error_message: str = "", |
| 5076 | response_content: bytes | None = None, |
| 5077 | stream_chunks: list[bytes] | None = None, |
| 5078 | ) -> None: |
| 5079 | method_value = route_method if is_virtual else "passthrough" |
| 5080 | confidence_value = confidence if is_virtual else 1.0 |
| 5081 | savings_value = savings if is_virtual else 0.0 |
| 5082 | timestamp_value = time.time() |
| 5083 | |
| 5084 | if is_virtual or status_code == 200: |
| 5085 | completed_record = RouteRecord( |
| 5086 | timestamp=timestamp_value, |
| 5087 | requested_model=requested_model, |
| 5088 | mode=mode_value, |
| 5089 | model=selected_model, |
| 5090 | tier=tier_value, |
| 5091 | decision_tier=decision_tier or tier_value, |
| 5092 | served_quality=served_quality_value, |
| 5093 | served_quality_target=served_quality_target_value, |
| 5094 | served_quality_floor=served_quality_floor_value, |
| 5095 | capability_lane=capability_lane_value, |
| 5096 | confidence=confidence_value, |
| 5097 | method=method_value, # type: ignore[arg-type] |
| 5098 | raw_confidence=raw_confidence, |
| 5099 | confidence_source=confidence_source, |
| 5100 | calibration_version=calibration_version, |
| 5101 | calibration_sample_count=calibration_sample_count, |
| 5102 | calibration_temperature=calibration_temperature, |
| 5103 | calibration_applied_tags=calibration_applied_tags, |
| 5104 | estimated_cost=estimated_cost, |
| 5105 | baseline_cost=baseline_cost, |
| 5106 | actual_cost=actual_cost, |
| 5107 | savings=savings_value, |
| 5108 | latency_us=route_latency_us, |
| 5109 | usage_input_tokens=usage_metrics.input_tokens_total if usage_metrics else 0, |
| 5110 | usage_output_tokens=usage_metrics.output_tokens if usage_metrics else 0, |
| 5111 | cache_read_input_tokens=usage_metrics.cache_read_input_tokens if usage_metrics else 0, |
| 5112 | cache_write_input_tokens=usage_metrics.cache_write_input_tokens if usage_metrics else 0, |
| 5113 | cache_hit_ratio=usage_metrics.cache_hit_ratio if usage_metrics else 0.0, |
| 5114 | transport=transport_decision.selected_transport, |
| 5115 | cache_mode=_cache_mode_name(cache_plan), |
| 5116 | cache_family=_cache_family_name(cache_plan), |
| 5117 | cache_breakpoints=cache_plan.cache_breakpoints, |
| 5118 | input_tokens_before=input_tokens_before, |
| 5119 | input_tokens_after=input_tokens_after, |
| 5120 | artifacts_created=artifacts_created, |
| 5121 | compacted_messages=compacted_messages, |
| 5122 | semantic_summaries=semantic_summaries, |
| 5123 | semantic_calls=semantic_calls, |
| 5124 | semantic_failures=semantic_failures, |
no test coverage detected