|
30 | 30 |
|
31 | 31 | import static org.assertj.core.api.Assertions.assertThat;
|
32 | 32 | import static org.springframework.ai.openai.api.OpenAiApi.ChatCompletionRequest.AudioParameters.Voice.ALLOY;
|
| 33 | +import static org.springframework.ai.openai.api.OpenAiApi.ChatCompletionRequest.WebSearchOptions.SearchContextSize.MEDIUM; |
33 | 34 |
|
34 | 35 | /**
|
35 | 36 | * Tests for {@link OpenAiChatOptions}.
|
@@ -259,4 +260,24 @@ void testDefaultValues() {
|
259 | 260 | assertThat(options.getStopSequences()).isNull();
|
260 | 261 | }
|
261 | 262 |
|
| 263 | + @Test |
| 264 | + void testFromOptions_webSearchOptions() { |
| 265 | + var chatOptions = OpenAiChatOptions.builder() |
| 266 | + .webSearchOptions(new OpenAiApi.ChatCompletionRequest.WebSearchOptions(MEDIUM, |
| 267 | + new OpenAiApi.ChatCompletionRequest.WebSearchOptions.UserLocation("type", |
| 268 | + new OpenAiApi.ChatCompletionRequest.WebSearchOptions.UserLocation.Approximate("beijing", |
| 269 | + "china", "region", "UTC+8")))) |
| 270 | + .build(); |
| 271 | + var target = OpenAiChatOptions.fromOptions(chatOptions); |
| 272 | + assertThat(target.getWebSearchOptions()).isNotNull(); |
| 273 | + assertThat(target.getWebSearchOptions().searchContextSize()).isEqualTo(MEDIUM); |
| 274 | + assertThat(target.getWebSearchOptions().userLocation()).isNotNull(); |
| 275 | + assertThat(target.getWebSearchOptions().userLocation().type()).isEqualTo("type"); |
| 276 | + assertThat(target.getWebSearchOptions().userLocation().approximate()).isNotNull(); |
| 277 | + assertThat(target.getWebSearchOptions().userLocation().approximate().city()).isEqualTo("beijing"); |
| 278 | + assertThat(target.getWebSearchOptions().userLocation().approximate().country()).isEqualTo("china"); |
| 279 | + assertThat(target.getWebSearchOptions().userLocation().approximate().region()).isEqualTo("region"); |
| 280 | + assertThat(target.getWebSearchOptions().userLocation().approximate().timezone()).isEqualTo("UTC+8"); |
| 281 | + } |
| 282 | + |
262 | 283 | }
|
0 commit comments