@@ -20,9 +20,14 @@ class Session:
20
20
"""
21
21
22
22
def __init__ (self , session_id = None , expiration_seconds = None , active_skills = None , history = None ,
23
- max_time = 5 , max_messages = 5 , utterance_states = None , lang = None , context = None ):
23
+ max_time = 5 , max_messages = 5 , utterance_states = None , lang = None , context = None , valid_langs = None ):
24
24
self .session_id = session_id or str (uuid4 ())
25
25
self .lang = lang or get_default_lang ()
26
+
27
+ def _get_valid_langs ():
28
+ return list (set ([get_default_lang ()] + Configuration ().get ("secondary_langs'" , [])))
29
+
30
+ self .valid_languages = valid_langs or _get_valid_langs ()
26
31
self .active_skills = active_skills or [] # [skill_id , timestamp]
27
32
self .history = history or [] # [Message , timestamp]
28
33
self .utterance_states = utterance_states or {} # {skill_id: UtteranceState}
@@ -105,6 +110,7 @@ def serialize(self):
105
110
"session_id" : self .session_id ,
106
111
"history" : self .history ,
107
112
"lang" : self .lang ,
113
+ "valid_languages" : self .valid_languages ,
108
114
"context" : self .context .serialize ()
109
115
}
110
116
@@ -125,13 +131,15 @@ def deserialize(data):
125
131
max_messages = data .get ("max_messages" ) or 5
126
132
states = data .get ("utterance_states" ) or {}
127
133
lang = data .get ("lang" )
134
+ valid_langs = data .get ("valid_languages" ) or _get_valid_langs ()
128
135
context = IntentContextManager .deserialize (data ["context" ])
129
136
return Session (uid ,
130
137
active_skills = active ,
131
138
utterance_states = states ,
132
139
history = history ,
133
140
max_time = max_time ,
134
141
lang = lang ,
142
+ valid_langs = valid_langs ,
135
143
max_messages = max_messages ,
136
144
context = context )
137
145
0 commit comments