- Migrate experimental path from deprecated
LLMInvocationtoInferenceInvocation, usinghandler.start_inference()andinvocation.stop()/invocation.fail()directly (#4502) - Use
create_duration_histogramandcreate_token_histogramfromopentelemetry-util-genaiinstead of defining bucket boundaries locally (#4501) - Import
OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENTfromopentelemetry.util.genai.environment_variablesinstead of re-defining it locally, makingopentelemetry-util-genaithe single source of truth for this constant. (#4455) - Fix compatibility with wrapt 2.x by using positional arguments in
wrap_function_wrapper()calls (#4445) - Fix
ChoiceBuffercrash on streaming tool-call deltas witharguments=None(#4350) - Fix
StreamWrappermissing.headersand other attributes when usingwith_raw_responsestreaming (#4113) - Add opt-in support for latest experimental semantic conventions (v1.37.0). Set
OTEL_SEMCONV_STABILITY_OPT_INtogen_ai_latest_experimentalto enable. Add dependency onopentelemetry-util-genaipypi package. (#3715) - Add wrappers for OpenAI Responses API streams and response stream managers (#4280)
- Add async wrappers for OpenAI Responses API streams and response stream managers (#4325)
- Add strongly typed Responses API extractors with validation and content extraction improvements (#4337)
- Add completion hook support. (#4315)
- Fix
response_formathandling: mapjson_object/json_schematojsonoutput type. (#4315) - Skip attribute values with
openai.Omitvalue. (#4315) - Default empty string for
gen_ai.request.modelattribute on missing model. (#4494)