dream
60 строк · 2.2 Кб
1import logging
2
3from dff import CompositeDialogueFlow, DialogueFlow
4
5
6from dff import dialogflow_extension
7
8import dialogflows.flows.food as food_flow
9import dialogflows.flows.fast_food as fast_food_flow
10import dialogflows.scopes as scopes
11
12logger = logging.getLogger(__name__)
13
14
15composite_dialogflow = CompositeDialogueFlow(
16scopes.State.USR_ROOT,
17system_error_state=scopes.State.SYS_ERR,
18user_error_state=scopes.State.USR_ERR,
19initial_speaker=DialogueFlow.Speaker.USER,
20)
21
22
23composite_dialogflow.add_component(food_flow.dialogflow, scopes.FOOD)
24composite_dialogflow.add_component(fast_food_flow.dialogflow, scopes.FAST_FOOD)
25
26dialogflow = composite_dialogflow.component(scopes.MAIN)
27simplified_dialogflow = dialogflow_extension.DFEasyFilling(dialogflow=dialogflow)
28
29
30##################################################################################################################
31# food
32##################################################################################################################
33
34
35def food_request(ngrams, vars):
36flag = True
37logger.info(f"food_request={flag}")
38return flag
39
40
41##################################################################################################################
42##################################################################################################################
43# linking
44##################################################################################################################
45##################################################################################################################
46
47for node in [scopes.State.USR_ROOT, scopes.State.USR_ERR]:
48simplified_dialogflow.add_user_serial_transitions(
49node,
50{(scopes.FOOD, food_flow.State.USR_START): food_request},
51)
52simplified_dialogflow.set_error_successor(scopes.State.USR_ROOT, scopes.State.SYS_ERR)
53simplified_dialogflow.set_error_successor(scopes.State.USR_ERR, scopes.State.SYS_ERR)
54simplified_dialogflow.add_system_transition(
55scopes.State.SYS_ERR,
56scopes.State.USR_ROOT,
57food_flow.error_response,
58)
59composite_dialogflow.set_controller("SYSTEM")
60composite_dialogflow._controller = simplified_dialogflow.get_dialogflow()
61