11package com .embabel .guide ;
22
33import com .embabel .agent .api .common .AiBuilder ;
4+ import com .embabel .agent .identity .User ;
5+ import com .embabel .agent .rag .pipeline .event .RagPipelineEvent ;
46import com .embabel .chat .*;
57import org .jetbrains .annotations .NotNull ;
8+ import org .springframework .lang .Nullable ;
9+
10+ import java .util .Map ;
611
712/**
813 * GuideLoader will have loaded content
@@ -13,14 +18,24 @@ public class GuideChatSession implements ChatSession {
1318
1419 private final AiBuilder aiBuilder ;
1520 private final GuideData guideData ;
21+ @ Nullable
22+ private final User user ;
1623
1724 private final Conversation conversation = new InMemoryConversation ();
1825
1926 public GuideChatSession (AiBuilder aiBuilder ,
20- GuideData guideData
27+ GuideData guideData ,
28+ @ Nullable User user
2129 ) {
2230 this .guideData = guideData ;
2331 this .aiBuilder = aiBuilder ;
32+ this .user = user ;
33+ }
34+
35+ @ Nullable
36+ @ Override
37+ public User getUser () {
38+ return user ;
2439 }
2540
2641 @ NotNull
@@ -38,11 +53,14 @@ public void respond(@NotNull UserMessage userMessage, @NotNull MessageListener m
3853 .withLlm (guideData .guideConfig .llm ())
3954 .withReferences (guideData .references )
4055 .withRag (guideData .ragOptions ().withListener (e -> {
41- var am = new AssistantMessage (e .toString ());
42- messageListener .onMessage (am , conversation );
56+ if (e instanceof RagPipelineEvent rpe ) {
57+ var am = new AssistantMessage (rpe .getDescription ());
58+ messageListener .onMessage (am , conversation );
59+ }
4360 }))
4461 .withTemplate ("guide_system" )
45- .respondWithSystemPrompt (conversation , guideData .templateModel ());
62+ .respondWithSystemPrompt (conversation ,
63+ guideData .templateModel (Map .of ("user" , user )));
4664
4765 conversation .addMessage (assistantMessage );
4866 messageListener .onMessage (assistantMessage , conversation );
0 commit comments