Module: Braintrust::Contrib::Anthropic::Instrumentation::MessageStream::InstanceMethods
- Defined in:
- lib/braintrust/contrib/anthropic/instrumentation/messages.rb
Instance Method Summary collapse
Instance Method Details
#close ⇒ Object
189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 |
# File 'lib/braintrust/contrib/anthropic/instrumentation/messages.rb', line 189 def close ctx = Braintrust::Contrib::Context.from(self) if ctx&.[](:tracer) && !ctx[:consumed] # Stream closed without consumption - create minimal span ctx[:consumed] = true tracer = ctx[:tracer] params = ctx[:params] = ctx[:metadata] = ctx[:messages_instance] tracer.in_span("anthropic.messages.create") do |span| .send(:set_input, span, params) Support::OTel.set_json_attr(span, "braintrust.metadata", ) end end super end |
#each(&block) ⇒ Object
162 163 164 165 166 167 168 169 170 171 172 |
# File 'lib/braintrust/contrib/anthropic/instrumentation/messages.rb', line 162 def each(&block) ctx = Braintrust::Contrib::Context.from(self) return super unless ctx&.[](:tracer) && !ctx[:consumed] trace_consumption(ctx) do super do |*args| ctx[:time_to_first_token] ||= Braintrust::Internal::Time.measure(ctx[:start_time]) block.call(*args) end end end |
#text ⇒ Object
174 175 176 177 178 179 180 181 182 183 184 185 186 187 |
# File 'lib/braintrust/contrib/anthropic/instrumentation/messages.rb', line 174 def text ctx = Braintrust::Contrib::Context.from(self) return super unless ctx&.[](:tracer) && !ctx[:consumed] original_text_enum = super Enumerator.new do |output| trace_consumption(ctx) do original_text_enum.each do |text_chunk| ctx[:time_to_first_token] ||= Braintrust::Internal::Time.measure(ctx[:start_time]) output << text_chunk end end end end |