@@ -145,16 +145,16 @@ def test_extract_portkey_metadata(self) -> None:
145145 assert "Authorization" not in metadata ["portkeyHeaders" ]
146146
147147 def test_extract_portkey_unit_metadata (self ) -> None :
148- """Unit metadata should capture headers, cost, and provider hints."""
148+ """Unit metadata should capture headers and retry/option index hints."""
149149 from openlayer .lib .integrations .portkey_tracer import extract_portkey_unit_metadata
150150
151151 unit = SimpleNamespace (
152152 system_fingerprint = "fingerprint-123" ,
153153 _response_headers = {
154154 "x-portkey-trace-id" : "trace-1" ,
155- "x-portkey-provider" : "anthropic" ,
156155 "x-portkey-cache-status" : "HIT" ,
157- "x-portkey-cost" : "0.45" ,
156+ "x-portkey-retry-attempt-count" : "2" ,
157+ "x-portkey-last-used-option-index" : "config.targets[1]" ,
158158 "content-type" : "application/json" ,
159159 },
160160 )
@@ -163,9 +163,9 @@ def test_extract_portkey_unit_metadata(self) -> None:
163163
164164 assert metadata ["system_fingerprint" ] == "fingerprint-123"
165165 assert metadata ["portkey_trace_id" ] == "trace-1"
166- assert metadata ["provider" ] == "anthropic"
167166 assert metadata ["portkey_cache_status" ] == "HIT"
168- assert metadata ["cost" ] == pytest .approx (0.45 )
167+ assert metadata ["portkey_retry_attempt_count" ] == "2"
168+ assert metadata ["portkey_last_used_option_index" ] == "config.targets[1]"
169169 assert metadata ["portkey_model" ] == "claude-3-opus"
170170 assert metadata ["response_headers" ]["content-type" ] == "application/json"
171171
@@ -178,8 +178,9 @@ class DictLikeHeaders:
178178 def __init__ (self ):
179179 self ._data = {
180180 "x-portkey-trace-id" : "trace-2" ,
181- "x-portkey-provider" : "openai" ,
182181 "x-portkey-cache-status" : "MISS" ,
182+ "x-portkey-retry-attempt-count" : "3" ,
183+ "x-portkey-last-used-option-index" : "config.targets[1]" ,
183184 }
184185
185186 def items (self ):
@@ -192,8 +193,9 @@ def items(self):
192193 metadata = extract_portkey_unit_metadata (unit , "gpt-4" )
193194
194195 assert metadata ["portkey_trace_id" ] == "trace-2"
195- assert metadata ["provider" ] == "openai"
196196 assert metadata ["portkey_cache_status" ] == "MISS"
197+ assert metadata ["portkey_retry_attempt_count" ] == "3"
198+ assert metadata ["portkey_last_used_option_index" ] == "config.targets[1]"
197199
198200 def test_extract_usage_from_response (self ) -> None :
199201 """Usage extraction should read OpenAI-style usage objects."""
@@ -318,9 +320,8 @@ def test_detect_provider_from_response_fallback(self) -> None:
318320 """Provider detection should fall back to response metadata or model name."""
319321 from openlayer .lib .integrations .portkey_tracer import detect_provider
320322
321- client = SimpleNamespace (headers = { "x-portkey-provider" : "openai" } )
323+ client = SimpleNamespace ()
322324 response = SimpleNamespace (
323- _response_headers = {"X-Portkey-Provider" : "anthropic" },
324325 response_metadata = {"provider" : "anthropic" },
325326 )
326327
@@ -335,7 +336,6 @@ def test_detect_provider_from_chunk_fallback(self) -> None:
335336
336337 chunk = SimpleNamespace (
337338 response_metadata = {"provider" : "cohere" },
338- _response_headers = {"X-Portkey-Provider" : "cohere" },
339339 )
340340 client = SimpleNamespace ()
341341
0 commit comments