|
31 | 31 | import dev.langchain4j.model.chat.ChatModel; |
32 | 32 | import dev.langchain4j.model.chat.StreamingChatModel; |
33 | 33 | import dev.langchain4j.model.chat.request.ChatRequest; |
| 34 | +import dev.langchain4j.model.chat.request.ChatRequestParameters; |
34 | 35 | import dev.langchain4j.model.chat.request.json.JsonObjectSchema; |
35 | 36 | import dev.langchain4j.model.chat.request.json.JsonStringSchema; |
36 | 37 | import dev.langchain4j.model.chat.response.ChatResponse; |
@@ -1145,4 +1146,51 @@ void testGenerateContentWithMalformedCharsetFallback() { |
1145 | 1146 |
|
1146 | 1147 | assertThat(textContent.text()).isEqualTo(textPayload); |
1147 | 1148 | } |
| 1149 | + |
| 1150 | + @DisplayName("Should auto-detect model name from ChatModel when not explicitly set") |
| 1151 | + void testBuilderAutoDetectsModelNameFromChatModel() { |
| 1152 | + // Given |
| 1153 | + final ChatRequestParameters params = mock(ChatRequestParameters.class); |
| 1154 | + when(params.modelName()).thenReturn("auto-detected-model"); |
| 1155 | + when(chatModel.defaultRequestParameters()).thenReturn(params); |
| 1156 | + |
| 1157 | + // When |
| 1158 | + final LangChain4j lc4j = LangChain4j.builder().chatModel(chatModel).build(); |
| 1159 | + |
| 1160 | + // Then |
| 1161 | + assertThat(lc4j.modelName()).isEqualTo("auto-detected-model"); |
| 1162 | + assertThat(lc4j.model()).isEqualTo("auto-detected-model"); |
| 1163 | + } |
| 1164 | + |
| 1165 | + @Test |
| 1166 | + @DisplayName("Should auto-detect model name from StreamingChatModel when not explicitly set") |
| 1167 | + void testBuilderAutoDetectsModelNameFromStreamingChatModel() { |
| 1168 | + // Given |
| 1169 | + final ChatRequestParameters params = mock(ChatRequestParameters.class); |
| 1170 | + when(params.modelName()).thenReturn("auto-detected-streaming-model"); |
| 1171 | + when(streamingChatModel.defaultRequestParameters()).thenReturn(params); |
| 1172 | + |
| 1173 | + // When |
| 1174 | + final LangChain4j lc4j = LangChain4j.builder().streamingChatModel(streamingChatModel).build(); |
| 1175 | + |
| 1176 | + // Then |
| 1177 | + assertThat(lc4j.modelName()).isEqualTo("auto-detected-streaming-model"); |
| 1178 | + assertThat(lc4j.model()).isEqualTo("auto-detected-streaming-model"); |
| 1179 | + } |
| 1180 | + |
| 1181 | + @Test |
| 1182 | + @DisplayName("Should prefer explicit model name over auto-detected one") |
| 1183 | + void testBuilderPrefersExplicitModelName() { |
| 1184 | + // Given |
| 1185 | + final ChatRequestParameters params = mock(ChatRequestParameters.class); |
| 1186 | + when(params.modelName()).thenReturn("auto-detected-model"); |
| 1187 | + when(chatModel.defaultRequestParameters()).thenReturn(params); |
| 1188 | + |
| 1189 | + // When |
| 1190 | + final LangChain4j lc4j = |
| 1191 | + LangChain4j.builder().chatModel(chatModel).modelName("explicit-model").build(); |
| 1192 | + |
| 1193 | + // Then |
| 1194 | + assertThat(lc4j.modelName()).isEqualTo("explicit-model"); |
| 1195 | + } |
1148 | 1196 | } |
0 commit comments