diff --git a/.gitignore b/.gitignore index 63d77be..a0d15d3 100644 --- a/.gitignore +++ b/.gitignore @@ -161,4 +161,8 @@ cython_debug/ # IDE -.vscode/ \ No newline at end of file +.vscode/ + +# Dash + +file_system_backend/ \ No newline at end of file diff --git a/assets/style.css b/assets/style.css index 593f4f3..93c31f8 100644 --- a/assets/style.css +++ b/assets/style.css @@ -13,4 +13,9 @@ body { font-family: Helvetica; font-size: 3em; font-weight: bold; +} + +.system-status { + font-family: Helvetica; + color: #ff8d00; } \ No newline at end of file diff --git a/main.py b/main.py index 97976dd..2181ff0 100644 --- a/main.py +++ b/main.py @@ -1,5 +1,5 @@ from dataclasses import dataclass -from dash_extensions.enrich import Dash, Input, Output, callback +from dash_extensions.enrich import Dash, Input, Output, State, Trigger, callback, ALL, MATCH import dash_core_components as dcc import dash_html_components as html from dash_local_react_components import load_react_component @@ -16,9 +16,12 @@ class WiseManDefinition: wise_man = [ - WiseManDefinition(id='melchior', name='MELCHIOR', order_number=1, system_prompt='You are a wise man'), - WiseManDefinition(id='baltasar', name='BALTASAR', order_number=2, system_prompt='You are a wise man'), - WiseManDefinition(id='casper', name='CASPAR', order_number=3, system_prompt='You are a wise man'), + WiseManDefinition(id='melchior', name='MELCHIOR', + order_number=1, system_prompt='You are a wise man'), + WiseManDefinition(id='baltasar', name='BALTASAR', + order_number=2, system_prompt='You are a wise man'), + WiseManDefinition(id='casper', name='CASPAR', order_number=3, + system_prompt='You are a wise man'), ] Magi = load_react_component(app, 'components', 'magi.js') @@ -28,12 +31,49 @@ WiseMan = load_react_component(app, 'components', 'wise_man.js') # 解決 - resolution app.layout = Magi(id='magi', children=[ - WiseMan(id='melchior', name='MELCHIOR', order_number=1, status='yes'), - WiseMan(id='baltasar', name='BALTASAR', order_number=2, status='no'), - WiseMan(id='casper', name='CASPAR', order_number=3, status='info'), - dcc.Input(id='query', type='text'), - html.Button(id='send-button', children='Send') + html.Div( + className='system-status', + children=[ + html.Div(children='CODE : 473'), + html.Div(children='FILE : MAGI_SYS'), + html.Div(id='extention', children='EXTENTION : ????'), + html.Div(children='EX_MODE : OFF'), + html.Div(children='PRIORITY : AAA')]), + WiseMan(id={'type': 'wise-man', 'name': 'melchior'}, + name='MELCHIOR', order_number=1, status='yes'), + WiseMan(id={'type': 'wise-man', 'name': 'baltasar'}, + name='BALTASAR', order_number=2, status='no'), + WiseMan(id={'type': 'wise-man', 'name': 'casper'}, + name='CASPAR', order_number=3, status='info'), + dcc.Input(id='query', type='text', value='', + debounce=True, autoComplete='off'), + dcc.Store(id='is_yes_no_question', data=False) ]) + +@callback( + Output('is_yes_no_question', 'data'), + Input('query', 'value'), + prevent_initial_call=True) +def is_yes_no_question(query: str): + print('Checking if question is a yes/no question') + return query.endswith('?') + + +@callback( + Output('extention', 'children'), + Input('is_yes_no_question', 'data')) +def extention(is_yes_no_question: bool): + code = '2137' if is_yes_no_question else '3023' + return f'EXTENTION : {code}' + + +@callback( + Output({'type': 'wise-man', 'name': MATCH}, 'status'), + Input('is_yes_no_question', 'data')) +def wise_man_status(is_yes_no_question: bool): + return 'yes' if is_yes_no_question else 'info' + + if __name__ == '__main__': app.run_server(debug=True)