Instrument all OpenAI clients with one call #64
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Instrument all OpenAI clients with one call
Purpose & Benefits
In the pursuit of an easier setup experience, where before you needed to instrument each individual OpenAI client, this pull request makes it possible to instrument all OpenAI clients with a single call:
It also supports instrumenting individual clients*, and has backwards compatibility with the
wrapAPI:(*) NOTE: Instrumenting both global and client-level is not recommended: although there are some safeguards to check instrumentation state, mixing these can result in double instrumentation (especially instrumenting globally after instrumenting a specific client.) This is due to limitations in Ruby's patching mechanisms.
Design & Key Principles
Architecture (at a glance)
Key Design Decisions
wrapAPI (for now)ruby-openai(which both userequire 'openai')prependto patch.