Skip to content

Commit 4943319

Browse files
committed
Fix tool callbacks; Update SpringAi API usage; Add integration test
1 parent 07919b5 commit 4943319

File tree

3 files changed

+34
-5
lines changed

3 files changed

+34
-5
lines changed

orchestration/src/main/java/com/sap/ai/sdk/orchestration/spring/OrchestrationChatOptions.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,10 @@ public <T extends ChatOptions> T copy() {
167167
.withLlmConfig(config.getLlmConfig())
168168
.withMaskingConfig(config.getMaskingConfig())
169169
.withGroundingConfig(config.getGroundingConfig());
170-
return (T) new OrchestrationChatOptions(copyConfig);
170+
OrchestrationChatOptions result = new OrchestrationChatOptions(copyConfig);
171+
result.setToolCallbacks(toolCallbacks);
172+
result.setInternalToolExecutionEnabled(internalToolExecutionEnabled);
173+
return (T) result;
171174
}
172175

173176
@SuppressWarnings("unchecked")

sample-code/spring-app/src/main/java/com/sap/ai/sdk/app/services/SpringAiAgenticWorkflowService.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,12 @@
1212
import lombok.val;
1313
import org.springframework.ai.chat.client.ChatClient;
1414
import org.springframework.ai.chat.client.advisor.MessageChatMemoryAdvisor;
15-
import org.springframework.ai.chat.memory.InMemoryChatMemory;
15+
import org.springframework.ai.chat.memory.InMemoryChatMemoryRepository;
16+
import org.springframework.ai.chat.memory.MessageWindowChatMemory;
1617
import org.springframework.ai.chat.model.ChatModel;
1718
import org.springframework.ai.chat.model.ChatResponse;
1819
import org.springframework.ai.chat.prompt.Prompt;
19-
import org.springframework.ai.tool.ToolCallbacks;
20+
import org.springframework.ai.support.ToolCallbacks;
2021
import org.springframework.stereotype.Service;
2122

2223
/** Service class for the AgenticWorkflow service */
@@ -38,8 +39,9 @@ public class SpringAiAgenticWorkflowService {
3839
public ChatResponse runAgent(@Nonnull final String userInput) {
3940

4041
// Configure chat memory
41-
val memory = new InMemoryChatMemory();
42-
val advisor = new MessageChatMemoryAdvisor(memory);
42+
val repository = new InMemoryChatMemoryRepository();
43+
val memory = MessageWindowChatMemory.builder().chatMemoryRepository(repository).build();
44+
val advisor = MessageChatMemoryAdvisor.builder(memory).build();
4345
val cl = ChatClient.builder(client).defaultAdvisors(advisor).build();
4446

4547
// Add (mocked) tools
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package com.sap.ai.sdk.app.controllers;
2+
3+
import static org.assertj.core.api.Assertions.assertThat;
4+
5+
import com.sap.ai.sdk.app.services.SpringAiAgenticWorkflowService;
6+
import lombok.extern.slf4j.Slf4j;
7+
import org.junit.jupiter.api.Test;
8+
9+
@Slf4j
10+
public class SpringAiAgenticWorkflowTest {
11+
12+
SpringAiAgenticWorkflowService service = new SpringAiAgenticWorkflowService();
13+
14+
@Test
15+
void testCompletion() {
16+
var response = service.runAgent("I want to visit Paris for a day. What can I do there?");
17+
assertThat(response).isNotNull();
18+
assertThat(response.getResult().getOutput().getText())
19+
.contains("Le Comptoir du Relais")
20+
.contains("L'As du Fallafel")
21+
.contains("Breizh Café")
22+
.contains("1°C");
23+
}
24+
}

0 commit comments

Comments
 (0)