Skip to content

Commit 4a69340

Browse files
committed
fix: pass provider name to interceptors instead of hardcoding it
1 parent 2c8fad4 commit 4a69340

File tree

15 files changed

+82
-34
lines changed

15 files changed

+82
-34
lines changed

intercept/chatcompletions/base.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,10 @@ import (
2626
)
2727

2828
type interceptionBase struct {
29-
id uuid.UUID
30-
req *ChatCompletionNewParamsWrapper
31-
cfg config.OpenAI
29+
id uuid.UUID
30+
providerName string
31+
req *ChatCompletionNewParamsWrapper
32+
cfg config.OpenAI
3233

3334
// clientHeaders are the original HTTP headers from the client request.
3435
clientHeaders http.Header
@@ -62,7 +63,7 @@ func (i *interceptionBase) newCompletionsService() openai.ChatCompletionService
6263
}
6364

6465
// Add API dump middleware if configured
65-
if mw := apidump.NewBridgeMiddleware(i.cfg.APIDumpDir, config.ProviderOpenAI, i.Model(), i.id, i.logger, quartz.NewReal()); mw != nil {
66+
if mw := apidump.NewBridgeMiddleware(i.cfg.APIDumpDir, i.providerName, i.Model(), i.id, i.logger, quartz.NewReal()); mw != nil {
6667
opts = append(opts, option.WithMiddleware(mw))
6768
}
6869

@@ -97,7 +98,7 @@ func (s *interceptionBase) baseTraceAttributes(r *http.Request, streaming bool)
9798
attribute.String(tracing.RequestPath, r.URL.Path),
9899
attribute.String(tracing.InterceptionID, s.id.String()),
99100
attribute.String(tracing.InitiatorID, aibcontext.ActorIDFromContext(r.Context())),
100-
attribute.String(tracing.Provider, config.ProviderOpenAI),
101+
attribute.String(tracing.Provider, s.providerName),
101102
attribute.String(tracing.Model, s.Model()),
102103
attribute.Bool(tracing.Streaming, streaming),
103104
}

intercept/chatcompletions/blocking.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,15 @@ type BlockingInterception struct {
3131
func NewBlockingInterceptor(
3232
id uuid.UUID,
3333
req *ChatCompletionNewParamsWrapper,
34+
providerName string,
3435
cfg config.OpenAI,
3536
clientHeaders http.Header,
3637
authHeaderName string,
3738
tracer trace.Tracer,
3839
) *BlockingInterception {
3940
return &BlockingInterception{interceptionBase: interceptionBase{
4041
id: id,
42+
providerName: providerName,
4143
req: req,
4244
cfg: cfg,
4345
clientHeaders: clientHeaders,

intercept/chatcompletions/streaming.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,13 +36,15 @@ type StreamingInterception struct {
3636
func NewStreamingInterceptor(
3737
id uuid.UUID,
3838
req *ChatCompletionNewParamsWrapper,
39+
providerName string,
3940
cfg config.OpenAI,
4041
clientHeaders http.Header,
4142
authHeaderName string,
4243
tracer trace.Tracer,
4344
) *StreamingInterception {
4445
return &StreamingInterception{interceptionBase: interceptionBase{
4546
id: id,
47+
providerName: providerName,
4648
req: req,
4749
cfg: cfg,
4850
clientHeaders: clientHeaders,

intercept/chatcompletions/streaming_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ func TestStreamingInterception_RelaysUpstreamErrorToClient(t *testing.T) {
8686
httpReq := httptest.NewRequest(http.MethodPost, "/chat/completions", nil)
8787

8888
tracer := otel.Tracer("test")
89-
interceptor := NewStreamingInterceptor(uuid.New(), req, cfg, httpReq.Header, "Authorization", tracer)
89+
interceptor := NewStreamingInterceptor(uuid.New(), req, config.ProviderOpenAI, cfg, httpReq.Header, "Authorization", tracer)
9090

9191
logger := slogtest.Make(t, &slogtest.Options{IgnoreErrors: false}).Leveled(slog.LevelDebug)
9292
interceptor.Setup(logger, &testutil.MockRecorder{}, nil)

intercept/messages/base.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,9 @@ var bedrockSupportedBetaFlags = map[string]bool{
6363
}
6464

6565
type interceptionBase struct {
66-
id uuid.UUID
67-
reqPayload MessagesRequestPayload
66+
id uuid.UUID
67+
providerName string
68+
reqPayload MessagesRequestPayload
6869

6970
cfg aibconfig.Anthropic
7071
bedrockCfg *aibconfig.AWSBedrock
@@ -115,7 +116,7 @@ func (s *interceptionBase) baseTraceAttributes(r *http.Request, streaming bool)
115116
attribute.String(tracing.RequestPath, r.URL.Path),
116117
attribute.String(tracing.InterceptionID, s.id.String()),
117118
attribute.String(tracing.InitiatorID, aibcontext.ActorIDFromContext(r.Context())),
118-
attribute.String(tracing.Provider, aibconfig.ProviderAnthropic),
119+
attribute.String(tracing.Provider, s.providerName),
119120
attribute.String(tracing.Model, s.Model()),
120121
attribute.Bool(tracing.Streaming, streaming),
121122
attribute.Bool(tracing.IsBedrock, s.bedrockCfg != nil),
@@ -232,7 +233,7 @@ func (i *interceptionBase) newMessagesService(ctx context.Context, opts ...optio
232233
}
233234

234235
// Add API dump middleware if configured
235-
if mw := apidump.NewBridgeMiddleware(i.cfg.APIDumpDir, aibconfig.ProviderAnthropic, i.Model(), i.id, i.logger, quartz.NewReal()); mw != nil {
236+
if mw := apidump.NewBridgeMiddleware(i.cfg.APIDumpDir, i.providerName, i.Model(), i.id, i.logger, quartz.NewReal()); mw != nil {
236237
opts = append(opts, option.WithMiddleware(mw))
237238
}
238239

intercept/messages/blocking.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ type BlockingInterception struct {
3131
func NewBlockingInterceptor(
3232
id uuid.UUID,
3333
reqPayload MessagesRequestPayload,
34+
providerName string,
3435
cfg config.Anthropic,
3536
bedrockCfg *config.AWSBedrock,
3637
clientHeaders http.Header,
@@ -39,6 +40,7 @@ func NewBlockingInterceptor(
3940
) *BlockingInterception {
4041
return &BlockingInterception{interceptionBase: interceptionBase{
4142
id: id,
43+
providerName: providerName,
4244
reqPayload: reqPayload,
4345
cfg: cfg,
4446
bedrockCfg: bedrockCfg,

intercept/messages/streaming.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ type StreamingInterception struct {
3737
func NewStreamingInterceptor(
3838
id uuid.UUID,
3939
reqPayload MessagesRequestPayload,
40+
providerName string,
4041
cfg config.Anthropic,
4142
bedrockCfg *config.AWSBedrock,
4243
clientHeaders http.Header,
@@ -45,6 +46,7 @@ func NewStreamingInterceptor(
4546
) *StreamingInterception {
4647
return &StreamingInterception{interceptionBase: interceptionBase{
4748
id: id,
49+
providerName: providerName,
4850
reqPayload: reqPayload,
4951
cfg: cfg,
5052
bedrockCfg: bedrockCfg,

intercept/responses/base.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,8 @@ const (
3636
)
3737

3838
type responsesInterceptionBase struct {
39-
id uuid.UUID
39+
id uuid.UUID
40+
providerName string
4041
// clientHeaders are the original HTTP headers from the client request.
4142
clientHeaders http.Header
4243
authHeaderName string
@@ -71,7 +72,7 @@ func (i *responsesInterceptionBase) newResponsesService() responses.ResponseServ
7172
}
7273

7374
// Add API dump middleware if configured
74-
if mw := apidump.NewBridgeMiddleware(i.cfg.APIDumpDir, config.ProviderOpenAI, i.Model(), i.id, i.logger, quartz.NewReal()); mw != nil {
75+
if mw := apidump.NewBridgeMiddleware(i.cfg.APIDumpDir, i.providerName, i.Model(), i.id, i.logger, quartz.NewReal()); mw != nil {
7576
opts = append(opts, option.WithMiddleware(mw))
7677
}
7778

@@ -101,7 +102,7 @@ func (i *responsesInterceptionBase) baseTraceAttributes(r *http.Request, streami
101102
attribute.String(tracing.RequestPath, r.URL.Path),
102103
attribute.String(tracing.InterceptionID, i.id.String()),
103104
attribute.String(tracing.InitiatorID, aibcontext.ActorIDFromContext(r.Context())),
104-
attribute.String(tracing.Provider, config.ProviderOpenAI),
105+
attribute.String(tracing.Provider, i.providerName),
105106
attribute.String(tracing.Model, i.Model()),
106107
attribute.Bool(tracing.Streaming, streaming),
107108
}

intercept/responses/blocking.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ type BlockingResponsesInterceptor struct {
2828
func NewBlockingInterceptor(
2929
id uuid.UUID,
3030
reqPayload ResponsesRequestPayload,
31+
providerName string,
3132
cfg config.OpenAI,
3233
clientHeaders http.Header,
3334
authHeaderName string,
@@ -36,6 +37,7 @@ func NewBlockingInterceptor(
3637
return &BlockingResponsesInterceptor{
3738
responsesInterceptionBase: responsesInterceptionBase{
3839
id: id,
40+
providerName: providerName,
3941
reqPayload: reqPayload,
4042
cfg: cfg,
4143
clientHeaders: clientHeaders,

intercept/responses/streaming.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ type StreamingResponsesInterceptor struct {
3535
func NewStreamingInterceptor(
3636
id uuid.UUID,
3737
reqPayload ResponsesRequestPayload,
38+
providerName string,
3839
cfg config.OpenAI,
3940
clientHeaders http.Header,
4041
authHeaderName string,
@@ -43,6 +44,7 @@ func NewStreamingInterceptor(
4344
return &StreamingResponsesInterceptor{
4445
responsesInterceptionBase: responsesInterceptionBase{
4546
id: id,
47+
providerName: providerName,
4648
reqPayload: reqPayload,
4749
cfg: cfg,
4850
clientHeaders: clientHeaders,

0 commit comments

Comments
 (0)