in instrumentation/openai-client-instrumentation/instrumentation-1.1/src/main/java/co/elastic/otel/openai/v1_1/wrappers/TracingStreamedResponse.java [111:131]
public boolean tryAdvance(Consumer<? super ChatCompletionChunk> action) {
boolean chunkReceived =
delegateSpliterator.tryAdvance(
chunk -> {
collectFinishReasons(chunk);
action.accept(chunk);
String model = chunk.model();
if (model != null && !model.isEmpty()) {
TracingStreamedResponse.this.model = model;
}
String id = chunk.id();
if (id != null && !id.isEmpty()) {
TracingStreamedResponse.this.responseId = id;
}
chunk.usage().ifPresent(usage -> TracingStreamedResponse.this.usage = usage);
});
if (!chunkReceived) {
endSpan();
}
return chunkReceived;
}