File tree Expand file tree Collapse file tree 5 files changed +29
-12
lines changed Expand file tree Collapse file tree 5 files changed +29
-12
lines changed Original file line number Diff line number Diff line change @@ -510,9 +510,9 @@ func (c *Client) CreateChatCompletion(
510
510
}
511
511
512
512
body := any (request )
513
- if ccOpts .RequestBodySetter != nil {
513
+ if ccOpts .RequestBodyModifier != nil {
514
514
var newBody io.Reader
515
- newBody , err = c .getNewRequestBody (request , ccOpts .RequestBodySetter )
515
+ newBody , err = c .getNewRequestBody (request , ccOpts .RequestBodyModifier )
516
516
if err != nil {
517
517
return response , err
518
518
}
@@ -524,6 +524,7 @@ func (c *Client) CreateChatCompletion(
524
524
http .MethodPost ,
525
525
c .fullURL (urlSuffix , withModel (request .Model )),
526
526
withBody (body ),
527
+ withExtraHeader (ccOpts .ExtraHeader ),
527
528
)
528
529
if err != nil {
529
530
return
@@ -533,15 +534,15 @@ func (c *Client) CreateChatCompletion(
533
534
return
534
535
}
535
536
536
- func (c * Client ) getNewRequestBody (request ChatCompletionRequest , setter RequestBodySetter ) (io.Reader , error ) {
537
+ func (c * Client ) getNewRequestBody (request ChatCompletionRequest , modifier RequestBodyModifier ) (io.Reader , error ) {
537
538
marshaller := openai.JSONMarshaller {}
538
539
539
540
body , err := marshaller .Marshal (request )
540
541
if err != nil {
541
542
return nil , err
542
543
}
543
544
544
- newBody , err := setter (body )
545
+ newBody , err := modifier (body )
545
546
if err != nil {
546
547
return nil , err
547
548
}
Original file line number Diff line number Diff line change @@ -99,9 +99,9 @@ func (c *Client) CreateChatCompletionStream(
99
99
}
100
100
101
101
body := any (request )
102
- if ccOpts .RequestBodySetter != nil {
102
+ if ccOpts .RequestBodyModifier != nil {
103
103
var newBody io.Reader
104
- newBody , err = c .getNewRequestBody (request , ccOpts .RequestBodySetter )
104
+ newBody , err = c .getNewRequestBody (request , ccOpts .RequestBodyModifier )
105
105
if err != nil {
106
106
return stream , err
107
107
}
@@ -113,6 +113,7 @@ func (c *Client) CreateChatCompletionStream(
113
113
http .MethodPost ,
114
114
c .fullURL (urlSuffix , withModel (request .Model )),
115
115
withBody (body ),
116
+ withExtraHeader (ccOpts .ExtraHeader ),
116
117
)
117
118
if err != nil {
118
119
return nil , err
Original file line number Diff line number Diff line change @@ -52,12 +52,12 @@ func TestChatCompletionsWrongModel(t *testing.T) {
52
52
checks .ErrorIs (t , err , openai .ErrChatCompletionInvalidModel , msg )
53
53
}
54
54
55
- func TestChatCompletionRequestWithRequestBodySetter (t * testing.T ) {
55
+ func TestChatCompletionRequestWithRequestBodyModifier (t * testing.T ) {
56
56
client , server , teardown := setupOpenAITestServer ()
57
57
defer teardown ()
58
58
server .RegisterHandler ("/v1/chat/completions" , handleChatCompletionEndpoint )
59
59
60
- opt := openai .WithRequestBodySetter (func (rawBody []byte ) ([]byte , error ) {
60
+ opt := openai .WithRequestBodyModifier (func (rawBody []byte ) ([]byte , error ) {
61
61
return rawBody , nil
62
62
})
63
63
Original file line number Diff line number Diff line change @@ -98,6 +98,14 @@ func withExtraBody(extraBody map[string]any) requestOption {
98
98
}
99
99
}
100
100
101
+ func withExtraHeader (header map [string ]string ) requestOption {
102
+ return func (args * requestOptions ) {
103
+ for k , v := range header {
104
+ args .header .Set (k , v )
105
+ }
106
+ }
107
+ }
108
+
101
109
func withContentType (contentType string ) requestOption {
102
110
return func (args * requestOptions ) {
103
111
args .header .Set ("Content-Type" , contentType )
Original file line number Diff line number Diff line change 1
1
package openai
2
2
3
3
type chatCompletionRequestOptions struct {
4
- RequestBodySetter RequestBodySetter
4
+ RequestBodyModifier RequestBodyModifier
5
+ ExtraHeader map [string ]string
5
6
}
6
7
7
8
type ChatCompletionRequestOption func (* chatCompletionRequestOptions )
8
9
9
- type RequestBodySetter func (rawBody []byte ) ([]byte , error )
10
+ type RequestBodyModifier func (rawBody []byte ) ([]byte , error )
10
11
11
- func WithRequestBodySetter ( setter RequestBodySetter ) ChatCompletionRequestOption {
12
+ func WithRequestBodyModifier ( modifier RequestBodyModifier ) ChatCompletionRequestOption {
12
13
return func (opts * chatCompletionRequestOptions ) {
13
- opts .RequestBodySetter = setter
14
+ opts .RequestBodyModifier = modifier
15
+ }
16
+ }
17
+
18
+ func WithExtraHeader (header map [string ]string ) ChatCompletionRequestOption {
19
+ return func (opts * chatCompletionRequestOptions ) {
20
+ opts .ExtraHeader = header
14
21
}
15
22
}
You can’t perform that action at this time.
0 commit comments