Skip to content

Commit 3a1b810

Browse files
authored
Merge pull request #10 from embabel/agentic-rag
Agentic rag
2 parents 42c044b + 890aef4 commit 3a1b810

4 files changed

Lines changed: 27 additions & 12 deletions

File tree

.idea/inspectionProfiles/Project_Default.xml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
<dependency>
3535
<groupId>com.embabel.agent</groupId>
3636
<artifactId>embabel-agent-rag-neo-drivine</artifactId>
37-
<version>0.1.0-SNAPSHOT</version>
37+
<version>0.1.1-SNAPSHOT</version>
3838
</dependency>
3939

4040
<dependency>

src/main/java/com/embabel/GuideApplication.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
package com.embabel;
1717

1818
import com.embabel.agent.config.annotation.EnableAgents;
19-
import com.embabel.agent.config.annotation.LoggingThemes;
2019
import com.embabel.agent.config.annotation.McpServers;
2120
import org.springframework.boot.SpringApplication;
2221
import org.springframework.boot.WebApplicationType;
@@ -29,7 +28,7 @@
2928
@ConfigurationPropertiesScan
3029
@EnableScheduling
3130
@EnableAgents(
32-
loggingTheme = LoggingThemes.SEVERANCE,
31+
loggingTheme = "hh",
3332
mcpServers = {McpServers.DOCKER_DESKTOP}
3433
)
3534
public class GuideApplication {

src/main/java/com/embabel/guide/GuideResponderAgent.java

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,9 @@
1111
import com.embabel.agent.core.AgentPlatform;
1212
import com.embabel.agent.core.CoreToolGroups;
1313
import com.embabel.agent.discord.DiscordUser;
14-
import com.embabel.agent.rag.tools.RagReference;
14+
import com.embabel.agent.rag.neo.drivine.DrivineStore;
15+
import com.embabel.agent.rag.tools.RagServiceReference;
16+
import com.embabel.agent.rag.tools.ToolishRag;
1517
import com.embabel.chat.AssistantMessage;
1618
import com.embabel.chat.Chatbot;
1719
import com.embabel.chat.Conversation;
@@ -46,11 +48,17 @@ public class GuideResponderAgent {
4648

4749
private final Logger logger = LoggerFactory.getLogger(GuideResponderAgent.class);
4850
private final GuideProperties guideProperties;
51+
private final DrivineStore drivineStore;
4952

50-
public GuideResponderAgent(DataManager dataManager, DrivineGuideUserRepository guideUserRepository, GuideProperties guideProperties) {
53+
54+
public GuideResponderAgent(DataManager dataManager,
55+
DrivineGuideUserRepository guideUserRepository,
56+
DrivineStore drivineStore,
57+
GuideProperties guideProperties) {
5158
this.dataManager = dataManager;
5259
this.guideUserRepository = guideUserRepository;
5360
this.guideProperties = guideProperties;
61+
this.drivineStore = drivineStore;
5462
}
5563

5664
static final String LAST_EVENT_WAS_USER_MESSAGE = "user_last";
@@ -80,7 +88,7 @@ private HasGuideUserData getGuideUser(@Nullable User user) {
8088
}
8189
case GuideUserWithWebUser wu -> {
8290
return guideUserRepository.findByWebUserId(wu.getWebUser().getId())
83-
.orElseThrow(() -> new RuntimeException("Missing user with id: " + wu.getWebUser().getId()));
91+
.orElseThrow(() -> new RuntimeException("Missing user with id: " + wu.getWebUser().getId()));
8492
}
8593
case HasGuideUserData gu -> {
8694
return gu;
@@ -104,17 +112,25 @@ ConversationStatus respond(
104112
var templateModel = new HashMap<String, Object>();
105113

106114
templateModel.put("persona", persona);
115+
var ragReference = new RagServiceReference("docs",
116+
"Embabel docs",
117+
guideProperties.ragOptions(dataManager.embabelContentRagServiceFor(context)),
118+
context.ai().withLlmByRole("summarizer"));
119+
120+
var toolishRag = new ToolishRag(
121+
"granular_docs",
122+
"Embabel docs with granular retrieval",
123+
drivineStore
124+
);
125+
107126
var assistantMessage = context
108127
.ai()
109128
.withLlm(guideProperties.chatLlm())
110129
.withId("chat_response")
111130
.withReferences(dataManager.referencesForUser(context.user()))
112131
.withTools(CoreToolGroups.WEB)
113-
.withReference(
114-
new RagReference("docs",
115-
"Embabel docs",
116-
guideProperties.ragOptions(dataManager.embabelContentRagServiceFor(context)),
117-
context.ai().withLlmByRole("summarizer")))
132+
// .withReference(ragReference)
133+
.withReferences(toolishRag)
118134
.withTemplate("guide_system")
119135
.respondWithSystemPrompt(conversation, templateModel);
120136
conversation.addMessage(assistantMessage);

0 commit comments

Comments
 (0)