Skip to content

Commit c8d2944

Browse files
author
Yuriy Bezsonov
committed
fix(java-spring-ai-agents): supplementary KB RAG prompt + sync demo-scripts to RC2
- ChatService: use a custom QuestionAnswerAdvisor promptTemplate so KB docs are treated as supplementary reference material (agent still answers from its own knowledge when policies don't cover the question) - demo-scripts/03-kb.sh: add spring-boot-starter-validation, supplementary KB template, drop dead null-check - demo-scripts/04-tools.sh: drop dead bean null-checks - demo-scripts/01-create.sh: bootVersion 4.0.6 (Initializr resolves Spring AI RC2)
1 parent 4b6e5e1 commit c8d2944

4 files changed

Lines changed: 31 additions & 29 deletions

File tree

apps/java-spring-ai-agents/aiagent/src/main/java/com/example/agent/ChatService.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import org.springframework.ai.chat.client.advisor.vectorstore.QuestionAnswerAdvisor;
1515
import org.springframework.ai.chat.memory.ChatMemory;
1616
import org.springframework.ai.chat.model.ChatModel;
17+
import org.springframework.ai.chat.prompt.PromptTemplate;
1718
import org.springframework.ai.model.tool.ToolCallingChatOptions;
1819
import org.springframework.ai.tool.ToolCallbackProvider;
1920
import org.springframework.ai.vectorstore.VectorStore;
@@ -75,7 +76,14 @@ public ChatService(AgentCoreMemory agentCoreMemory,
7576
logger.info("Memory enabled: {} advisors", agentCoreMemory.advisors.size());
7677

7778
// Knowledge Base (RAG)
78-
advisors.add(QuestionAnswerAdvisor.builder(kbVectorStore).build());
79+
advisors.add(QuestionAnswerAdvisor.builder(kbVectorStore)
80+
.promptTemplate(PromptTemplate.builder().template("""
81+
{query}
82+
83+
The following documents may be relevant as reference material:
84+
{question_answer_context}
85+
""").build())
86+
.build());
7987
logger.info("KB RAG enabled");
8088

8189
// ContextAdvisor

apps/java-spring-ai-agents/demo-scripts/01-create.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ else
1616
-d language=java \
1717
-d packaging=jar \
1818
-d javaVersion=25 \
19-
-d bootVersion=4.0.2 \
19+
-d bootVersion=4.0.6 \
2020
-d baseDir=aiagent \
2121
-d groupId=com.example \
2222
-d artifactId=agent \

apps/java-spring-ai-agents/demo-scripts/03-kb.sh

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ fi
2121
if ! grep -q "spring-ai-starter-vector-store-bedrock-knowledgebase" pom.xml; then
2222
sed -i '/<artifactId>spring-ai-agentcore-memory<\/artifactId>/,/<\/dependency>/{
2323
/<\/dependency>/a \
24-
\t\t<!-- Knowledge Base (RAG) -->\n\t\t<dependency>\n\t\t\t<groupId>org.springframework.ai</groupId>\n\t\t\t<artifactId>spring-ai-starter-vector-store-bedrock-knowledgebase</artifactId>\n\t\t</dependency>\n\t\t<dependency>\n\t\t\t<groupId>org.springframework.ai</groupId>\n\t\t\t<artifactId>spring-ai-vector-store-advisor</artifactId>\n\t\t</dependency>
24+
\t\t<!-- Knowledge Base (RAG) -->\n\t\t<dependency>\n\t\t\t<groupId>org.springframework.ai</groupId>\n\t\t\t<artifactId>spring-ai-starter-vector-store-bedrock-knowledgebase</artifactId>\n\t\t</dependency>\n\t\t<dependency>\n\t\t\t<groupId>org.springframework.ai</groupId>\n\t\t\t<artifactId>spring-ai-vector-store-advisor</artifactId>\n\t\t</dependency>\n\t\t<!-- Bean Validation (Hibernate Validator) - required by the Knowledge Base configuration properties -->\n\t\t<dependency>\n\t\t\t<groupId>org.springframework.boot</groupId>\n\t\t\t<artifactId>spring-boot-starter-validation</artifactId>\n\t\t</dependency>
2525
}' pom.xml
2626
fi
2727

@@ -83,17 +83,15 @@ public class ChatService {
8383
logger.info("Memory enabled: {} advisors", agentCoreMemory.advisors.size());
8484
8585
// Knowledge Base (RAG)
86-
if (kbVectorStore != null) {
87-
advisors.add(QuestionAnswerAdvisor.builder(kbVectorStore)
88-
.promptTemplate(PromptTemplate.builder().template("""
89-
{query}
90-
91-
The following documents may be relevant as reference material:
92-
{question_answer_context}
93-
""").build())
94-
.build());
95-
logger.info("KB RAG enabled");
96-
}
86+
advisors.add(QuestionAnswerAdvisor.builder(kbVectorStore)
87+
.promptTemplate(PromptTemplate.builder().template("""
88+
{query}
89+
90+
The following documents may be relevant as reference material:
91+
{question_answer_context}
92+
""").build())
93+
.build());
94+
logger.info("KB RAG enabled");
9795
9896
this.chatClient = chatClientBuilder
9997
.defaultSystem(SYSTEM_PROMPT)

apps/java-spring-ai-agents/demo-scripts/04-tools.sh

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -222,28 +222,24 @@ public class ChatService {
222222
logger.info("Memory enabled: {} advisors", agentCoreMemory.advisors.size());
223223
224224
// Knowledge Base (RAG)
225-
if (kbVectorStore != null) {
226-
advisors.add(QuestionAnswerAdvisor.builder(kbVectorStore)
227-
.promptTemplate(PromptTemplate.builder().template("""
228-
{query}
229-
230-
The following documents may be relevant as reference material:
231-
{question_answer_context}
232-
""").build())
233-
.build());
234-
logger.info("KB RAG enabled");
235-
}
225+
advisors.add(QuestionAnswerAdvisor.builder(kbVectorStore)
226+
.promptTemplate(PromptTemplate.builder().template("""
227+
{query}
228+
229+
The following documents may be relevant as reference material:
230+
{question_answer_context}
231+
""").build())
232+
.build());
233+
logger.info("KB RAG enabled");
236234
237235
// ContextAdvisor
238236
advisors.add(contextAdvisor);
239237
logger.info("Context Advisor enabled");
240238
241239
// Tools
242240
List<Object> localTools = new ArrayList<>();
243-
if (webGroundingTools != null) {
244-
localTools.add(webGroundingTools);
245-
logger.info("Web Grounding enabled");
246-
}
241+
localTools.add(webGroundingTools);
242+
logger.info("Web Grounding enabled");
247243
248244
this.chatClient = chatClientBuilder
249245
.defaultSystem(SYSTEM_PROMPT)

0 commit comments

Comments
 (0)