@@ -150,7 +150,10 @@ async def predict_next(self, sender_id: Text) -> Optional[Dict[Text, Any]]:
150
150
}
151
151
152
152
async def _update_tracker_session (
153
- self , tracker : DialogueStateTracker , output_channel : OutputChannel
153
+ self ,
154
+ tracker : DialogueStateTracker ,
155
+ output_channel : OutputChannel ,
156
+ metadata : Optional [Dict ] = None ,
154
157
) -> None :
155
158
"""Check the current session in `tracker` and update it if expired.
156
159
@@ -159,6 +162,7 @@ async def _update_tracker_session(
159
162
restart are considered).
160
163
161
164
Args:
165
+ metadata: Data sent from client associated with the incoming user message.
162
166
tracker: Tracker to inspect.
163
167
output_channel: Output channel for potential utterances in a custom
164
168
`ActionSessionStart`.
@@ -168,6 +172,9 @@ async def _update_tracker_session(
168
172
f"Starting a new session for conversation ID '{ tracker .sender_id } '."
169
173
)
170
174
175
+ if metadata :
176
+ tracker .events .append (SessionStarted (metadata = metadata ))
177
+
171
178
await self ._run_action (
172
179
action = self ._get_action (ACTION_SESSION_START_NAME ),
173
180
tracker = tracker ,
@@ -198,10 +205,7 @@ async def get_tracker_with_session_start(
198
205
if not tracker :
199
206
return None
200
207
201
- if metadata :
202
- tracker .events .append (SessionStarted (metadata = metadata ))
203
-
204
- await self ._update_tracker_session (tracker , output_channel )
208
+ await self ._update_tracker_session (tracker , output_channel , metadata )
205
209
206
210
return tracker
207
211
0 commit comments