Skip to content

Commit e1e15df

Browse files
refactor: chenge constructors
1 parent b6a01e9 commit e1e15df

File tree

12 files changed

+77
-69
lines changed

12 files changed

+77
-69
lines changed

intercept/chatcompletions/blocking.go

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -36,15 +36,17 @@ func NewBlockingInterceptor(
3636
clientHeaders http.Header,
3737
authHeaderName string,
3838
tracer trace.Tracer,
39+
cred intercept.CredentialFields,
3940
) *BlockingInterception {
4041
return &BlockingInterception{interceptionBase: interceptionBase{
41-
id: id,
42-
providerName: providerName,
43-
req: req,
44-
cfg: cfg,
45-
clientHeaders: clientHeaders,
46-
authHeaderName: authHeaderName,
47-
tracer: tracer,
42+
id: id,
43+
providerName: providerName,
44+
req: req,
45+
cfg: cfg,
46+
clientHeaders: clientHeaders,
47+
authHeaderName: authHeaderName,
48+
tracer: tracer,
49+
CredentialFields: cred,
4850
}}
4951
}
5052

intercept/chatcompletions/streaming.go

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -41,15 +41,17 @@ func NewStreamingInterceptor(
4141
clientHeaders http.Header,
4242
authHeaderName string,
4343
tracer trace.Tracer,
44+
cred intercept.CredentialFields,
4445
) *StreamingInterception {
4546
return &StreamingInterception{interceptionBase: interceptionBase{
46-
id: id,
47-
providerName: providerName,
48-
req: req,
49-
cfg: cfg,
50-
clientHeaders: clientHeaders,
51-
authHeaderName: authHeaderName,
52-
tracer: tracer,
47+
id: id,
48+
providerName: providerName,
49+
req: req,
50+
cfg: cfg,
51+
clientHeaders: clientHeaders,
52+
authHeaderName: authHeaderName,
53+
tracer: tracer,
54+
CredentialFields: cred,
5355
}}
5456
}
5557

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, config.ProviderOpenAI, cfg, httpReq.Header, "Authorization", tracer)
89+
interceptor := NewStreamingInterceptor(uuid.New(), req, config.ProviderOpenAI, cfg, httpReq.Header, "Authorization", tracer, intercept.CredentialFields{Kind: intercept.CredentialKindCentralized})
9090

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

intercept/credential.go

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,18 +18,14 @@ func MaskCredential(secret string) string {
1818
}
1919

2020
// CredentialFields is an embeddable helper that implements the
21-
// SetCredential, CredentialKind, and CredentialHint methods of the
22-
// Interceptor interface.
21+
// CredentialKind and CredentialHint methods of the Interceptor
22+
// interface. Pass it as a constructor argument when creating
23+
// interceptors.
2324
type CredentialFields struct {
2425
Kind string
2526
Hint string
2627
}
2728

28-
func (c *CredentialFields) SetCredential(kind, hint string) {
29-
c.Kind = kind
30-
c.Hint = hint
31-
}
32-
3329
func (c *CredentialFields) CredentialKind() string {
3430
return c.Kind
3531
}

intercept/interceptor.go

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,6 @@ type Interceptor interface {
2525
Streaming() bool
2626
// TraceAttributes returns tracing attributes for this [Interceptor]
2727
TraceAttributes(*http.Request) []attribute.KeyValue
28-
// SetCredential sets the credential kind and hint for this
29-
// interception. Called by the provider after construction.
30-
SetCredential(kind, hint string)
3128
// CredentialKind returns how the request was authenticated:
3229
// centralized, personal_api_key, or subscription.
3330
CredentialKind() string

intercept/messages/blocking.go

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -37,16 +37,18 @@ func NewBlockingInterceptor(
3737
clientHeaders http.Header,
3838
authHeaderName string,
3939
tracer trace.Tracer,
40+
cred intercept.CredentialFields,
4041
) *BlockingInterception {
4142
return &BlockingInterception{interceptionBase: interceptionBase{
42-
id: id,
43-
providerName: providerName,
44-
reqPayload: reqPayload,
45-
cfg: cfg,
46-
bedrockCfg: bedrockCfg,
47-
clientHeaders: clientHeaders,
48-
authHeaderName: authHeaderName,
49-
tracer: tracer,
43+
id: id,
44+
providerName: providerName,
45+
reqPayload: reqPayload,
46+
cfg: cfg,
47+
bedrockCfg: bedrockCfg,
48+
clientHeaders: clientHeaders,
49+
authHeaderName: authHeaderName,
50+
tracer: tracer,
51+
CredentialFields: cred,
5052
}}
5153
}
5254

intercept/messages/streaming.go

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,13 +43,15 @@ func NewStreamingInterceptor(
4343
clientHeaders http.Header,
4444
authHeaderName string,
4545
tracer trace.Tracer,
46+
cred intercept.CredentialFields,
4647
) *StreamingInterception {
4748
return &StreamingInterception{interceptionBase: interceptionBase{
48-
id: id,
49-
providerName: providerName,
50-
reqPayload: reqPayload,
51-
cfg: cfg,
52-
bedrockCfg: bedrockCfg,
49+
id: id,
50+
providerName: providerName,
51+
reqPayload: reqPayload,
52+
cfg: cfg,
53+
bedrockCfg: bedrockCfg,
54+
CredentialFields: cred,
5355
clientHeaders: clientHeaders,
5456
authHeaderName: authHeaderName,
5557
tracer: tracer,

intercept/responses/blocking.go

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -33,16 +33,18 @@ func NewBlockingInterceptor(
3333
clientHeaders http.Header,
3434
authHeaderName string,
3535
tracer trace.Tracer,
36+
cred intercept.CredentialFields,
3637
) *BlockingResponsesInterceptor {
3738
return &BlockingResponsesInterceptor{
3839
responsesInterceptionBase: responsesInterceptionBase{
39-
id: id,
40-
providerName: providerName,
41-
reqPayload: reqPayload,
42-
cfg: cfg,
43-
clientHeaders: clientHeaders,
44-
authHeaderName: authHeaderName,
45-
tracer: tracer,
40+
id: id,
41+
providerName: providerName,
42+
reqPayload: reqPayload,
43+
cfg: cfg,
44+
clientHeaders: clientHeaders,
45+
authHeaderName: authHeaderName,
46+
tracer: tracer,
47+
CredentialFields: cred,
4648
},
4749
}
4850
}

intercept/responses/streaming.go

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -40,16 +40,18 @@ func NewStreamingInterceptor(
4040
clientHeaders http.Header,
4141
authHeaderName string,
4242
tracer trace.Tracer,
43+
cred intercept.CredentialFields,
4344
) *StreamingResponsesInterceptor {
4445
return &StreamingResponsesInterceptor{
4546
responsesInterceptionBase: responsesInterceptionBase{
46-
id: id,
47-
providerName: providerName,
48-
reqPayload: reqPayload,
49-
cfg: cfg,
50-
clientHeaders: clientHeaders,
51-
authHeaderName: authHeaderName,
52-
tracer: tracer,
47+
id: id,
48+
providerName: providerName,
49+
reqPayload: reqPayload,
50+
cfg: cfg,
51+
clientHeaders: clientHeaders,
52+
authHeaderName: authHeaderName,
53+
tracer: tracer,
54+
CredentialFields: cred,
5355
},
5456
}
5557
}

provider/anthropic.go

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -143,18 +143,19 @@ func (p *Anthropic) CreateInterceptor(w http.ResponseWriter, r *http.Request, tr
143143
credKind = intercept.CredentialKindPersonalAPIKey
144144
}
145145

146-
var interceptor intercept.Interceptor
147-
if reqPayload.Stream() {
148-
interceptor = messages.NewStreamingInterceptor(id, reqPayload, p.Name(), cfg, p.bedrockCfg, r.Header, authHeaderName, tracer)
149-
} else {
150-
interceptor = messages.NewBlockingInterceptor(id, reqPayload, p.Name(), cfg, p.bedrockCfg, r.Header, authHeaderName, tracer)
151-
}
152146
// Determine the credential hint from the key actually used.
153147
credHint := intercept.MaskCredential(cfg.Key)
154148
if cfg.BYOKBearerToken != "" {
155149
credHint = intercept.MaskCredential(cfg.BYOKBearerToken)
156150
}
157-
interceptor.SetCredential(credKind, credHint)
151+
cred := intercept.CredentialFields{Kind: credKind, Hint: credHint}
152+
153+
var interceptor intercept.Interceptor
154+
if reqPayload.Stream() {
155+
interceptor = messages.NewStreamingInterceptor(id, reqPayload, p.Name(), cfg, p.bedrockCfg, r.Header, authHeaderName, tracer, cred)
156+
} else {
157+
interceptor = messages.NewBlockingInterceptor(id, reqPayload, p.Name(), cfg, p.bedrockCfg, r.Header, authHeaderName, tracer, cred)
158+
}
158159
span.SetAttributes(interceptor.TraceAttributes(r)...)
159160
return interceptor, nil
160161
}

0 commit comments

Comments
 (0)