diff --git a/py/src/braintrust/integrations/openai/cassettes/1.71.0/test_openai_responses_stream_incomplete[async].yaml b/py/src/braintrust/integrations/openai/cassettes/1.71.0/test_openai_responses_stream_incomplete[async].yaml new file mode 100644 index 00000000..b49ac020 --- /dev/null +++ b/py/src/braintrust/integrations/openai/cassettes/1.71.0/test_openai_responses_stream_incomplete[async].yaml @@ -0,0 +1,212 @@ +interactions: +- request: + body: '{"input":"Write a long essay about the history of mathematics.","model":"gpt-4o-mini","max_output_tokens":16,"stream":true}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '123' + content-type: + - application/json + host: + - api.openai.com + user-agent: + - AsyncOpenAI/Python 1.71.0 + x-stainless-arch: + - arm64 + x-stainless-async: + - async:asyncio + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.71.0 + x-stainless-read-timeout: + - '600' + x-stainless-retry-count: + - '0' + x-stainless-runtime: + - CPython + x-stainless-runtime-version: + - 3.14.7 + method: POST + uri: https://api.openai.com/v1/responses + response: + body: + string: 'event: response.created + + data: {"type":"response.created","response":{"id":"resp_0a185ea2bc424fd8006ad68dde0cd087d08bfa8cb094827a5a","object":"response","created_at":1792445918,"status":"in_progress","access_programs":null,"background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":16,"max_tool_calls":null,"model":"gpt-4o-mini-2024-07-18","moderation":null,"output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"auto","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":0} + + + event: response.in_progress + + data: {"type":"response.in_progress","response":{"id":"resp_0a185ea2bc424fd8006ad68dde0cd087d08bfa8cb094827a5a","object":"response","created_at":1792445918,"status":"in_progress","access_programs":null,"background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":16,"max_tool_calls":null,"model":"gpt-4o-mini-2024-07-18","moderation":null,"output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"auto","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":1} + + + event: response.output_item.added + + data: {"type":"response.output_item.added","item":{"id":"msg_0a185ea2bc424fd8006ad68dde7cc887d0a13d55c06451d30e","type":"message","status":"in_progress","content":[],"role":"assistant"},"output_index":0,"sequence_number":2} + + + event: response.content_part.added + + data: {"type":"response.content_part.added","content_index":0,"item_id":"msg_0a185ea2bc424fd8006ad68dde7cc887d0a13d55c06451d30e","output_index":0,"part":{"type":"output_text","annotations":[],"logprobs":[],"text":""},"sequence_number":3} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"##","item_id":"msg_0a185ea2bc424fd8006ad68dde7cc887d0a13d55c06451d30e","logprobs":[],"obfuscation":"mZsINJ7q7XHnFA","output_index":0,"sequence_number":4} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" The","item_id":"msg_0a185ea2bc424fd8006ad68dde7cc887d0a13d55c06451d30e","logprobs":[],"obfuscation":"BgjVDNLDtCae","output_index":0,"sequence_number":5} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" History","item_id":"msg_0a185ea2bc424fd8006ad68dde7cc887d0a13d55c06451d30e","logprobs":[],"obfuscation":"8C4Ki3ch","output_index":0,"sequence_number":6} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" of","item_id":"msg_0a185ea2bc424fd8006ad68dde7cc887d0a13d55c06451d30e","logprobs":[],"obfuscation":"XaMEWl83M98Wp","output_index":0,"sequence_number":7} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Mathematics","item_id":"msg_0a185ea2bc424fd8006ad68dde7cc887d0a13d55c06451d30e","logprobs":[],"obfuscation":"XGUR","output_index":0,"sequence_number":8} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":":","item_id":"msg_0a185ea2bc424fd8006ad68dde7cc887d0a13d55c06451d30e","logprobs":[],"obfuscation":"ZIin3WkIv6zRDI8","output_index":0,"sequence_number":9} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" A","item_id":"msg_0a185ea2bc424fd8006ad68dde7cc887d0a13d55c06451d30e","logprobs":[],"obfuscation":"2r2HRhHBCWioPr","output_index":0,"sequence_number":10} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Journey","item_id":"msg_0a185ea2bc424fd8006ad68dde7cc887d0a13d55c06451d30e","logprobs":[],"obfuscation":"TGj8J32j","output_index":0,"sequence_number":11} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Through","item_id":"msg_0a185ea2bc424fd8006ad68dde7cc887d0a13d55c06451d30e","logprobs":[],"obfuscation":"xCNzxb7G","output_index":0,"sequence_number":12} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Numbers","item_id":"msg_0a185ea2bc424fd8006ad68dde7cc887d0a13d55c06451d30e","logprobs":[],"obfuscation":"532dGNXz","output_index":0,"sequence_number":13} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" and","item_id":"msg_0a185ea2bc424fd8006ad68dde7cc887d0a13d55c06451d30e","logprobs":[],"obfuscation":"b59oNI0hMgRb","output_index":0,"sequence_number":14} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Concepts","item_id":"msg_0a185ea2bc424fd8006ad68dde7cc887d0a13d55c06451d30e","logprobs":[],"obfuscation":"ZGMwZUN","output_index":0,"sequence_number":15} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"\n\n","item_id":"msg_0a185ea2bc424fd8006ad68dde7cc887d0a13d55c06451d30e","logprobs":[],"obfuscation":"yqnoLONYnddnzZ","output_index":0,"sequence_number":16} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"Mat","item_id":"msg_0a185ea2bc424fd8006ad68dde7cc887d0a13d55c06451d30e","logprobs":[],"obfuscation":"a29mEakelJahr","output_index":0,"sequence_number":17} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"hemat","item_id":"msg_0a185ea2bc424fd8006ad68dde7cc887d0a13d55c06451d30e","logprobs":[],"obfuscation":"YT2xNlnH95c","output_index":0,"sequence_number":18} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"ics","item_id":"msg_0a185ea2bc424fd8006ad68dde7cc887d0a13d55c06451d30e","logprobs":[],"obfuscation":"yeVWDGmnygAiJ","output_index":0,"sequence_number":19} + + + event: response.output_text.done + + data: {"type":"response.output_text.done","content_index":0,"item_id":"msg_0a185ea2bc424fd8006ad68dde7cc887d0a13d55c06451d30e","logprobs":[],"output_index":0,"sequence_number":20,"text":"## + The History of Mathematics: A Journey Through Numbers and Concepts\n\nMathematics"} + + + event: response.content_part.done + + data: {"type":"response.content_part.done","content_index":0,"item_id":"msg_0a185ea2bc424fd8006ad68dde7cc887d0a13d55c06451d30e","output_index":0,"part":{"type":"output_text","annotations":[],"logprobs":[],"text":"## + The History of Mathematics: A Journey Through Numbers and Concepts\n\nMathematics"},"sequence_number":21} + + + event: response.output_item.done + + data: {"type":"response.output_item.done","item":{"id":"msg_0a185ea2bc424fd8006ad68dde7cc887d0a13d55c06451d30e","type":"message","status":"incomplete","content":[{"type":"output_text","annotations":[],"logprobs":[],"text":"## + The History of Mathematics: A Journey Through Numbers and Concepts\n\nMathematics"}],"role":"assistant"},"output_index":0,"sequence_number":22} + + + event: response.incomplete + + data: {"type":"response.incomplete","response":{"id":"resp_0a185ea2bc424fd8006ad68dde0cd087d08bfa8cb094827a5a","object":"response","created_at":1792445918,"status":"incomplete","access_programs":null,"background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":{"reason":"max_output_tokens"},"instructions":null,"max_output_tokens":16,"max_tool_calls":null,"model":"gpt-4o-mini-2024-07-18","moderation":null,"output":[{"id":"msg_0a185ea2bc424fd8006ad68dde7cc887d0a13d55c06451d30e","type":"message","status":"incomplete","content":[{"type":"output_text","annotations":[],"logprobs":[],"text":"## + The History of Mathematics: A Journey Through Numbers and Concepts\n\nMathematics"}],"role":"assistant"}],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"default","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":{"input_tokens":17,"input_tokens_details":{"cache_write_tokens":0,"cached_tokens":0},"output_tokens":16,"output_tokens_details":{"reasoning_tokens":0},"total_tokens":33},"user":null,"metadata":{}},"sequence_number":23} + + + ' + headers: + access-control-expose-headers: + - X-Request-ID + - CF-Ray + - CF-Ray + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + cf-ray: + - a4d2ee4b0def7ad9-SJC + connection: + - keep-alive + content-type: + - text/event-stream; charset=utf-8 + date: + - Mon, 19 Oct 2026 21:38:38 GMT + openai-processing-ms: + - '462' + openai-version: + - '2020-10-01' + server: + - cloudflare + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + x-content-type-options: + - nosniff + x-ratelimit-limit-requests: + - '30000' + x-ratelimit-limit-tokens: + - '150000000' + x-ratelimit-remaining-requests: + - '29987' + x-ratelimit-remaining-tokens: + - '149999572' + x-ratelimit-reset-requests: + - 26ms + x-ratelimit-reset-tokens: + - 0s + x-request-id: + - req_306c50f47ab14a80b84bf27ae13cc711 + status: + code: 200 + message: OK +version: 1 diff --git a/py/src/braintrust/integrations/openai/cassettes/1.71.0/test_openai_responses_stream_incomplete[sync].yaml b/py/src/braintrust/integrations/openai/cassettes/1.71.0/test_openai_responses_stream_incomplete[sync].yaml new file mode 100644 index 00000000..7935032a --- /dev/null +++ b/py/src/braintrust/integrations/openai/cassettes/1.71.0/test_openai_responses_stream_incomplete[sync].yaml @@ -0,0 +1,216 @@ +interactions: +- request: + body: '{"input":"Write a long essay about the history of mathematics.","model":"gpt-4o-mini","max_output_tokens":16,"stream":true}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '123' + content-type: + - application/json + host: + - api.openai.com + user-agent: + - OpenAI/Python 1.71.0 + x-stainless-arch: + - arm64 + x-stainless-async: + - 'false' + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.71.0 + x-stainless-read-timeout: + - '600' + x-stainless-retry-count: + - '0' + x-stainless-runtime: + - CPython + x-stainless-runtime-version: + - 3.14.7 + method: POST + uri: https://api.openai.com/v1/responses + response: + body: + string: 'event: response.created + + data: {"type":"response.created","response":{"id":"resp_0070cbdb54b40767006ad68ddcffc087d0acf2b2ca1c3a8e1f","object":"response","created_at":1792445917,"status":"in_progress","access_programs":null,"background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":16,"max_tool_calls":null,"model":"gpt-4o-mini-2024-07-18","moderation":null,"output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"auto","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":0} + + + event: response.in_progress + + data: {"type":"response.in_progress","response":{"id":"resp_0070cbdb54b40767006ad68ddcffc087d0acf2b2ca1c3a8e1f","object":"response","created_at":1792445917,"status":"in_progress","access_programs":null,"background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":16,"max_tool_calls":null,"model":"gpt-4o-mini-2024-07-18","moderation":null,"output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"auto","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":1} + + + event: response.output_item.added + + data: {"type":"response.output_item.added","item":{"id":"msg_0070cbdb54b40767006ad68ddd61d087d08a856bccebbcf472","type":"message","status":"in_progress","content":[],"role":"assistant"},"output_index":0,"sequence_number":2} + + + event: response.content_part.added + + data: {"type":"response.content_part.added","content_index":0,"item_id":"msg_0070cbdb54b40767006ad68ddd61d087d08a856bccebbcf472","output_index":0,"part":{"type":"output_text","annotations":[],"logprobs":[],"text":""},"sequence_number":3} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"###","item_id":"msg_0070cbdb54b40767006ad68ddd61d087d08a856bccebbcf472","logprobs":[],"obfuscation":"7KoB2g9clylnY","output_index":0,"sequence_number":4} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" The","item_id":"msg_0070cbdb54b40767006ad68ddd61d087d08a856bccebbcf472","logprobs":[],"obfuscation":"uySC1l7abiPZ","output_index":0,"sequence_number":5} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" History","item_id":"msg_0070cbdb54b40767006ad68ddd61d087d08a856bccebbcf472","logprobs":[],"obfuscation":"JsHRxvXV","output_index":0,"sequence_number":6} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" of","item_id":"msg_0070cbdb54b40767006ad68ddd61d087d08a856bccebbcf472","logprobs":[],"obfuscation":"5lsRkbctOnbTj","output_index":0,"sequence_number":7} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Mathematics","item_id":"msg_0070cbdb54b40767006ad68ddd61d087d08a856bccebbcf472","logprobs":[],"obfuscation":"HA86","output_index":0,"sequence_number":8} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"\n\n","item_id":"msg_0070cbdb54b40767006ad68ddd61d087d08a856bccebbcf472","logprobs":[],"obfuscation":"vDfi52SuKsfvLW","output_index":0,"sequence_number":9} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"Mat","item_id":"msg_0070cbdb54b40767006ad68ddd61d087d08a856bccebbcf472","logprobs":[],"obfuscation":"1SDmpKy9MQAyP","output_index":0,"sequence_number":10} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"hemat","item_id":"msg_0070cbdb54b40767006ad68ddd61d087d08a856bccebbcf472","logprobs":[],"obfuscation":"oBG8cQt1O0t","output_index":0,"sequence_number":11} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"ics","item_id":"msg_0070cbdb54b40767006ad68ddd61d087d08a856bccebbcf472","logprobs":[],"obfuscation":"0W5nVoZWfG2oH","output_index":0,"sequence_number":12} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" is","item_id":"msg_0070cbdb54b40767006ad68ddd61d087d08a856bccebbcf472","logprobs":[],"obfuscation":"ds73bf60PzTO6","output_index":0,"sequence_number":13} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" often","item_id":"msg_0070cbdb54b40767006ad68ddd61d087d08a856bccebbcf472","logprobs":[],"obfuscation":"xDMohIJVvI","output_index":0,"sequence_number":14} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" considered","item_id":"msg_0070cbdb54b40767006ad68ddd61d087d08a856bccebbcf472","logprobs":[],"obfuscation":"6Ys3E","output_index":0,"sequence_number":15} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" the","item_id":"msg_0070cbdb54b40767006ad68ddd61d087d08a856bccebbcf472","logprobs":[],"obfuscation":"J2S1BaXYmv09","output_index":0,"sequence_number":16} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" universal","item_id":"msg_0070cbdb54b40767006ad68ddd61d087d08a856bccebbcf472","logprobs":[],"obfuscation":"mKP4Di","output_index":0,"sequence_number":17} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" language","item_id":"msg_0070cbdb54b40767006ad68ddd61d087d08a856bccebbcf472","logprobs":[],"obfuscation":"VkjKyug","output_index":0,"sequence_number":18} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":",","item_id":"msg_0070cbdb54b40767006ad68ddd61d087d08a856bccebbcf472","logprobs":[],"obfuscation":"GIaQU1Ts8DzyaeO","output_index":0,"sequence_number":19} + + + event: response.output_text.done + + data: {"type":"response.output_text.done","content_index":0,"item_id":"msg_0070cbdb54b40767006ad68ddd61d087d08a856bccebbcf472","logprobs":[],"output_index":0,"sequence_number":20,"text":"### + The History of Mathematics\n\nMathematics is often considered the universal + language,"} + + + event: response.content_part.done + + data: {"type":"response.content_part.done","content_index":0,"item_id":"msg_0070cbdb54b40767006ad68ddd61d087d08a856bccebbcf472","output_index":0,"part":{"type":"output_text","annotations":[],"logprobs":[],"text":"### + The History of Mathematics\n\nMathematics is often considered the universal + language,"},"sequence_number":21} + + + event: response.output_item.done + + data: {"type":"response.output_item.done","item":{"id":"msg_0070cbdb54b40767006ad68ddd61d087d08a856bccebbcf472","type":"message","status":"incomplete","content":[{"type":"output_text","annotations":[],"logprobs":[],"text":"### + The History of Mathematics\n\nMathematics is often considered the universal + language,"}],"role":"assistant"},"output_index":0,"sequence_number":22} + + + event: response.incomplete + + data: {"type":"response.incomplete","response":{"id":"resp_0070cbdb54b40767006ad68ddcffc087d0acf2b2ca1c3a8e1f","object":"response","created_at":1792445917,"status":"incomplete","access_programs":null,"background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":{"reason":"max_output_tokens"},"instructions":null,"max_output_tokens":16,"max_tool_calls":null,"model":"gpt-4o-mini-2024-07-18","moderation":null,"output":[{"id":"msg_0070cbdb54b40767006ad68ddd61d087d08a856bccebbcf472","type":"message","status":"incomplete","content":[{"type":"output_text","annotations":[],"logprobs":[],"text":"### + The History of Mathematics\n\nMathematics is often considered the universal + language,"}],"role":"assistant"}],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"default","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":{"input_tokens":17,"input_tokens_details":{"cache_write_tokens":0,"cached_tokens":0},"output_tokens":16,"output_tokens_details":{"reasoning_tokens":0},"total_tokens":33},"user":null,"metadata":{}},"sequence_number":23} + + + ' + headers: + access-control-expose-headers: + - X-Request-ID + - CF-Ray + - CF-Ray + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + cf-ray: + - a4d2ee44be1f707f-SJC + connection: + - keep-alive + content-type: + - text/event-stream; charset=utf-8 + date: + - Mon, 19 Oct 2026 21:38:37 GMT + openai-processing-ms: + - '423' + openai-version: + - '2020-10-01' + server: + - cloudflare + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + x-content-type-options: + - nosniff + x-ratelimit-limit-requests: + - '30000' + x-ratelimit-limit-tokens: + - '150000000' + x-ratelimit-remaining-requests: + - '29999' + x-ratelimit-remaining-tokens: + - '149999965' + x-ratelimit-reset-requests: + - 2ms + x-ratelimit-reset-tokens: + - 0s + x-request-id: + - req_9fa111acb3c44dd48a6d009dc9b9fba6 + status: + code: 200 + message: OK +version: 1 diff --git a/py/src/braintrust/integrations/openai/cassettes/1.77.0/test_openai_responses_stream_incomplete[async].yaml b/py/src/braintrust/integrations/openai/cassettes/1.77.0/test_openai_responses_stream_incomplete[async].yaml new file mode 100644 index 00000000..b1458773 --- /dev/null +++ b/py/src/braintrust/integrations/openai/cassettes/1.77.0/test_openai_responses_stream_incomplete[async].yaml @@ -0,0 +1,212 @@ +interactions: +- request: + body: '{"input":"Write a long essay about the history of mathematics.","model":"gpt-4o-mini","max_output_tokens":16,"stream":true}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '123' + content-type: + - application/json + host: + - api.openai.com + user-agent: + - AsyncOpenAI/Python 1.77.0 + x-stainless-arch: + - arm64 + x-stainless-async: + - async:asyncio + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.77.0 + x-stainless-read-timeout: + - '600' + x-stainless-retry-count: + - '0' + x-stainless-runtime: + - CPython + x-stainless-runtime-version: + - 3.14.7 + method: POST + uri: https://api.openai.com/v1/responses + response: + body: + string: 'event: response.created + + data: {"type":"response.created","response":{"id":"resp_03268e9d225c4208006ad68dd814c887d0a93bcc406ab08a9d","object":"response","created_at":1792445912,"status":"in_progress","access_programs":null,"background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":16,"max_tool_calls":null,"model":"gpt-4o-mini-2024-07-18","moderation":null,"output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"auto","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":0} + + + event: response.in_progress + + data: {"type":"response.in_progress","response":{"id":"resp_03268e9d225c4208006ad68dd814c887d0a93bcc406ab08a9d","object":"response","created_at":1792445912,"status":"in_progress","access_programs":null,"background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":16,"max_tool_calls":null,"model":"gpt-4o-mini-2024-07-18","moderation":null,"output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"auto","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":1} + + + event: response.output_item.added + + data: {"type":"response.output_item.added","item":{"id":"msg_03268e9d225c4208006ad68dd88bc087d083da06921653b581","type":"message","status":"in_progress","content":[],"role":"assistant"},"output_index":0,"sequence_number":2} + + + event: response.content_part.added + + data: {"type":"response.content_part.added","content_index":0,"item_id":"msg_03268e9d225c4208006ad68dd88bc087d083da06921653b581","output_index":0,"part":{"type":"output_text","annotations":[],"logprobs":[],"text":""},"sequence_number":3} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"##","item_id":"msg_03268e9d225c4208006ad68dd88bc087d083da06921653b581","logprobs":[],"obfuscation":"3wEeui502swX78","output_index":0,"sequence_number":4} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" The","item_id":"msg_03268e9d225c4208006ad68dd88bc087d083da06921653b581","logprobs":[],"obfuscation":"8rFghC3uA2fR","output_index":0,"sequence_number":5} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" History","item_id":"msg_03268e9d225c4208006ad68dd88bc087d083da06921653b581","logprobs":[],"obfuscation":"YUycvgXw","output_index":0,"sequence_number":6} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" of","item_id":"msg_03268e9d225c4208006ad68dd88bc087d083da06921653b581","logprobs":[],"obfuscation":"L8Y0DKtwnsNzJ","output_index":0,"sequence_number":7} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Mathematics","item_id":"msg_03268e9d225c4208006ad68dd88bc087d083da06921653b581","logprobs":[],"obfuscation":"ASBL","output_index":0,"sequence_number":8} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":":","item_id":"msg_03268e9d225c4208006ad68dd88bc087d083da06921653b581","logprobs":[],"obfuscation":"mJwBlLcIMaQVHcC","output_index":0,"sequence_number":9} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" A","item_id":"msg_03268e9d225c4208006ad68dd88bc087d083da06921653b581","logprobs":[],"obfuscation":"VsVllvHny8eX5R","output_index":0,"sequence_number":10} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Journey","item_id":"msg_03268e9d225c4208006ad68dd88bc087d083da06921653b581","logprobs":[],"obfuscation":"gdOvzM80","output_index":0,"sequence_number":11} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Through","item_id":"msg_03268e9d225c4208006ad68dd88bc087d083da06921653b581","logprobs":[],"obfuscation":"VWWYuLI9","output_index":0,"sequence_number":12} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Time","item_id":"msg_03268e9d225c4208006ad68dd88bc087d083da06921653b581","logprobs":[],"obfuscation":"3lsUkgnLlqe","output_index":0,"sequence_number":13} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"\n\n","item_id":"msg_03268e9d225c4208006ad68dd88bc087d083da06921653b581","logprobs":[],"obfuscation":"bxaGgKMpqybZke","output_index":0,"sequence_number":14} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"Mat","item_id":"msg_03268e9d225c4208006ad68dd88bc087d083da06921653b581","logprobs":[],"obfuscation":"nLLoCBgDj4WKL","output_index":0,"sequence_number":15} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"hemat","item_id":"msg_03268e9d225c4208006ad68dd88bc087d083da06921653b581","logprobs":[],"obfuscation":"TRYxocYnMB3","output_index":0,"sequence_number":16} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"ics","item_id":"msg_03268e9d225c4208006ad68dd88bc087d083da06921653b581","logprobs":[],"obfuscation":"3jxjBSXQYVoyB","output_index":0,"sequence_number":17} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":",","item_id":"msg_03268e9d225c4208006ad68dd88bc087d083da06921653b581","logprobs":[],"obfuscation":"wXOT7iNPHvmdHMd","output_index":0,"sequence_number":18} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" a","item_id":"msg_03268e9d225c4208006ad68dd88bc087d083da06921653b581","logprobs":[],"obfuscation":"LeLmMjN2L6DXXl","output_index":0,"sequence_number":19} + + + event: response.output_text.done + + data: {"type":"response.output_text.done","content_index":0,"item_id":"msg_03268e9d225c4208006ad68dd88bc087d083da06921653b581","logprobs":[],"output_index":0,"sequence_number":20,"text":"## + The History of Mathematics: A Journey Through Time\n\nMathematics, a"} + + + event: response.content_part.done + + data: {"type":"response.content_part.done","content_index":0,"item_id":"msg_03268e9d225c4208006ad68dd88bc087d083da06921653b581","output_index":0,"part":{"type":"output_text","annotations":[],"logprobs":[],"text":"## + The History of Mathematics: A Journey Through Time\n\nMathematics, a"},"sequence_number":21} + + + event: response.output_item.done + + data: {"type":"response.output_item.done","item":{"id":"msg_03268e9d225c4208006ad68dd88bc087d083da06921653b581","type":"message","status":"incomplete","content":[{"type":"output_text","annotations":[],"logprobs":[],"text":"## + The History of Mathematics: A Journey Through Time\n\nMathematics, a"}],"role":"assistant"},"output_index":0,"sequence_number":22} + + + event: response.incomplete + + data: {"type":"response.incomplete","response":{"id":"resp_03268e9d225c4208006ad68dd814c887d0a93bcc406ab08a9d","object":"response","created_at":1792445912,"status":"incomplete","access_programs":null,"background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":{"reason":"max_output_tokens"},"instructions":null,"max_output_tokens":16,"max_tool_calls":null,"model":"gpt-4o-mini-2024-07-18","moderation":null,"output":[{"id":"msg_03268e9d225c4208006ad68dd88bc087d083da06921653b581","type":"message","status":"incomplete","content":[{"type":"output_text","annotations":[],"logprobs":[],"text":"## + The History of Mathematics: A Journey Through Time\n\nMathematics, a"}],"role":"assistant"}],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"default","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":{"input_tokens":17,"input_tokens_details":{"cache_write_tokens":0,"cached_tokens":0},"output_tokens":16,"output_tokens_details":{"reasoning_tokens":0},"total_tokens":33},"user":null,"metadata":{}},"sequence_number":23} + + + ' + headers: + access-control-expose-headers: + - X-Request-ID + - CF-Ray + - CF-Ray + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + cf-ray: + - a4d2ee25be00ed38-SJC + connection: + - keep-alive + content-type: + - text/event-stream; charset=utf-8 + date: + - Mon, 19 Oct 2026 21:38:32 GMT + openai-processing-ms: + - '499' + openai-version: + - '2020-10-01' + server: + - cloudflare + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + x-content-type-options: + - nosniff + x-ratelimit-limit-requests: + - '30000' + x-ratelimit-limit-tokens: + - '150000000' + x-ratelimit-remaining-requests: + - '29998' + x-ratelimit-remaining-tokens: + - '149999915' + x-ratelimit-reset-requests: + - 4ms + x-ratelimit-reset-tokens: + - 0s + x-request-id: + - req_78ca35f3c9eb4fc4bba4c3a923abb0a8 + status: + code: 200 + message: OK +version: 1 diff --git a/py/src/braintrust/integrations/openai/cassettes/1.77.0/test_openai_responses_stream_incomplete[sync].yaml b/py/src/braintrust/integrations/openai/cassettes/1.77.0/test_openai_responses_stream_incomplete[sync].yaml new file mode 100644 index 00000000..16acc4f6 --- /dev/null +++ b/py/src/braintrust/integrations/openai/cassettes/1.77.0/test_openai_responses_stream_incomplete[sync].yaml @@ -0,0 +1,212 @@ +interactions: +- request: + body: '{"input":"Write a long essay about the history of mathematics.","model":"gpt-4o-mini","max_output_tokens":16,"stream":true}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '123' + content-type: + - application/json + host: + - api.openai.com + user-agent: + - OpenAI/Python 1.77.0 + x-stainless-arch: + - arm64 + x-stainless-async: + - 'false' + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.77.0 + x-stainless-read-timeout: + - '600' + x-stainless-retry-count: + - '0' + x-stainless-runtime: + - CPython + x-stainless-runtime-version: + - 3.14.7 + method: POST + uri: https://api.openai.com/v1/responses + response: + body: + string: 'event: response.created + + data: {"type":"response.created","response":{"id":"resp_03d42a4e3e7659ac006ad68dd6e68887d0871e7cb728d6459b","object":"response","created_at":1792445910,"status":"in_progress","access_programs":null,"background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":16,"max_tool_calls":null,"model":"gpt-4o-mini-2024-07-18","moderation":null,"output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"auto","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":0} + + + event: response.in_progress + + data: {"type":"response.in_progress","response":{"id":"resp_03d42a4e3e7659ac006ad68dd6e68887d0871e7cb728d6459b","object":"response","created_at":1792445910,"status":"in_progress","access_programs":null,"background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":16,"max_tool_calls":null,"model":"gpt-4o-mini-2024-07-18","moderation":null,"output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"auto","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":1} + + + event: response.output_item.added + + data: {"type":"response.output_item.added","item":{"id":"msg_03d42a4e3e7659ac006ad68dd7567887d0a58e290a186cbf92","type":"message","status":"in_progress","content":[],"role":"assistant"},"output_index":0,"sequence_number":2} + + + event: response.content_part.added + + data: {"type":"response.content_part.added","content_index":0,"item_id":"msg_03d42a4e3e7659ac006ad68dd7567887d0a58e290a186cbf92","output_index":0,"part":{"type":"output_text","annotations":[],"logprobs":[],"text":""},"sequence_number":3} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"###","item_id":"msg_03d42a4e3e7659ac006ad68dd7567887d0a58e290a186cbf92","logprobs":[],"obfuscation":"NRzXcFMr7uABg","output_index":0,"sequence_number":4} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" The","item_id":"msg_03d42a4e3e7659ac006ad68dd7567887d0a58e290a186cbf92","logprobs":[],"obfuscation":"NgohEfbYkJIq","output_index":0,"sequence_number":5} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" History","item_id":"msg_03d42a4e3e7659ac006ad68dd7567887d0a58e290a186cbf92","logprobs":[],"obfuscation":"HENnhw7a","output_index":0,"sequence_number":6} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" of","item_id":"msg_03d42a4e3e7659ac006ad68dd7567887d0a58e290a186cbf92","logprobs":[],"obfuscation":"nxL330tcgSjMD","output_index":0,"sequence_number":7} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Mathematics","item_id":"msg_03d42a4e3e7659ac006ad68dd7567887d0a58e290a186cbf92","logprobs":[],"obfuscation":"Xs8P","output_index":0,"sequence_number":8} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":":","item_id":"msg_03d42a4e3e7659ac006ad68dd7567887d0a58e290a186cbf92","logprobs":[],"obfuscation":"jV6KGaQQ6G2yv2X","output_index":0,"sequence_number":9} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" A","item_id":"msg_03d42a4e3e7659ac006ad68dd7567887d0a58e290a186cbf92","logprobs":[],"obfuscation":"ERSqhMj8kz8ET0","output_index":0,"sequence_number":10} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Journey","item_id":"msg_03d42a4e3e7659ac006ad68dd7567887d0a58e290a186cbf92","logprobs":[],"obfuscation":"3gSnSmAH","output_index":0,"sequence_number":11} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Through","item_id":"msg_03d42a4e3e7659ac006ad68dd7567887d0a58e290a186cbf92","logprobs":[],"obfuscation":"kq0hiec8","output_index":0,"sequence_number":12} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Time","item_id":"msg_03d42a4e3e7659ac006ad68dd7567887d0a58e290a186cbf92","logprobs":[],"obfuscation":"7whO2qXP1kq","output_index":0,"sequence_number":13} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"\n\n","item_id":"msg_03d42a4e3e7659ac006ad68dd7567887d0a58e290a186cbf92","logprobs":[],"obfuscation":"z5HqTM1cyD6xlJ","output_index":0,"sequence_number":14} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"Mat","item_id":"msg_03d42a4e3e7659ac006ad68dd7567887d0a58e290a186cbf92","logprobs":[],"obfuscation":"o1hx2yI0XoXHt","output_index":0,"sequence_number":15} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"hemat","item_id":"msg_03d42a4e3e7659ac006ad68dd7567887d0a58e290a186cbf92","logprobs":[],"obfuscation":"kXFNzfbR6LH","output_index":0,"sequence_number":16} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"ics","item_id":"msg_03d42a4e3e7659ac006ad68dd7567887d0a58e290a186cbf92","logprobs":[],"obfuscation":"le8yjILKQDbeK","output_index":0,"sequence_number":17} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":",","item_id":"msg_03d42a4e3e7659ac006ad68dd7567887d0a58e290a186cbf92","logprobs":[],"obfuscation":"DLOPuosKQgaEOAU","output_index":0,"sequence_number":18} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" often","item_id":"msg_03d42a4e3e7659ac006ad68dd7567887d0a58e290a186cbf92","logprobs":[],"obfuscation":"OSEGgqFxdw","output_index":0,"sequence_number":19} + + + event: response.output_text.done + + data: {"type":"response.output_text.done","content_index":0,"item_id":"msg_03d42a4e3e7659ac006ad68dd7567887d0a58e290a186cbf92","logprobs":[],"output_index":0,"sequence_number":20,"text":"### + The History of Mathematics: A Journey Through Time\n\nMathematics, often"} + + + event: response.content_part.done + + data: {"type":"response.content_part.done","content_index":0,"item_id":"msg_03d42a4e3e7659ac006ad68dd7567887d0a58e290a186cbf92","output_index":0,"part":{"type":"output_text","annotations":[],"logprobs":[],"text":"### + The History of Mathematics: A Journey Through Time\n\nMathematics, often"},"sequence_number":21} + + + event: response.output_item.done + + data: {"type":"response.output_item.done","item":{"id":"msg_03d42a4e3e7659ac006ad68dd7567887d0a58e290a186cbf92","type":"message","status":"incomplete","content":[{"type":"output_text","annotations":[],"logprobs":[],"text":"### + The History of Mathematics: A Journey Through Time\n\nMathematics, often"}],"role":"assistant"},"output_index":0,"sequence_number":22} + + + event: response.incomplete + + data: {"type":"response.incomplete","response":{"id":"resp_03d42a4e3e7659ac006ad68dd6e68887d0871e7cb728d6459b","object":"response","created_at":1792445910,"status":"incomplete","access_programs":null,"background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":{"reason":"max_output_tokens"},"instructions":null,"max_output_tokens":16,"max_tool_calls":null,"model":"gpt-4o-mini-2024-07-18","moderation":null,"output":[{"id":"msg_03d42a4e3e7659ac006ad68dd7567887d0a58e290a186cbf92","type":"message","status":"incomplete","content":[{"type":"output_text","annotations":[],"logprobs":[],"text":"### + The History of Mathematics: A Journey Through Time\n\nMathematics, often"}],"role":"assistant"}],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"default","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":{"input_tokens":17,"input_tokens_details":{"cache_write_tokens":0,"cached_tokens":0},"output_tokens":16,"output_tokens_details":{"reasoning_tokens":0},"total_tokens":33},"user":null,"metadata":{}},"sequence_number":23} + + + ' + headers: + access-control-expose-headers: + - X-Request-ID + - CF-Ray + - CF-Ray + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + cf-ray: + - a4d2ee1ebeeb501e-SJC + connection: + - keep-alive + content-type: + - text/event-stream; charset=utf-8 + date: + - Mon, 19 Oct 2026 21:38:31 GMT + openai-processing-ms: + - '468' + openai-version: + - '2020-10-01' + server: + - cloudflare + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + x-content-type-options: + - nosniff + x-ratelimit-limit-requests: + - '30000' + x-ratelimit-limit-tokens: + - '150000000' + x-ratelimit-remaining-requests: + - '29999' + x-ratelimit-remaining-tokens: + - '149999965' + x-ratelimit-reset-requests: + - 2ms + x-ratelimit-reset-tokens: + - 0s + x-request-id: + - req_17548391b7bb4deeaf3de9e34602221d + status: + code: 200 + message: OK +version: 1 diff --git a/py/src/braintrust/integrations/openai/cassettes/1.92.0/test_openai_responses_stream_incomplete[async].yaml b/py/src/braintrust/integrations/openai/cassettes/1.92.0/test_openai_responses_stream_incomplete[async].yaml new file mode 100644 index 00000000..5845b723 --- /dev/null +++ b/py/src/braintrust/integrations/openai/cassettes/1.92.0/test_openai_responses_stream_incomplete[async].yaml @@ -0,0 +1,216 @@ +interactions: +- request: + body: '{"input":"Write a long essay about the history of mathematics.","max_output_tokens":16,"model":"gpt-4o-mini","stream":true}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '123' + content-type: + - application/json + host: + - api.openai.com + user-agent: + - AsyncOpenAI/Python 1.92.0 + x-stainless-arch: + - arm64 + x-stainless-async: + - async:asyncio + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.92.0 + x-stainless-read-timeout: + - '600' + x-stainless-retry-count: + - '0' + x-stainless-runtime: + - CPython + x-stainless-runtime-version: + - 3.14.7 + method: POST + uri: https://api.openai.com/v1/responses + response: + body: + string: 'event: response.created + + data: {"type":"response.created","response":{"id":"resp_048cf30f8c34c386006ad68dd1b20887d098911b9557f656c6","object":"response","created_at":1792445905,"status":"in_progress","access_programs":null,"background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":16,"max_tool_calls":null,"model":"gpt-4o-mini-2024-07-18","moderation":null,"output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"auto","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":0} + + + event: response.in_progress + + data: {"type":"response.in_progress","response":{"id":"resp_048cf30f8c34c386006ad68dd1b20887d098911b9557f656c6","object":"response","created_at":1792445905,"status":"in_progress","access_programs":null,"background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":16,"max_tool_calls":null,"model":"gpt-4o-mini-2024-07-18","moderation":null,"output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"auto","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":1} + + + event: response.output_item.added + + data: {"type":"response.output_item.added","item":{"id":"msg_048cf30f8c34c386006ad68dd222bc87d0a0ce1606c965b0ce","type":"message","status":"in_progress","content":[],"role":"assistant"},"output_index":0,"sequence_number":2} + + + event: response.content_part.added + + data: {"type":"response.content_part.added","content_index":0,"item_id":"msg_048cf30f8c34c386006ad68dd222bc87d0a0ce1606c965b0ce","output_index":0,"part":{"type":"output_text","annotations":[],"logprobs":[],"text":""},"sequence_number":3} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"###","item_id":"msg_048cf30f8c34c386006ad68dd222bc87d0a0ce1606c965b0ce","logprobs":[],"obfuscation":"2Km5wcLKcBPbY","output_index":0,"sequence_number":4} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" The","item_id":"msg_048cf30f8c34c386006ad68dd222bc87d0a0ce1606c965b0ce","logprobs":[],"obfuscation":"y7WieMoeRNuS","output_index":0,"sequence_number":5} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" History","item_id":"msg_048cf30f8c34c386006ad68dd222bc87d0a0ce1606c965b0ce","logprobs":[],"obfuscation":"qNxiTWr0","output_index":0,"sequence_number":6} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" of","item_id":"msg_048cf30f8c34c386006ad68dd222bc87d0a0ce1606c965b0ce","logprobs":[],"obfuscation":"QRnnlBQy5ETg4","output_index":0,"sequence_number":7} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Mathematics","item_id":"msg_048cf30f8c34c386006ad68dd222bc87d0a0ce1606c965b0ce","logprobs":[],"obfuscation":"V1uc","output_index":0,"sequence_number":8} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"\n\n","item_id":"msg_048cf30f8c34c386006ad68dd222bc87d0a0ce1606c965b0ce","logprobs":[],"obfuscation":"eYnMLOZrmXbaNo","output_index":0,"sequence_number":9} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"Mat","item_id":"msg_048cf30f8c34c386006ad68dd222bc87d0a0ce1606c965b0ce","logprobs":[],"obfuscation":"4gLdINOs4OB3b","output_index":0,"sequence_number":10} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"hemat","item_id":"msg_048cf30f8c34c386006ad68dd222bc87d0a0ce1606c965b0ce","logprobs":[],"obfuscation":"C9AXnAgd31c","output_index":0,"sequence_number":11} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"ics","item_id":"msg_048cf30f8c34c386006ad68dd222bc87d0a0ce1606c965b0ce","logprobs":[],"obfuscation":"Cucb2YuV4YGuc","output_index":0,"sequence_number":12} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":",","item_id":"msg_048cf30f8c34c386006ad68dd222bc87d0a0ce1606c965b0ce","logprobs":[],"obfuscation":"hbPfvyzNaTvQXRl","output_index":0,"sequence_number":13} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" often","item_id":"msg_048cf30f8c34c386006ad68dd222bc87d0a0ce1606c965b0ce","logprobs":[],"obfuscation":"hcr2MZC9rM","output_index":0,"sequence_number":14} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" regarded","item_id":"msg_048cf30f8c34c386006ad68dd222bc87d0a0ce1606c965b0ce","logprobs":[],"obfuscation":"Lb0W9CK","output_index":0,"sequence_number":15} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" as","item_id":"msg_048cf30f8c34c386006ad68dd222bc87d0a0ce1606c965b0ce","logprobs":[],"obfuscation":"ELcyloVGAK2xc","output_index":0,"sequence_number":16} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" the","item_id":"msg_048cf30f8c34c386006ad68dd222bc87d0a0ce1606c965b0ce","logprobs":[],"obfuscation":"ensypjdCBPOe","output_index":0,"sequence_number":17} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" language","item_id":"msg_048cf30f8c34c386006ad68dd222bc87d0a0ce1606c965b0ce","logprobs":[],"obfuscation":"s001fth","output_index":0,"sequence_number":18} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" of","item_id":"msg_048cf30f8c34c386006ad68dd222bc87d0a0ce1606c965b0ce","logprobs":[],"obfuscation":"N0xEnwUTovGzX","output_index":0,"sequence_number":19} + + + event: response.output_text.done + + data: {"type":"response.output_text.done","content_index":0,"item_id":"msg_048cf30f8c34c386006ad68dd222bc87d0a0ce1606c965b0ce","logprobs":[],"output_index":0,"sequence_number":20,"text":"### + The History of Mathematics\n\nMathematics, often regarded as the language + of"} + + + event: response.content_part.done + + data: {"type":"response.content_part.done","content_index":0,"item_id":"msg_048cf30f8c34c386006ad68dd222bc87d0a0ce1606c965b0ce","output_index":0,"part":{"type":"output_text","annotations":[],"logprobs":[],"text":"### + The History of Mathematics\n\nMathematics, often regarded as the language + of"},"sequence_number":21} + + + event: response.output_item.done + + data: {"type":"response.output_item.done","item":{"id":"msg_048cf30f8c34c386006ad68dd222bc87d0a0ce1606c965b0ce","type":"message","status":"incomplete","content":[{"type":"output_text","annotations":[],"logprobs":[],"text":"### + The History of Mathematics\n\nMathematics, often regarded as the language + of"}],"role":"assistant"},"output_index":0,"sequence_number":22} + + + event: response.incomplete + + data: {"type":"response.incomplete","response":{"id":"resp_048cf30f8c34c386006ad68dd1b20887d098911b9557f656c6","object":"response","created_at":1792445905,"status":"incomplete","access_programs":null,"background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":{"reason":"max_output_tokens"},"instructions":null,"max_output_tokens":16,"max_tool_calls":null,"model":"gpt-4o-mini-2024-07-18","moderation":null,"output":[{"id":"msg_048cf30f8c34c386006ad68dd222bc87d0a0ce1606c965b0ce","type":"message","status":"incomplete","content":[{"type":"output_text","annotations":[],"logprobs":[],"text":"### + The History of Mathematics\n\nMathematics, often regarded as the language + of"}],"role":"assistant"}],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"default","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":{"input_tokens":17,"input_tokens_details":{"cache_write_tokens":0,"cached_tokens":0},"output_tokens":16,"output_tokens_details":{"reasoning_tokens":0},"total_tokens":33},"user":null,"metadata":{}},"sequence_number":23} + + + ' + headers: + access-control-expose-headers: + - X-Request-ID + - CF-Ray + - CF-Ray + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + cf-ray: + - a4d2edfe1da2235c-SJC + connection: + - keep-alive + content-type: + - text/event-stream; charset=utf-8 + date: + - Mon, 19 Oct 2026 21:38:26 GMT + openai-processing-ms: + - '477' + openai-version: + - '2020-10-01' + server: + - cloudflare + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + x-content-type-options: + - nosniff + x-ratelimit-limit-requests: + - '30000' + x-ratelimit-limit-tokens: + - '150000000' + x-ratelimit-remaining-requests: + - '29998' + x-ratelimit-remaining-tokens: + - '149999915' + x-ratelimit-reset-requests: + - 4ms + x-ratelimit-reset-tokens: + - 0s + x-request-id: + - req_d25ebe36b5154f02a096a9409edab07a + status: + code: 200 + message: OK +version: 1 diff --git a/py/src/braintrust/integrations/openai/cassettes/1.92.0/test_openai_responses_stream_incomplete[sync].yaml b/py/src/braintrust/integrations/openai/cassettes/1.92.0/test_openai_responses_stream_incomplete[sync].yaml new file mode 100644 index 00000000..b74acc1a --- /dev/null +++ b/py/src/braintrust/integrations/openai/cassettes/1.92.0/test_openai_responses_stream_incomplete[sync].yaml @@ -0,0 +1,216 @@ +interactions: +- request: + body: '{"input":"Write a long essay about the history of mathematics.","max_output_tokens":16,"model":"gpt-4o-mini","stream":true}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '123' + content-type: + - application/json + host: + - api.openai.com + user-agent: + - OpenAI/Python 1.92.0 + x-stainless-arch: + - arm64 + x-stainless-async: + - 'false' + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.92.0 + x-stainless-read-timeout: + - '600' + x-stainless-retry-count: + - '0' + x-stainless-runtime: + - CPython + x-stainless-runtime-version: + - 3.14.7 + method: POST + uri: https://api.openai.com/v1/responses + response: + body: + string: 'event: response.created + + data: {"type":"response.created","response":{"id":"resp_0390914bed6d333c006ad68dd0358087d09aac0a5c4e153c8a","object":"response","created_at":1792445904,"status":"in_progress","access_programs":null,"background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":16,"max_tool_calls":null,"model":"gpt-4o-mini-2024-07-18","moderation":null,"output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"auto","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":0} + + + event: response.in_progress + + data: {"type":"response.in_progress","response":{"id":"resp_0390914bed6d333c006ad68dd0358087d09aac0a5c4e153c8a","object":"response","created_at":1792445904,"status":"in_progress","access_programs":null,"background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":16,"max_tool_calls":null,"model":"gpt-4o-mini-2024-07-18","moderation":null,"output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"auto","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":1} + + + event: response.output_item.added + + data: {"type":"response.output_item.added","item":{"id":"msg_0390914bed6d333c006ad68dd0f86087d0a203780009157166","type":"message","status":"in_progress","content":[],"role":"assistant"},"output_index":0,"sequence_number":2} + + + event: response.content_part.added + + data: {"type":"response.content_part.added","content_index":0,"item_id":"msg_0390914bed6d333c006ad68dd0f86087d0a203780009157166","output_index":0,"part":{"type":"output_text","annotations":[],"logprobs":[],"text":""},"sequence_number":3} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"##","item_id":"msg_0390914bed6d333c006ad68dd0f86087d0a203780009157166","logprobs":[],"obfuscation":"Odu2pmbrIt0ePD","output_index":0,"sequence_number":4} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" The","item_id":"msg_0390914bed6d333c006ad68dd0f86087d0a203780009157166","logprobs":[],"obfuscation":"WmobRt2BcHoq","output_index":0,"sequence_number":5} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" History","item_id":"msg_0390914bed6d333c006ad68dd0f86087d0a203780009157166","logprobs":[],"obfuscation":"PQ4cRbOj","output_index":0,"sequence_number":6} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" of","item_id":"msg_0390914bed6d333c006ad68dd0f86087d0a203780009157166","logprobs":[],"obfuscation":"OTUnKIlu4jfGy","output_index":0,"sequence_number":7} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Mathematics","item_id":"msg_0390914bed6d333c006ad68dd0f86087d0a203780009157166","logprobs":[],"obfuscation":"V0s2","output_index":0,"sequence_number":8} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"\n\n","item_id":"msg_0390914bed6d333c006ad68dd0f86087d0a203780009157166","logprobs":[],"obfuscation":"aSzSCa2djh57eP","output_index":0,"sequence_number":9} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"Mat","item_id":"msg_0390914bed6d333c006ad68dd0f86087d0a203780009157166","logprobs":[],"obfuscation":"XwP1ytwf3Ne81","output_index":0,"sequence_number":10} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"hemat","item_id":"msg_0390914bed6d333c006ad68dd0f86087d0a203780009157166","logprobs":[],"obfuscation":"sInYjFduuEl","output_index":0,"sequence_number":11} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"ics","item_id":"msg_0390914bed6d333c006ad68dd0f86087d0a203780009157166","logprobs":[],"obfuscation":"h3N0V0TxxSWg6","output_index":0,"sequence_number":12} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":",","item_id":"msg_0390914bed6d333c006ad68dd0f86087d0a203780009157166","logprobs":[],"obfuscation":"VuGx23yqVa7uUjT","output_index":0,"sequence_number":13} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" often","item_id":"msg_0390914bed6d333c006ad68dd0f86087d0a203780009157166","logprobs":[],"obfuscation":"6DCYShLrwt","output_index":0,"sequence_number":14} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" described","item_id":"msg_0390914bed6d333c006ad68dd0f86087d0a203780009157166","logprobs":[],"obfuscation":"UNodrF","output_index":0,"sequence_number":15} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" as","item_id":"msg_0390914bed6d333c006ad68dd0f86087d0a203780009157166","logprobs":[],"obfuscation":"xX1C1zcIyVZxs","output_index":0,"sequence_number":16} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" the","item_id":"msg_0390914bed6d333c006ad68dd0f86087d0a203780009157166","logprobs":[],"obfuscation":"U71n3sIpFGeJ","output_index":0,"sequence_number":17} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" language","item_id":"msg_0390914bed6d333c006ad68dd0f86087d0a203780009157166","logprobs":[],"obfuscation":"4HgMU3f","output_index":0,"sequence_number":18} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" of","item_id":"msg_0390914bed6d333c006ad68dd0f86087d0a203780009157166","logprobs":[],"obfuscation":"QksH7fvFAdSIY","output_index":0,"sequence_number":19} + + + event: response.output_text.done + + data: {"type":"response.output_text.done","content_index":0,"item_id":"msg_0390914bed6d333c006ad68dd0f86087d0a203780009157166","logprobs":[],"output_index":0,"sequence_number":20,"text":"## + The History of Mathematics\n\nMathematics, often described as the language + of"} + + + event: response.content_part.done + + data: {"type":"response.content_part.done","content_index":0,"item_id":"msg_0390914bed6d333c006ad68dd0f86087d0a203780009157166","output_index":0,"part":{"type":"output_text","annotations":[],"logprobs":[],"text":"## + The History of Mathematics\n\nMathematics, often described as the language + of"},"sequence_number":21} + + + event: response.output_item.done + + data: {"type":"response.output_item.done","item":{"id":"msg_0390914bed6d333c006ad68dd0f86087d0a203780009157166","type":"message","status":"incomplete","content":[{"type":"output_text","annotations":[],"logprobs":[],"text":"## + The History of Mathematics\n\nMathematics, often described as the language + of"}],"role":"assistant"},"output_index":0,"sequence_number":22} + + + event: response.incomplete + + data: {"type":"response.incomplete","response":{"id":"resp_0390914bed6d333c006ad68dd0358087d09aac0a5c4e153c8a","object":"response","created_at":1792445904,"status":"incomplete","access_programs":null,"background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":{"reason":"max_output_tokens"},"instructions":null,"max_output_tokens":16,"max_tool_calls":null,"model":"gpt-4o-mini-2024-07-18","moderation":null,"output":[{"id":"msg_0390914bed6d333c006ad68dd0f86087d0a203780009157166","type":"message","status":"incomplete","content":[{"type":"output_text","annotations":[],"logprobs":[],"text":"## + The History of Mathematics\n\nMathematics, often described as the language + of"}],"role":"assistant"}],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"default","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":{"input_tokens":17,"input_tokens_details":{"cache_write_tokens":0,"cached_tokens":0},"output_tokens":16,"output_tokens_details":{"reasoning_tokens":0},"total_tokens":33},"user":null,"metadata":{}},"sequence_number":23} + + + ' + headers: + access-control-expose-headers: + - X-Request-ID + - CF-Ray + - CF-Ray + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + cf-ray: + - a4d2edf3ee2c36e8-SJC + connection: + - keep-alive + content-type: + - text/event-stream; charset=utf-8 + date: + - Mon, 19 Oct 2026 21:38:25 GMT + openai-processing-ms: + - '813' + openai-version: + - '2020-10-01' + server: + - cloudflare + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + x-content-type-options: + - nosniff + x-ratelimit-limit-requests: + - '30000' + x-ratelimit-limit-tokens: + - '150000000' + x-ratelimit-remaining-requests: + - '29999' + x-ratelimit-remaining-tokens: + - '149999965' + x-ratelimit-reset-requests: + - 2ms + x-ratelimit-reset-tokens: + - 0s + x-request-id: + - req_ebe3bde388454f929d0f2d61645c7bc2 + status: + code: 200 + message: OK +version: 1 diff --git a/py/src/braintrust/integrations/openai/cassettes/latest/test_openai_responses_stream_incomplete[async].yaml b/py/src/braintrust/integrations/openai/cassettes/latest/test_openai_responses_stream_incomplete[async].yaml new file mode 100644 index 00000000..f756d71f --- /dev/null +++ b/py/src/braintrust/integrations/openai/cassettes/latest/test_openai_responses_stream_incomplete[async].yaml @@ -0,0 +1,213 @@ +interactions: +- request: + body: '{"model":"gpt-4o-mini","stream":true,"input":"Write a long essay about + the history of mathematics.","max_output_tokens":16}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate, zstd + connection: + - keep-alive + content-length: + - '123' + content-type: + - application/json + host: + - api.openai.com + user-agent: + - AsyncOpenAI/Python 3.35.1 + x-stainless-arch: + - arm64 + x-stainless-async: + - async:asyncio + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 3.35.1 + x-stainless-read-timeout: + - '600' + x-stainless-retry-count: + - '0' + x-stainless-runtime: + - CPython + x-stainless-runtime-version: + - 3.14.7 + method: POST + uri: https://api.openai.com/v1/responses + response: + body: + string: 'event: response.created + + data: {"type":"response.created","response":{"id":"resp_06df3811449888be006ad68daad6e087d088e643fa683ad726","object":"response","created_at":1792445866,"status":"in_progress","access_programs":null,"background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":16,"max_tool_calls":null,"model":"gpt-4o-mini-2024-07-18","moderation":null,"output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"auto","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":0} + + + event: response.in_progress + + data: {"type":"response.in_progress","response":{"id":"resp_06df3811449888be006ad68daad6e087d088e643fa683ad726","object":"response","created_at":1792445866,"status":"in_progress","access_programs":null,"background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":16,"max_tool_calls":null,"model":"gpt-4o-mini-2024-07-18","moderation":null,"output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"auto","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":1} + + + event: response.output_item.added + + data: {"type":"response.output_item.added","item":{"id":"msg_06df3811449888be006ad68dab599c87d0bb5f0d1d5deb8cb2","type":"message","status":"in_progress","content":[],"role":"assistant"},"output_index":0,"sequence_number":2} + + + event: response.content_part.added + + data: {"type":"response.content_part.added","content_index":0,"item_id":"msg_06df3811449888be006ad68dab599c87d0bb5f0d1d5deb8cb2","output_index":0,"part":{"type":"output_text","annotations":[],"logprobs":[],"text":""},"sequence_number":3} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"#","item_id":"msg_06df3811449888be006ad68dab599c87d0bb5f0d1d5deb8cb2","logprobs":[],"obfuscation":"FTgcJvJJ60nPBkW","output_index":0,"sequence_number":4} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" The","item_id":"msg_06df3811449888be006ad68dab599c87d0bb5f0d1d5deb8cb2","logprobs":[],"obfuscation":"NoVa7hJPmt5I","output_index":0,"sequence_number":5} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" History","item_id":"msg_06df3811449888be006ad68dab599c87d0bb5f0d1d5deb8cb2","logprobs":[],"obfuscation":"xVIFGeUI","output_index":0,"sequence_number":6} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" of","item_id":"msg_06df3811449888be006ad68dab599c87d0bb5f0d1d5deb8cb2","logprobs":[],"obfuscation":"BvXQz2PDvpB7O","output_index":0,"sequence_number":7} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Mathematics","item_id":"msg_06df3811449888be006ad68dab599c87d0bb5f0d1d5deb8cb2","logprobs":[],"obfuscation":"gdps","output_index":0,"sequence_number":8} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":":","item_id":"msg_06df3811449888be006ad68dab599c87d0bb5f0d1d5deb8cb2","logprobs":[],"obfuscation":"hSJK5aGTMn9FV1O","output_index":0,"sequence_number":9} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" A","item_id":"msg_06df3811449888be006ad68dab599c87d0bb5f0d1d5deb8cb2","logprobs":[],"obfuscation":"1OAihPg2VvLXm1","output_index":0,"sequence_number":10} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Journey","item_id":"msg_06df3811449888be006ad68dab599c87d0bb5f0d1d5deb8cb2","logprobs":[],"obfuscation":"kAzLz8Ya","output_index":0,"sequence_number":11} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Through","item_id":"msg_06df3811449888be006ad68dab599c87d0bb5f0d1d5deb8cb2","logprobs":[],"obfuscation":"bJ6cd7rG","output_index":0,"sequence_number":12} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Time","item_id":"msg_06df3811449888be006ad68dab599c87d0bb5f0d1d5deb8cb2","logprobs":[],"obfuscation":"nVqZBKrCnpS","output_index":0,"sequence_number":13} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"\n\n","item_id":"msg_06df3811449888be006ad68dab599c87d0bb5f0d1d5deb8cb2","logprobs":[],"obfuscation":"pyrcjN3VTn3kIJ","output_index":0,"sequence_number":14} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"Mat","item_id":"msg_06df3811449888be006ad68dab599c87d0bb5f0d1d5deb8cb2","logprobs":[],"obfuscation":"QldRrbGX9QJyW","output_index":0,"sequence_number":15} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"hemat","item_id":"msg_06df3811449888be006ad68dab599c87d0bb5f0d1d5deb8cb2","logprobs":[],"obfuscation":"FW9RCQO1LSH","output_index":0,"sequence_number":16} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"ics","item_id":"msg_06df3811449888be006ad68dab599c87d0bb5f0d1d5deb8cb2","logprobs":[],"obfuscation":"NiHeKqMgN6awM","output_index":0,"sequence_number":17} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":",","item_id":"msg_06df3811449888be006ad68dab599c87d0bb5f0d1d5deb8cb2","logprobs":[],"obfuscation":"WOgmFNQ7X6XKmae","output_index":0,"sequence_number":18} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" often","item_id":"msg_06df3811449888be006ad68dab599c87d0bb5f0d1d5deb8cb2","logprobs":[],"obfuscation":"PWXlrhVYJp","output_index":0,"sequence_number":19} + + + event: response.output_text.done + + data: {"type":"response.output_text.done","content_index":0,"item_id":"msg_06df3811449888be006ad68dab599c87d0bb5f0d1d5deb8cb2","logprobs":[],"output_index":0,"sequence_number":20,"text":"# + The History of Mathematics: A Journey Through Time\n\nMathematics, often"} + + + event: response.content_part.done + + data: {"type":"response.content_part.done","content_index":0,"item_id":"msg_06df3811449888be006ad68dab599c87d0bb5f0d1d5deb8cb2","output_index":0,"part":{"type":"output_text","annotations":[],"logprobs":[],"text":"# + The History of Mathematics: A Journey Through Time\n\nMathematics, often"},"sequence_number":21} + + + event: response.output_item.done + + data: {"type":"response.output_item.done","item":{"id":"msg_06df3811449888be006ad68dab599c87d0bb5f0d1d5deb8cb2","type":"message","status":"incomplete","content":[{"type":"output_text","annotations":[],"logprobs":[],"text":"# + The History of Mathematics: A Journey Through Time\n\nMathematics, often"}],"role":"assistant"},"output_index":0,"sequence_number":22} + + + event: response.incomplete + + data: {"type":"response.incomplete","response":{"id":"resp_06df3811449888be006ad68daad6e087d088e643fa683ad726","object":"response","created_at":1792445866,"status":"incomplete","access_programs":null,"background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":{"reason":"max_output_tokens"},"instructions":null,"max_output_tokens":16,"max_tool_calls":null,"model":"gpt-4o-mini-2024-07-18","moderation":null,"output":[{"id":"msg_06df3811449888be006ad68dab599c87d0bb5f0d1d5deb8cb2","type":"message","status":"incomplete","content":[{"type":"output_text","annotations":[],"logprobs":[],"text":"# + The History of Mathematics: A Journey Through Time\n\nMathematics, often"}],"role":"assistant"}],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"default","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":{"input_tokens":17,"input_tokens_details":{"cache_write_tokens":0,"cached_tokens":0},"output_tokens":16,"output_tokens_details":{"reasoning_tokens":0},"total_tokens":33},"user":null,"metadata":{}},"sequence_number":23} + + + ' + headers: + access-control-expose-headers: + - X-Request-ID + - CF-Ray + - CF-Ray + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + cf-ray: + - a4d2ed0b0eadea80-SJC + connection: + - keep-alive + content-type: + - text/event-stream; charset=utf-8 + date: + - Mon, 19 Oct 2026 21:37:47 GMT + openai-processing-ms: + - '548' + openai-version: + - '2020-10-01' + server: + - cloudflare + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + x-content-type-options: + - nosniff + x-ratelimit-limit-requests: + - '30000' + x-ratelimit-limit-tokens: + - '150000000' + x-ratelimit-remaining-requests: + - '29998' + x-ratelimit-remaining-tokens: + - '149999915' + x-ratelimit-reset-requests: + - 4ms + x-ratelimit-reset-tokens: + - 0s + x-request-id: + - req_7c94c7bf4f0b40b5bf539a89d7c63b56 + status: + code: 200 + message: OK +version: 1 diff --git a/py/src/braintrust/integrations/openai/cassettes/latest/test_openai_responses_stream_incomplete[sync].yaml b/py/src/braintrust/integrations/openai/cassettes/latest/test_openai_responses_stream_incomplete[sync].yaml new file mode 100644 index 00000000..70d5afee --- /dev/null +++ b/py/src/braintrust/integrations/openai/cassettes/latest/test_openai_responses_stream_incomplete[sync].yaml @@ -0,0 +1,213 @@ +interactions: +- request: + body: '{"model":"gpt-4o-mini","stream":true,"input":"Write a long essay about + the history of mathematics.","max_output_tokens":16}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate, zstd + connection: + - keep-alive + content-length: + - '123' + content-type: + - application/json + host: + - api.openai.com + user-agent: + - OpenAI/Python 3.35.1 + x-stainless-arch: + - arm64 + x-stainless-async: + - 'false' + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 3.35.1 + x-stainless-read-timeout: + - '600' + x-stainless-retry-count: + - '0' + x-stainless-runtime: + - CPython + x-stainless-runtime-version: + - 3.14.7 + method: POST + uri: https://api.openai.com/v1/responses + response: + body: + string: 'event: response.created + + data: {"type":"response.created","response":{"id":"resp_08744b45d9c189b6006ad68da961a887d08b009a77758428ea","object":"response","created_at":1792445865,"status":"in_progress","access_programs":null,"background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":16,"max_tool_calls":null,"model":"gpt-4o-mini-2024-07-18","moderation":null,"output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"auto","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":0} + + + event: response.in_progress + + data: {"type":"response.in_progress","response":{"id":"resp_08744b45d9c189b6006ad68da961a887d08b009a77758428ea","object":"response","created_at":1792445865,"status":"in_progress","access_programs":null,"background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":16,"max_tool_calls":null,"model":"gpt-4o-mini-2024-07-18","moderation":null,"output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"auto","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":1} + + + event: response.output_item.added + + data: {"type":"response.output_item.added","item":{"id":"msg_08744b45d9c189b6006ad68daa178087d08af67f14697e88e7","type":"message","status":"in_progress","content":[],"role":"assistant"},"output_index":0,"sequence_number":2} + + + event: response.content_part.added + + data: {"type":"response.content_part.added","content_index":0,"item_id":"msg_08744b45d9c189b6006ad68daa178087d08af67f14697e88e7","output_index":0,"part":{"type":"output_text","annotations":[],"logprobs":[],"text":""},"sequence_number":3} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"#","item_id":"msg_08744b45d9c189b6006ad68daa178087d08af67f14697e88e7","logprobs":[],"obfuscation":"3412Pn0JTwR9j3C","output_index":0,"sequence_number":4} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" The","item_id":"msg_08744b45d9c189b6006ad68daa178087d08af67f14697e88e7","logprobs":[],"obfuscation":"XED7z5kk8Lme","output_index":0,"sequence_number":5} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" History","item_id":"msg_08744b45d9c189b6006ad68daa178087d08af67f14697e88e7","logprobs":[],"obfuscation":"pHuSN2cr","output_index":0,"sequence_number":6} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" of","item_id":"msg_08744b45d9c189b6006ad68daa178087d08af67f14697e88e7","logprobs":[],"obfuscation":"qZJunXUYf6O5H","output_index":0,"sequence_number":7} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Mathematics","item_id":"msg_08744b45d9c189b6006ad68daa178087d08af67f14697e88e7","logprobs":[],"obfuscation":"8Bcb","output_index":0,"sequence_number":8} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":":","item_id":"msg_08744b45d9c189b6006ad68daa178087d08af67f14697e88e7","logprobs":[],"obfuscation":"qnkcOdAouarGJDT","output_index":0,"sequence_number":9} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" A","item_id":"msg_08744b45d9c189b6006ad68daa178087d08af67f14697e88e7","logprobs":[],"obfuscation":"nMF8SqzS5EIgC3","output_index":0,"sequence_number":10} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Journey","item_id":"msg_08744b45d9c189b6006ad68daa178087d08af67f14697e88e7","logprobs":[],"obfuscation":"4ZODupxL","output_index":0,"sequence_number":11} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Through","item_id":"msg_08744b45d9c189b6006ad68daa178087d08af67f14697e88e7","logprobs":[],"obfuscation":"Ens3wTLI","output_index":0,"sequence_number":12} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Time","item_id":"msg_08744b45d9c189b6006ad68daa178087d08af67f14697e88e7","logprobs":[],"obfuscation":"6w9h86sjj9H","output_index":0,"sequence_number":13} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"\n\n","item_id":"msg_08744b45d9c189b6006ad68daa178087d08af67f14697e88e7","logprobs":[],"obfuscation":"jtdmO1cO1zVjlq","output_index":0,"sequence_number":14} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"Mat","item_id":"msg_08744b45d9c189b6006ad68daa178087d08af67f14697e88e7","logprobs":[],"obfuscation":"v1p90capiAAaa","output_index":0,"sequence_number":15} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"hemat","item_id":"msg_08744b45d9c189b6006ad68daa178087d08af67f14697e88e7","logprobs":[],"obfuscation":"5tRECADTBnr","output_index":0,"sequence_number":16} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"ics","item_id":"msg_08744b45d9c189b6006ad68daa178087d08af67f14697e88e7","logprobs":[],"obfuscation":"C9c4S5n18jt0B","output_index":0,"sequence_number":17} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":",","item_id":"msg_08744b45d9c189b6006ad68daa178087d08af67f14697e88e7","logprobs":[],"obfuscation":"ycZh5q1amXAkhwt","output_index":0,"sequence_number":18} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" often","item_id":"msg_08744b45d9c189b6006ad68daa178087d08af67f14697e88e7","logprobs":[],"obfuscation":"eSudvDRP2A","output_index":0,"sequence_number":19} + + + event: response.output_text.done + + data: {"type":"response.output_text.done","content_index":0,"item_id":"msg_08744b45d9c189b6006ad68daa178087d08af67f14697e88e7","logprobs":[],"output_index":0,"sequence_number":20,"text":"# + The History of Mathematics: A Journey Through Time\n\nMathematics, often"} + + + event: response.content_part.done + + data: {"type":"response.content_part.done","content_index":0,"item_id":"msg_08744b45d9c189b6006ad68daa178087d08af67f14697e88e7","output_index":0,"part":{"type":"output_text","annotations":[],"logprobs":[],"text":"# + The History of Mathematics: A Journey Through Time\n\nMathematics, often"},"sequence_number":21} + + + event: response.output_item.done + + data: {"type":"response.output_item.done","item":{"id":"msg_08744b45d9c189b6006ad68daa178087d08af67f14697e88e7","type":"message","status":"incomplete","content":[{"type":"output_text","annotations":[],"logprobs":[],"text":"# + The History of Mathematics: A Journey Through Time\n\nMathematics, often"}],"role":"assistant"},"output_index":0,"sequence_number":22} + + + event: response.incomplete + + data: {"type":"response.incomplete","response":{"id":"resp_08744b45d9c189b6006ad68da961a887d08b009a77758428ea","object":"response","created_at":1792445865,"status":"incomplete","access_programs":null,"background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":{"reason":"max_output_tokens"},"instructions":null,"max_output_tokens":16,"max_tool_calls":null,"model":"gpt-4o-mini-2024-07-18","moderation":null,"output":[{"id":"msg_08744b45d9c189b6006ad68daa178087d08af67f14697e88e7","type":"message","status":"incomplete","content":[{"type":"output_text","annotations":[],"logprobs":[],"text":"# + The History of Mathematics: A Journey Through Time\n\nMathematics, often"}],"role":"assistant"}],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"default","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":{"input_tokens":17,"input_tokens_details":{"cache_write_tokens":0,"cached_tokens":0},"output_tokens":16,"output_tokens_details":{"reasoning_tokens":0},"total_tokens":33},"user":null,"metadata":{}},"sequence_number":23} + + + ' + headers: + access-control-expose-headers: + - X-Request-ID + - CF-Ray + - CF-Ray + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + cf-ray: + - a4d2ecfe7cf2faf4-SJC + connection: + - keep-alive + content-type: + - text/event-stream; charset=utf-8 + date: + - Mon, 19 Oct 2026 21:37:46 GMT + openai-processing-ms: + - '738' + openai-version: + - '2020-10-01' + server: + - cloudflare + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + x-content-type-options: + - nosniff + x-ratelimit-limit-requests: + - '30000' + x-ratelimit-limit-tokens: + - '150000000' + x-ratelimit-remaining-requests: + - '29999' + x-ratelimit-remaining-tokens: + - '149999965' + x-ratelimit-reset-requests: + - 2ms + x-ratelimit-reset-tokens: + - 0s + x-request-id: + - req_a48293778bc24b35a73f8694fcc351e7 + status: + code: 200 + message: OK +version: 1 diff --git a/py/src/braintrust/integrations/openai/test_openai.py b/py/src/braintrust/integrations/openai/test_openai.py index 4f5d592d..5e211c67 100644 --- a/py/src/braintrust/integrations/openai/test_openai.py +++ b/py/src/braintrust/integrations/openai/test_openai.py @@ -16,6 +16,7 @@ ChatCompletionWrapper, EmbeddingWrapper, ModerationWrapper, + ResponseWrapper, _materialize_logged_file_input, _process_attachments_in_chat_output, ) @@ -1251,6 +1252,61 @@ async def test_openai_response_streaming_async(memory_logger): assert item in span["output"] +@sync_async +@pytest.mark.asyncio +@pytest.mark.vcr +async def test_openai_responses_stream_incomplete(memory_logger, is_async): + """Incomplete streams retain final usage/output; failed events use the same contract.""" + from openai.types.responses import ResponseError, ResponseFailedEvent + + client = wrap_openai(_client(is_async)) + stream = await _call( + is_async, + client.responses.create, + model=TEST_MODEL, + input="Write a long essay about the history of mathematics.", + max_output_tokens=16, + stream=True, + ) + events = await _drain(is_async, stream) + assert events[-1].type == "response.incomplete" + response = events[-1].response + assert response.incomplete_details.reason == "max_output_tokens" + assert response.usage is not None + assert response.output + + spans = memory_logger.pop() + assert len(spans) == 1 + span = spans[0] + metrics = span["metrics"] + assert metrics["prompt_tokens"] == response.usage.input_tokens + assert metrics["completion_tokens"] == response.usage.output_tokens + assert metrics["tokens"] == response.usage.total_tokens + assert span["output"] == [item.model_dump(exclude_none=True) for item in response.output] + + # Server failures aren't deterministic. Reuse the recorded response to check + # failed-event extraction with and without usage, using real SDK event classes. + for usage in (response.usage, None): + failed_response = response.model_copy( + update={ + "status": "failed", + "incomplete_details": None, + "error": ResponseError(code="server_error", message="Injected terminal failure"), + "usage": usage, + } + ) + failed_event = ResponseFailedEvent( + response=failed_response, sequence_number=events[-1].sequence_number, type="response.failed" + ) + result = ResponseWrapper._postprocess_streaming_results([failed_event]) + assert result["output"] == response.output + if usage is None: + assert result["metrics"] == {} + else: + for key in ("prompt_tokens", "completion_tokens", "tokens"): + assert result["metrics"][key] == metrics[key] + + @sync_async @pytest.mark.asyncio @pytest.mark.vcr diff --git a/py/src/braintrust/integrations/openai/tracing.py b/py/src/braintrust/integrations/openai/tracing.py index 4d885b98..defdbc40 100644 --- a/py/src/braintrust/integrations/openai/tracing.py +++ b/py/src/braintrust/integrations/openai/tracing.py @@ -1738,11 +1738,11 @@ def _postprocess_streaming_results(cls, all_results: list[Any]) -> dict[str, Any if ( not usage and hasattr(result, "type") - and result.type == "response.completed" + and result.type in ("response.completed", "response.incomplete", "response.failed") and hasattr(result, "response") ): metadata.update(_extract_moderation_metadata(result.response)) - # Handle summaries from completed response if present + # Handle summaries from the terminal response if present if hasattr(result.response, "output") and result.response.output: output_by_id = {item.get("id"): item for item in output if item.get("id")} for output_item in result.response.output: @@ -1767,7 +1767,7 @@ def _postprocess_streaming_results(cls, all_results: list[Any]) -> dict[str, Any output.append(item_data) continue - if result.type == "response.completed": + if result.type in ("response.completed", "response.incomplete", "response.failed"): if hasattr(result, "response") and hasattr(result.response, "output"): metadata.update(_extract_moderation_metadata(result.response)) return {