Skip to content

Commit a81a99f

Browse files
committed
Mistral AI improvements
- add AOT support. - move the org.springframework.ai.mistral package into org.springframework.ai.mistralai.
1 parent 65c7ee6 commit a81a99f

File tree

17 files changed

+103
-37
lines changed

17 files changed

+103
-37
lines changed

models/spring-ai-mistral-ai/src/main/java/org/springframework/ai/mistral/MistralAiChatClient.java renamed to models/spring-ai-mistral-ai/src/main/java/org/springframework/ai/mistralai/MistralAiChatClient.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
* See the License for the specific language governing permissions and
1414
* limitations under the License.
1515
*/
16-
package org.springframework.ai.mistral;
16+
package org.springframework.ai.mistralai;
1717

1818
import java.time.Duration;
1919
import java.util.List;
@@ -31,7 +31,7 @@
3131
import org.springframework.ai.chat.metadata.ChatGenerationMetadata;
3232
import org.springframework.ai.chat.prompt.ChatOptions;
3333
import org.springframework.ai.chat.prompt.Prompt;
34-
import org.springframework.ai.mistral.api.MistralAiApi;
34+
import org.springframework.ai.mistralai.api.MistralAiApi;
3535
import org.springframework.ai.model.ModelOptionsUtils;
3636
import org.springframework.retry.RetryCallback;
3737
import org.springframework.retry.RetryContext;

models/spring-ai-mistral-ai/src/main/java/org/springframework/ai/mistral/MistralAiChatOptions.java renamed to models/spring-ai-mistral-ai/src/main/java/org/springframework/ai/mistralai/MistralAiChatOptions.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
* limitations under the License.
1515
*/
1616

17-
package org.springframework.ai.mistral;
17+
package org.springframework.ai.mistralai;
1818

1919
import com.fasterxml.jackson.annotation.JsonIgnore;
2020
import com.fasterxml.jackson.annotation.JsonInclude;
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,15 @@
1414
* limitations under the License.
1515
*/
1616

17-
package org.springframework.ai.mistral;
17+
package org.springframework.ai.mistralai;
1818

1919
import org.slf4j.Logger;
2020
import org.slf4j.LoggerFactory;
2121
import org.springframework.ai.document.Document;
2222
import org.springframework.ai.document.MetadataMode;
2323
import org.springframework.ai.embedding.*;
24-
import org.springframework.ai.mistral.api.MistralAiApi;
25-
import org.springframework.ai.mistral.api.MistralAiApi.MistralAiApiException;
24+
import org.springframework.ai.mistralai.api.MistralAiApi;
25+
import org.springframework.ai.mistralai.api.MistralAiApi.MistralAiApiException;
2626
import org.springframework.ai.model.ModelOptionsUtils;
2727
import org.springframework.retry.RetryCallback;
2828
import org.springframework.retry.RetryContext;
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
* limitations under the License.
1515
*/
1616

17-
package org.springframework.ai.mistral;
17+
package org.springframework.ai.mistralai;
1818

1919
import com.fasterxml.jackson.annotation.JsonInclude;
2020
import com.fasterxml.jackson.annotation.JsonInclude.Include;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
/*
2+
* Copyright 2024-2024 the original author or authors.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* https://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
package org.springframework.ai.mistralai.aot;
17+
18+
import org.springframework.ai.mistralai.api.MistralAiApi;
19+
import org.springframework.aot.hint.MemberCategory;
20+
import org.springframework.aot.hint.RuntimeHints;
21+
import org.springframework.aot.hint.RuntimeHintsRegistrar;
22+
import org.springframework.lang.NonNull;
23+
import org.springframework.lang.Nullable;
24+
25+
import static org.springframework.ai.aot.AiRuntimeHints.findJsonAnnotatedClassesInPackage;
26+
27+
/**
28+
* The MistralAiRuntimeHints class is responsible for registering runtime hints for
29+
* Mistral AI API classes.
30+
*
31+
* @author Christian Tzolov
32+
* @since 0.8.1
33+
*/
34+
public class MistralAiRuntimeHints implements RuntimeHintsRegistrar {
35+
36+
@Override
37+
public void registerHints(@NonNull RuntimeHints hints, @Nullable ClassLoader classLoader) {
38+
var mcs = MemberCategory.values();
39+
for (var tr : findJsonAnnotatedClassesInPackage(MistralAiApi.class))
40+
hints.reflection().registerType(tr, mcs);
41+
}
42+
43+
}

models/spring-ai-mistral-ai/src/main/java/org/springframework/ai/mistral/api/MistralAiApi.java renamed to models/spring-ai-mistral-ai/src/main/java/org/springframework/ai/mistralai/api/MistralAiApi.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
* limitations under the License.
1515
*/
1616

17-
package org.springframework.ai.mistral.api;
17+
package org.springframework.ai.mistralai.api;
1818

1919
import java.io.IOException;
2020
import java.util.List;
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
org.springframework.aot.hint.RuntimeHintsRegistrar=\
2+
org.springframework.ai.mistralai.aot.MistralAiRuntimeHints
Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,14 @@
1414
* limitations under the License.
1515
*/
1616

17-
package org.springframework.ai.mistral;
17+
package org.springframework.ai.mistralai;
1818

1919
import org.springframework.ai.embedding.EmbeddingClient;
20-
import org.springframework.ai.mistral.api.MistralAiApi;
20+
import org.springframework.ai.mistralai.MistralAiChatClient;
21+
import org.springframework.ai.mistralai.MistralAiChatOptions;
22+
import org.springframework.ai.mistralai.MistralAiEmbeddingClient;
23+
import org.springframework.ai.mistralai.MistralAiEmbeddingOptions;
24+
import org.springframework.ai.mistralai.api.MistralAiApi;
2125
import org.springframework.boot.SpringBootConfiguration;
2226
import org.springframework.context.annotation.Bean;
2327
import org.springframework.util.StringUtils;
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
* limitations under the License.
1515
*/
1616

17-
package org.springframework.ai.mistral.chat;
17+
package org.springframework.ai.mistralai.chat;
1818

1919
import java.util.Arrays;
2020
import java.util.List;
@@ -36,7 +36,7 @@
3636
import org.springframework.ai.chat.prompt.Prompt;
3737
import org.springframework.ai.chat.prompt.PromptTemplate;
3838
import org.springframework.ai.chat.prompt.SystemPromptTemplate;
39-
import org.springframework.ai.mistral.MistralAiTestConfiguration;
39+
import org.springframework.ai.mistralai.MistralAiTestConfiguration;
4040
import org.springframework.ai.parser.BeanOutputParser;
4141
import org.springframework.ai.parser.ListOutputParser;
4242
import org.springframework.ai.parser.MapOutputParser;
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,15 @@
1414
* limitations under the License.
1515
*/
1616

17-
package org.springframework.ai.mistral.chat;
17+
package org.springframework.ai.mistralai.chat;
1818

1919
import org.junit.jupiter.api.Test;
2020
import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable;
2121

2222
import org.springframework.ai.chat.prompt.Prompt;
23-
import org.springframework.ai.mistral.MistralAiChatClient;
24-
import org.springframework.ai.mistral.MistralAiChatOptions;
25-
import org.springframework.ai.mistral.api.MistralAiApi;
23+
import org.springframework.ai.mistralai.MistralAiChatClient;
24+
import org.springframework.ai.mistralai.MistralAiChatOptions;
25+
import org.springframework.ai.mistralai.api.MistralAiApi;
2626
import org.springframework.boot.test.context.SpringBootTest;
2727

2828
import static org.assertj.core.api.Assertions.assertThat;

0 commit comments

Comments
 (0)