22
33import  static  dev .ai4j .openai4j .Json .GSON ;
44
5+ import  java .util .HashMap ;
6+ import  java .util .Map ;
57import  org .slf4j .Logger ;
68import  org .slf4j .LoggerFactory ;
79
@@ -44,6 +46,8 @@ private DefaultOpenAiClient(Builder serviceBuilder) {
4446 this .apiVersion  = serviceBuilder .apiVersion ;
4547 this .userAgent  = serviceBuilder .userAgent ;
4648
49+  Map <String , String > headers  = new  HashMap <>();
50+ 
4751 OkHttpClient .Builder  okHttpClientBuilder  = new  OkHttpClient .Builder ()
4852 .callTimeout (serviceBuilder .callTimeout )
4953 .connectTimeout (serviceBuilder .connectTimeout )
@@ -63,15 +67,15 @@ private DefaultOpenAiClient(Builder serviceBuilder) {
6367 }
6468
6569 if  (serviceBuilder .organizationId  != null ) {
66-  okHttpClientBuilder . addInterceptor ( new   GenericHeaderInjector ( Collections . singletonMap ( "OpenAI-Organization" , serviceBuilder .organizationId )) );
70+  headers . put ( "OpenAI-Organization" , serviceBuilder .organizationId );
6771 }
6872
6973 if  (serviceBuilder .proxy  != null ) {
7074 okHttpClientBuilder .proxy (serviceBuilder .proxy );
7175 }
7276
7377 if  (serviceBuilder .userAgent  != null ) {
74-  okHttpClientBuilder . addInterceptor ( new   GenericHeaderInjector ( Collections . singletonMap ( "User-Agent" , serviceBuilder .userAgent )) );
78+  headers . put ( "User-Agent" , serviceBuilder .userAgent );
7579 }
7680
7781 if  (serviceBuilder .logRequests ) {
@@ -83,6 +87,11 @@ private DefaultOpenAiClient(Builder serviceBuilder) {
8387 }
8488 this .logStreamingResponses  = serviceBuilder .logStreamingResponses ;
8589
90+  if  (serviceBuilder .additionalHeaders  != null ) {
91+  headers .putAll (serviceBuilder .additionalHeaders );
92+  okHttpClientBuilder .addInterceptor (new  GenericHeaderInjector (headers ));
93+  }
94+ 
8695 this .okHttpClient  = okHttpClientBuilder .build ();
8796
8897 Retrofit .Builder  retrofitBuilder  = new  Retrofit .Builder ().baseUrl (serviceBuilder .baseUrl ).client (okHttpClient );
0 commit comments