99import org .apache .commons .lang3 .StringUtils ;
1010import org .devlive .sdk .openai .exception .ParamException ;
1111import org .devlive .sdk .openai .interceptor .AzureInterceptor ;
12+ import org .devlive .sdk .openai .interceptor .ClaudeInterceptor ;
1213import org .devlive .sdk .openai .interceptor .DefaultInterceptor ;
1314import org .devlive .sdk .openai .interceptor .OpenAiInterceptor ;
1415import org .devlive .sdk .openai .model .ProviderModel ;
@@ -44,10 +45,10 @@ private OpenAiClient(OpenAiClientBuilder builder)
4445 }
4546
4647 if (ObjectUtils .isEmpty (builder .provider )) {
47- builder .provider (ProviderModel .openai );
48+ builder .provider (ProviderModel .OPENAI );
4849 }
4950
50- if (builder .provider .equals (ProviderModel .azure )) {
51+ if (builder .provider .equals (ProviderModel .AZURE )) {
5152 if (ObjectUtils .isEmpty (builder .model )) {
5253 throw new ParamException ("Azure provider model not specified" );
5354 }
@@ -93,7 +94,7 @@ public OpenAiClientBuilder apiKey(String apiKey)
9394 public OpenAiClientBuilder apiHost (String apiHost )
9495 {
9596 if (StringUtils .isEmpty (apiHost )) {
96- apiHost = "https://api.openai.com" ;
97+ apiHost = this . getDefaultHost () ;
9798 }
9899 else {
99100 boolean flag = apiHost .startsWith ("http" ) || apiHost .startsWith ("https" );
@@ -126,7 +127,7 @@ public OpenAiClientBuilder unit(TimeUnit unit)
126127 public OpenAiClientBuilder client (OkHttpClient client )
127128 {
128129 if (ObjectUtils .isEmpty (this .provider )) {
129- this .provider = ProviderModel .openai ;
130+ this .provider = ProviderModel .OPENAI ;
130131 }
131132
132133 if (ObjectUtils .isEmpty (client )) {
@@ -140,11 +141,15 @@ public OpenAiClientBuilder client(OkHttpClient client)
140141 }
141142 // Add default interceptor
142143 DefaultInterceptor interceptor = new OpenAiInterceptor ();
143- if (this .provider .equals (ProviderModel .azure )) {
144+ if (this .provider .equals (ProviderModel .AZURE )) {
144145 interceptor = new AzureInterceptor ();
145146 interceptor .setVersion (this .version );
146147 interceptor .setModel (this .model );
147148 }
149+ // Anthropic claude interceptor
150+ if (this .provider .equals (ProviderModel .CLAUDE )) {
151+ interceptor = new ClaudeInterceptor ();
152+ }
148153 interceptor .setApiKey (apiKey );
149154 client = client .newBuilder ()
150155 .addInterceptor (interceptor )
@@ -153,6 +158,14 @@ public OpenAiClientBuilder client(OkHttpClient client)
153158 return this ;
154159 }
155160
161+ private String getDefaultHost ()
162+ {
163+ if (this .provider .equals (ProviderModel .CLAUDE )) {
164+ return "https://api.anthropic.com" ;
165+ }
166+ return "https://api.openai.com" ;
167+ }
168+
156169 public OpenAiClient build ()
157170 {
158171 return new OpenAiClient (this );
0 commit comments