Invalid JSON: Expected property name or '}' in JSONat line 1, column 2
| {'version': '6.14.0', 'api_prefix': '/gradio_api', 'mode': 'blocks', 'app_id': 4110450775379994823, 'dev_mode': False, 'vibe_mode': False, 'analytics_enabled': True, 'components': [{'id': 1, 'type': 'html', 'props': {'_retryable': False, '_undoable': False, 'likeable': False, 'streamable': False, 'value': '<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Figtree:wght@400;500;600;700&family=Inter:wght@300;400;500;600&display=swap">', 'html_template': '${value}', 'css_template': '', 'js_on_load': "element.addEventListener('click', function() { trigger('click') });", 'apply_default_css': True, 'show_label': False, 'visible': True, 'elem_classes': [], 'preserved_by_key': ['value'], 'container': False, 'padding': False, 'autoscroll': False, 'buttons': [], 'props': {}, 'name': 'html', '_selectable': False, 'component_class_name': 'HTML'}, 'skip_api': False, 'component_class_id': 'af5f63fae9620e1007439226451e1707e9a6016bcb073dc5a0b6433126cda1fc', 'key': None, 'api_info': {'type': 'string'}, 'api_info_as_input': {'type': 'string'}, 'api_info_as_output': {'type': 'string'}, 'example_inputs': '<p>Hello</p>'}, {'id': 2, 'type': 'html', 'props': {'_retryable': False, '_undoable': False, 'likeable': False, 'streamable': False, 'value': "<div class='header-bar'><span class='brand-name'>OncoAgent</span><span class='hw-badge'>AMD Instinct MI300X</span></div>", 'html_template': '${value}', 'css_template': '', 'js_on_load': "element.addEventListener('click', function() { trigger('click') });", 'apply_default_css': True, 'show_label': False, 'visible': True, 'elem_classes': [], 'preserved_by_key': ['value'], 'container': False, 'padding': False, 'autoscroll': False, 'buttons': [], 'props': {}, 'name': 'html', '_selectable': False, 'component_class_name': 'HTML'}, 'skip_api': False, 'component_class_id': 'af5f63fae9620e1007439226451e1707e9a6016bcb073dc5a0b6433126cda1fc', 'key': None, 'api_info': {'type': 'string'}, 'api_info_as_input': {'type': 'string'}, 'api_info_as_output': {'type': 'string'}, 'example_inputs': '<p>Hello</p>'}, {'id': 3, 'type': 'row', 'props': {'variant': 'default', 'visible': True, 'elem_classes': [], 'equal_height': False, 'show_progress': False, 'preserved_by_key': [], 'name': 'row'}, 'skip_api': True, 'component_class_id': '6f8a6130c432a547a95664f7f2f2a01fd8019e8e9b05282a61688092ea105a01', 'key': None}, {'id': 4, 'type': 'column', 'props': {'scale': 1, 'min_width': 280, 'variant': 'default', 'visible': True, 'elem_classes': [], 'show_progress': False, 'preserved_by_key': [], 'name': 'column'}, 'skip_api': True, 'component_class_id': '0fb38a7a679d0444705b8d6520b557d7fcfac8cb0bd868952cdb1503899457a3', 'key': None}, {'id': 5, 'type': 'column', 'props': {'scale': 1, 'min_width': 320, 'variant': 'default', 'visible': True, 'elem_classes': ['card'], 'show_progress': False, 'preserved_by_key': [], 'name': 'column'}, 'skip_api': True, 'component_class_id': '0fb38a7a679d0444705b8d6520b557d7fcfac8cb0bd868952cdb1503899457a3', 'key': None}, {'id': 6, 'type': 'html', 'props': {'_retryable': False, '_undoable': False, 'likeable': False, 'streamable': False, 'value': "<div class='section-title'>Session</div>", 'html_template': '${value}', 'css_template': '', 'js_on_load': "element.addEventListener('click', function() { trigger('click') });", 'apply_default_css': True, 'show_label': False, 'visible': True, 'elem_classes': [], 'preserved_by_key': ['value'], 'container': False, 'padding': False, 'autoscroll': False, 'buttons': [], 'props': {}, 'name': 'html', '_selectable': False, 'component_class_name': 'HTML'}, 'skip_api': False, 'component_class_id': 'af5f63fae9620e1007439226451e1707e9a6016bcb073dc5a0b6433126cda1fc', 'key': None, 'api_info': {'type': 'string'}, 'api_info_as_input': {'type': 'string'}, 'api_info_as_output': {'type': 'string'}, 'example_inputs': '<p>Hello</p>'}, {'id': 7, 'type': 'textbox', 'props': {'value': 'PT-5659', 'type': 'text', 'lines': 1, 'label': 'Patient ID', 'info': 'Unique session for memory isolation', 'show_label': True, 'container': True, 'min_width': 160, 'interactive': True, 'visible': True, 'autofocus': False, 'autoscroll': True, 'elem_classes': [], 'preserved_by_key': ['value'], 'rtl': False, 'buttons': [], 'submit_btn': False, 'stop_btn': False, 'name': 'textbox', '_selectable': False}, 'skip_api': False, 'component_class_id': 'de54b6fd6ce8622ae36d11c1cbd43b965ca46f0c1fe283a7cec562dcb91a3208', 'key': None, 'api_info': {'type': 'string'}, 'api_info_as_input': {'type': 'string'}, 'api_info_as_output': {'type': 'string'}, 'example_inputs': 'Hello!!'}, {'id': 8, 'type': 'dropdown', 'props': {'choices': [('auto', 'auto'), ('9b', '9b'), ('27b', '27b')], 'value': 'auto', 'type': 'value', 'allow_custom_value': False, 'filterable': True, 'label': 'Model Tier', 'info': 'Auto-routes based on case complexity', 'show_label': True, 'container': True, 'min_width': 160, 'visible': True, 'elem_classes': [], 'preserved_by_key': ['value'], 'buttons': [], 'name': 'dropdown', '_selectable': False}, 'skip_api': False, 'component_class_id': '2e97f31499001547c4b27c45798eb5990573be2b0b8f11854c47c3b044b07aab', 'key': None, 'api_info': {'type': 'string', 'enum': ['auto', '9b', '27b']}, 'api_info_as_input': {'type': 'string', 'enum': ['auto', '9b', '27b']}, 'api_info_as_output': {'type': 'string', 'enum': ['auto', '9b', '27b']}, 'example_inputs': 'auto'}, {'id': 9, 'type': 'form', 'props': {'scale': 0, 'min_width': 0, 'preserved_by_key': [], 'name': 'form'}, 'skip_api': True, 'component_class_id': 'aa68c082b9d7ec5a5fe2959e3c704e535742029261408360fcdbad9c6db4eb31', 'key': None}, {'id': 10, 'type': 'row', 'props': {'variant': 'default', 'visible': True, 'elem_classes': [], 'equal_height': False, 'show_progress': False, 'preserved_by_key': [], 'name': 'row'}, 'skip_api': True, 'component_class_id': '6f8a6130c432a547a95664f7f2f2a01fd8019e8e9b05282a61688092ea105a01', 'key': None}, {'id': 11, 'type': 'column', 'props': {'scale': 1, 'min_width': 100, 'variant': 'default', 'visible': True, 'elem_classes': ['kpi-tile'], 'show_progress': False, 'preserved_by_key': [], 'name': 'column'}, 'skip_api': True, 'component_class_id': '0fb38a7a679d0444705b8d6520b557d7fcfac8cb0bd868952cdb1503899457a3', 'key': None}, {'id': 12, 'type': 'html', 'props': {'_retryable': False, '_undoable': False, 'likeable': False, 'streamable': False, 'value': "<div class='kpi-label'>Confidence</div><div class='kpi-value' id='kpi-confidence'>—</div>", 'html_template': '${value}', 'css_template': '', 'js_on_load': "element.addEventListener('click', function() { trigger('click') });", 'apply_default_css': True, 'show_label': False, 'visible': True, 'elem_classes': [], 'preserved_by_key': ['value'], 'container': False, 'padding': False, 'autoscroll': False, 'buttons': [], 'props': {}, 'name': 'html', '_selectable': False, 'component_class_name': 'HTML'}, 'skip_api': False, 'component_class_id': 'af5f63fae9620e1007439226451e1707e9a6016bcb073dc5a0b6433126cda1fc', 'key': None, 'api_info': {'type': 'string'}, 'api_info_as_input': {'type': 'string'}, 'api_info_as_output': {'type': 'string'}, 'example_inputs': '<p>Hello</p>'}, {'id': 13, 'type': 'label', 'props': {'value': {}, 'label': 'Confidence', 'show_label': True, 'container': True, 'min_width': 160, 'visible': False, 'elem_classes': [], 'preserved_by_key': ['value'], 'show_heading': True, 'buttons': [], 'name': 'label', '_selectable': False}, 'skip_api': False, 'component_class_id': 'e06edc5731c4fc699cba51f556272631f237cf9443d7c1bb4d06c4b7556aa63a', 'key': None, 'api_info': {'$defs': {'LabelConfidence': {'properties': {'label': {'anyOf': [{'type': 'string'}, {'type': 'integer'}, {'type': 'number'}, {'type': 'null'}], 'default': None, 'title': 'Label'}, 'confidence': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'default': None, 'title': 'Confidence'}}, 'title': 'LabelConfidence', 'type': 'object'}}, 'properties': {'label': {'anyOf': [{'type': 'string'}, {'type': 'integer'}, {'type': 'number'}, {'type': 'null'}], 'default': None, 'title': 'Label'}, 'confidences': {'anyOf': [{'items': {'$ref': '#/$defs/LabelConfidence'}, 'type': 'array'}, {'type': 'null'}], 'default': None, 'title': 'Confidences'}}, 'title': 'LabelData', 'type': 'object', 'additional_description': None}, 'api_info_as_input': {'$defs': {'LabelConfidence': {'properties': {'label': {'anyOf': [{'type': 'string'}, {'type': 'integer'}, {'type': 'number'}, {'type': 'null'}], 'default': None, 'title': 'Label'}, 'confidence': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'default': None, 'title': 'Confidence'}}, 'title': 'LabelConfidence', 'type': 'object'}}, 'properties': {'label': {'anyOf': [{'type': 'string'}, {'type': 'integer'}, {'type': 'number'}, {'type': 'null'}], 'default': None, 'title': 'Label'}, 'confidences': {'anyOf': [{'items': {'$ref': '#/$defs/LabelConfidence'}, 'type': 'array'}, {'type': 'null'}], 'default': None, 'title': 'Confidences'}}, 'title': 'LabelData', 'type': 'object', 'additional_description': None}, 'api_info_as_output': {'$defs': {'LabelConfidence': {'properties': {'label': {'anyOf': [{'type': 'string'}, {'type': 'integer'}, {'type': 'number'}, {'type': 'null'}], 'default': None, 'title': 'Label'}, 'confidence': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'default': None, 'title': 'Confidence'}}, 'title': 'LabelConfidence', 'type': 'object'}}, 'properties': {'label': {'anyOf': [{'type': 'string'}, {'type': 'integer'}, {'type': 'number'}, {'type': 'null'}], 'default': None, 'title': 'Label'}, 'confidences': {'anyOf': [{'items': {'$ref': '#/$defs/LabelConfidence'}, 'type': 'array'}, {'type': 'null'}], 'default': None, 'title': 'Confidences'}}, 'title': 'LabelData', 'type': 'object', 'additional_description': None}, 'example_inputs': {'label': 'Cat', 'confidences': [{'label': 'cat', 'confidence': 0.9}, {'label': 'dog', 'confidence': 0.1}]}}, {'id': 14, 'type': 'column', 'props': {'scale': 1, 'min_width': 100, 'variant': 'default', 'visible': True, 'elem_classes': ['kpi-tile'], 'show_progress': False, 'preserved_by_key': [], 'name': 'column'}, 'skip_api': True, 'component_class_id': '0fb38a7a679d0444705b8d6520b557d7fcfac8cb0bd868952cdb1503899457a3', 'key': None}, {'id': 15, 'type': 'html', 'props': {'_retryable': False, '_undoable': False, 'likeable': False, 'streamable': False, 'value': "<div class='kpi-label'>Sources</div><div class='kpi-value' id='kpi-sources'>—</div>", 'html_template': '${value}', 'css_template': '', 'js_on_load': "element.addEventListener('click', function() { trigger('click') });", 'apply_default_css': True, 'show_label': False, 'visible': True, 'elem_classes': [], 'preserved_by_key': ['value'], 'container': False, 'padding': False, 'autoscroll': False, 'buttons': [], 'props': {}, 'name': 'html', '_selectable': False, 'component_class_name': 'HTML'}, 'skip_api': False, 'component_class_id': 'af5f63fae9620e1007439226451e1707e9a6016bcb073dc5a0b6433126cda1fc', 'key': None, 'api_info': {'type': 'string'}, 'api_info_as_input': {'type': 'string'}, 'api_info_as_output': {'type': 'string'}, 'example_inputs': '<p>Hello</p>'}, {'id': 16, 'type': 'label', 'props': {'value': {}, 'label': 'Sources', 'show_label': True, 'container': True, 'min_width': 160, 'visible': False, 'elem_classes': [], 'preserved_by_key': ['value'], 'show_heading': True, 'buttons': [], 'name': 'label', '_selectable': False}, 'skip_api': False, 'component_class_id': 'e06edc5731c4fc699cba51f556272631f237cf9443d7c1bb4d06c4b7556aa63a', 'key': None, 'api_info': {'$defs': {'LabelConfidence': {'properties': {'label': {'anyOf': [{'type': 'string'}, {'type': 'integer'}, {'type': 'number'}, {'type': 'null'}], 'default': None, 'title': 'Label'}, 'confidence': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'default': None, 'title': 'Confidence'}}, 'title': 'LabelConfidence', 'type': 'object'}}, 'properties': {'label': {'anyOf': [{'type': 'string'}, {'type': 'integer'}, {'type': 'number'}, {'type': 'null'}], 'default': None, 'title': 'Label'}, 'confidences': {'anyOf': [{'items': {'$ref': '#/$defs/LabelConfidence'}, 'type': 'array'}, {'type': 'null'}], 'default': None, 'title': 'Confidences'}}, 'title': 'LabelData', 'type': 'object', 'additional_description': None}, 'api_info_as_input': {'$defs': {'LabelConfidence': {'properties': {'label': {'anyOf': [{'type': 'string'}, {'type': 'integer'}, {'type': 'number'}, {'type': 'null'}], 'default': None, 'title': 'Label'}, 'confidence': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'default': None, 'title': 'Confidence'}}, 'title': 'LabelConfidence', 'type': 'object'}}, 'properties': {'label': {'anyOf': [{'type': 'string'}, {'type': 'integer'}, {'type': 'number'}, {'type': 'null'}], 'default': None, 'title': 'Label'}, 'confidences': {'anyOf': [{'items': {'$ref': '#/$defs/LabelConfidence'}, 'type': 'array'}, {'type': 'null'}], 'default': None, 'title': 'Confidences'}}, 'title': 'LabelData', 'type': 'object', 'additional_description': None}, 'api_info_as_output': {'$defs': {'LabelConfidence': {'properties': {'label': {'anyOf': [{'type': 'string'}, {'type': 'integer'}, {'type': 'number'}, {'type': 'null'}], 'default': None, 'title': 'Label'}, 'confidence': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'default': None, 'title': 'Confidence'}}, 'title': 'LabelConfidence', 'type': 'object'}}, 'properties': {'label': {'anyOf': [{'type': 'string'}, {'type': 'integer'}, {'type': 'number'}, {'type': 'null'}], 'default': None, 'title': 'Label'}, 'confidences': {'anyOf': [{'items': {'$ref': '#/$defs/LabelConfidence'}, 'type': 'array'}, {'type': 'null'}], 'default': None, 'title': 'Confidences'}}, 'title': 'LabelData', 'type': 'object', 'additional_description': None}, 'example_inputs': {'label': 'Cat', 'confidences': [{'label': 'cat', 'confidence': 0.9}, {'label': 'dog', 'confidence': 0.1}]}}, {'id': 17, 'type': 'tabs', 'props': {'visible': True, 'elem_classes': ['card'], 'preserved_by_key': [], 'name': 'tabs'}, 'skip_api': True, 'component_class_id': 'e3f75337ef6662053675c6300cd49c9ac252225778c27231c96a030da41e3a85', 'key': None}, {'id': 18, 'type': 'tabitem', 'props': {'label': 'Guidelines', 'visible': True, 'interactive': True, 'elem_classes': [], 'preserved_by_key': [], 'render_children': False, 'name': 'tab'}, 'skip_api': True, 'component_class_id': '0989c1da084cf64f1899851572faada48fa5efed022fd0d58d24f61eb6d9142d', 'key': None}, {'id': 19, 'type': 'markdown', 'props': {'value': 'NCCN and ESMO guideline evidence will appear here.', 'show_label': False, 'rtl': False, 'latex_delimiters': [{'left': '$$', 'right': '$$', 'display': True}], 'visible': True, 'elem_classes': [], 'preserved_by_key': ['value'], 'sanitize_html': True, 'line_breaks': False, 'header_links': False, 'container': False, 'padding': False, 'name': 'markdown', '_selectable': False}, 'skip_api': False, 'component_class_id': 'fd30cc896cca4ca584ffd40aa2efc60d9820bc905902b7c1d2b0c228f8aa7654', 'key': None, 'api_info': {'type': 'string'}, 'api_info_as_input': {'type': 'string'}, 'api_info_as_output': {'type': 'string'}, 'example_inputs': '# Hello!'}, {'id': 20, 'type': 'tabitem', 'props': {'label': 'Knowledge Graph', 'visible': True, 'interactive': True, 'elem_classes': [], 'preserved_by_key': [], 'render_children': False, 'name': 'tab'}, 'skip_api': True, 'component_class_id': '0989c1da084cf64f1899851572faada48fa5efed022fd0d58d24f61eb6d9142d', 'key': None}, {'id': 21, 'type': 'markdown', 'props': {'value': 'Knowledge graph connections will appear here.', 'show_label': False, 'rtl': False, 'latex_delimiters': [{'left': '$$', 'right': '$$', 'display': True}], 'visible': True, 'elem_classes': [], 'preserved_by_key': ['value'], 'sanitize_html': True, 'line_breaks': False, 'header_links': False, 'container': False, 'padding': False, 'name': 'markdown', '_selectable': False}, 'skip_api': False, 'component_class_id': 'fd30cc896cca4ca584ffd40aa2efc60d9820bc905902b7c1d2b0c228f8aa7654', 'key': None, 'api_info': {'type': 'string'}, 'api_info_as_input': {'type': 'string'}, 'api_info_as_output': {'type': 'string'}, 'example_inputs': '# Hello!'}, {'id': 22, 'type': 'tabitem', 'props': {'label': 'API Evidence', 'visible': True, 'interactive': True, 'elem_classes': [], 'preserved_by_key': [], 'render_children': False, 'name': 'tab'}, 'skip_api': True, 'component_class_id': '0989c1da084cf64f1899851572faada48fa5efed022fd0d58d24f61eb6d9142d', 'key': None}, {'id': 23, 'type': 'markdown', 'props': {'value': 'Real-time data from CIViC and ClinicalTrials.gov.', 'show_label': False, 'rtl': False, 'latex_delimiters': [{'left': '$$', 'right': '$$', 'display': True}], 'visible': True, 'elem_classes': [], 'preserved_by_key': ['value'], 'sanitize_html': True, 'line_breaks': False, 'header_links': False, 'container': False, 'padding': False, 'name': 'markdown', '_selectable': False}, 'skip_api': False, 'component_class_id': 'fd30cc896cca4ca584ffd40aa2efc60d9820bc905902b7c1d2b0c228f8aa7654', 'key': None, 'api_info': {'type': 'string'}, 'api_info_as_input': {'type': 'string'}, 'api_info_as_output': {'type': 'string'}, 'example_inputs': '# Hello!'}, {'id': 24, 'type': 'column', 'props': {'scale': 1, 'min_width': 320, 'variant': 'default', 'visible': True, 'elem_classes': ['card'], 'show_progress': False, 'preserved_by_key': [], 'name': 'column'}, 'skip_api': True, 'component_class_id': '0fb38a7a679d0444705b8d6520b557d7fcfac8cb0bd868952cdb1503899457a3', 'key': None}, {'id': 25, 'type': 'html', 'props': {'_retryable': False, '_undoable': False, 'likeable': False, 'streamable': False, 'value': "<div class='section-title'>System Status</div>", 'html_template': '${value}', 'css_template': '', 'js_on_load': "element.addEventListener('click', function() { trigger('click') });", 'apply_default_css': True, 'show_label': False, 'visible': True, 'elem_classes': [], 'preserved_by_key': ['value'], 'container': False, 'padding': False, 'autoscroll': False, 'buttons': [], 'props': {}, 'name': 'html', '_selectable': False, 'component_class_name': 'HTML'}, 'skip_api': False, 'component_class_id': 'af5f63fae9620e1007439226451e1707e9a6016bcb073dc5a0b6433126cda1fc', 'key': None, 'api_info': {'type': 'string'}, 'api_info_as_input': {'type': 'string'}, 'api_info_as_output': {'type': 'string'}, 'example_inputs': '<p>Hello</p>'}, {'id': 26, 'type': 'markdown', 'props': {'value': "<div class='status-bar'>System ready.</div>", 'show_label': False, 'rtl': False, 'latex_delimiters': [{'left': '$$', 'right': '$$', 'display': True}], 'visible': True, 'elem_id': 'status-box', 'elem_classes': [], 'preserved_by_key': ['value'], 'sanitize_html': True, 'line_breaks': False, 'header_links': False, 'container': False, 'padding': False, 'name': 'markdown', '_selectable': False}, 'skip_api': False, 'component_class_id': 'fd30cc896cca4ca584ffd40aa2efc60d9820bc905902b7c1d2b0c228f8aa7654', 'key': None, 'api_info': {'type': 'string'}, 'api_info_as_input': {'type': 'string'}, 'api_info_as_output': {'type': 'string'}, 'example_inputs': '# Hello!'}, {'id': 27, 'type': 'column', 'props': {'scale': 3, 'min_width': 320, 'variant': 'default', 'visible': True, 'elem_classes': [], 'show_progress': False, 'preserved_by_key': [], 'name': 'column'}, 'skip_api': True, 'component_class_id': '0fb38a7a679d0444705b8d6520b557d7fcfac8cb0bd868952cdb1503899457a3', 'key': None}, {'id': 28, 'type': 'column', 'props': {'scale': 1, 'min_width': 600, 'variant': 'default', 'visible': True, 'elem_classes': ['card'], 'show_progress': False, 'preserved_by_key': [], 'name': 'column'}, 'skip_api': True, 'component_class_id': '0fb38a7a679d0444705b8d6520b557d7fcfac8cb0bd868952cdb1503899457a3', 'key': None}, {'id': 29, 'type': 'chatbot', 'props': {'_undoable': False, '_retryable': False, 'likeable': False, 'value': [], 'label': 'OncoAgent', 'show_label': False, 'container': True, 'min_width': 160, 'visible': True, 'elem_classes': ['gr-chatbot'], 'autoscroll': True, 'preserved_by_key': ['value'], 'height': 620, 'resizable': False, 'latex_delimiters': [{'left': '$$', 'right': '$$', 'display': True}], 'rtl': False, 'buttons': ['share', 'copy', 'copy_all'], 'avatar_images': [None, None], 'sanitize_html': True, 'render_markdown': True, 'feedback_options': ['Like', 'Dislike'], 'line_breaks': True, 'allow_file_downloads': True, 'group_consecutive_messages': True, 'allow_tags': True, 'like_user_message': False, 'name': 'chatbot', '_selectable': False}, 'skip_api': False, 'component_class_id': '6f1aa2d606e01e101fc71adbda61e826828d4b1a485f1b6c746327585193dfb9', 'key': None, 'api_info': {'$defs': {'ComponentMessage': {'properties': {'component': {'title': 'Component', 'type': 'string'}, 'value': {'title': 'Value'}, 'constructor_args': {'additionalProperties': True, 'title': 'Constructor Args', 'type': 'object'}, 'props': {'additionalProperties': True, 'title': 'Props', 'type': 'object'}, 'type': {'const': 'component', 'default': 'component', 'title': 'Type', 'type': 'string'}}, 'required': ['component', 'value', 'constructor_args', 'props'], 'title': 'ComponentMessage', 'type': 'object'}, 'FileData': {'description': 'The FileData class is a subclass of the GradioModel class that represents a file object within a Gradio interface. It is used to store file data and metadata when a file is uploaded.\n\nAttributes:\n path: The server file path where the file is stored.\n url: The normalized server URL pointing to the file.\n size: The size of the file in bytes.\n orig_name: The original filename before upload.\n mime_type: The MIME type of the file.\n is_stream: Indicates whether the file is a stream.\n meta: Additional metadata used internally (should not be changed).', 'properties': {'path': {'title': 'Path', 'type': 'string'}, 'url': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'title': 'Url'}, 'size': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'default': None, 'title': 'Size'}, 'orig_name': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'title': 'Orig Name'}, 'mime_type': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'title': 'Mime Type'}, 'is_stream': {'default': False, 'title': 'Is Stream', 'type': 'boolean'}, 'meta': {'$ref': '#/$defs/FileDataMeta'}}, 'required': ['path'], 'title': 'FileData', 'type': 'object'}, 'FileDataMeta': {'properties': {'_type': {'const': 'gradio.FileData', 'title': 'Type', 'type': 'string'}}, 'required': ['_type'], 'title': 'FileDataMeta', 'type': 'object'}, 'FileMessage': {'properties': {'file': {'$ref': '#/$defs/FileData'}, 'alt_text': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'title': 'Alt Text'}, 'type': {'const': 'file', 'default': 'file', 'title': 'Type', 'type': 'string'}}, 'required': ['file'], 'title': 'FileMessage', 'type': 'object'}, 'Message': {'properties': {'role': {'title': 'Role', 'type': 'string'}, 'metadata': {'anyOf': [{'$ref': '#/$defs/MetadataDict'}, {'type': 'null'}], 'default': None}, 'content': {'items': {'anyOf': [{'$ref': '#/$defs/TextMessage'}, {'$ref': '#/$defs/FileMessage'}, {'$ref': '#/$defs/ComponentMessage'}]}, 'title': 'Content', 'type': 'array'}, 'options': {'anyOf': [{'items': {'$ref': '#/$defs/OptionDict'}, 'type': 'array'}, {'type': 'null'}], 'default': None, 'title': 'Options'}}, 'required': ['role', 'content'], 'title': 'Message', 'type': 'object'}, 'MetadataDict': {'description': 'A typed dictionary to represent metadata for a message in the Chatbot component. An\ninstance of this dictionary is used for the `metadata` field in a ChatMessage when\nthe chat message should be displayed as a thought.\nParameters:\n title: The title of the "thought" message. Required if the message is to be displayed as a thought.\n id: The ID of the message. Only used for nested thoughts. Nested thoughts can be nested by setting the parent_id to the id of the parent thought.\n parent_id: The ID of the parent message. Only used for nested thoughts.\n log: A string message to display next to the thought title in a subdued font.\n duration: The duration of the message in seconds. Appears next to the thought title in a subdued font inside a parentheses.\n status: if set to `"pending"`, a spinner appears next to the thought title and the accordion is initialized open. If `status` is `"done"`, the thought accordion is initialized closed. If `status` is not provided, the thought accordion is initialized open and no spinner is displayed.', 'properties': {'title': {'title': 'Title', 'type': 'string'}, 'id': {'anyOf': [{'type': 'integer'}, {'type': 'string'}], 'title': 'Id'}, 'parent_id': {'anyOf': [{'type': 'integer'}, {'type': 'string'}], 'title': 'Parent Id'}, 'log': {'title': 'Log', 'type': 'string'}, 'duration': {'title': 'Duration', 'type': 'number'}, 'status': {'enum': ['pending', 'done'], 'title': 'Status', 'type': 'string'}}, 'title': 'MetadataDict', 'type': 'object'}, 'OptionDict': {'description': 'A typed dictionary to represent an option in a ChatMessage. A list of these\ndictionaries is used for the `options` field in a ChatMessage.\nParameters:\n value: The value to return when the option is selected.\n label: The text to display in the option, if different from the value.', 'properties': {'value': {'title': 'Value', 'type': 'string'}, 'label': {'title': 'Label', 'type': 'string'}}, 'required': ['value'], 'title': 'OptionDict', 'type': 'object'}, 'TextMessage': {'properties': {'text': {'title': 'Text', 'type': 'string'}, 'type': {'const': 'text', 'default': 'text', 'title': 'Type', 'type': 'string'}}, 'required': ['text'], 'title': 'TextMessage', 'type': 'object'}}, 'items': {'$ref': '#/$defs/Message'}, 'title': 'ChatbotDataMessages', 'type': 'array', 'additional_description': None}, 'api_info_as_input': {'$defs': {'ComponentMessage': {'properties': {'component': {'title': 'Component', 'type': 'string'}, 'value': {'title': 'Value'}, 'constructor_args': {'additionalProperties': True, 'title': 'Constructor Args', 'type': 'object'}, 'props': {'additionalProperties': True, 'title': 'Props', 'type': 'object'}, 'type': {'const': 'component', 'default': 'component', 'title': 'Type', 'type': 'string'}}, 'required': ['component', 'value', 'constructor_args', 'props'], 'title': 'ComponentMessage', 'type': 'object'}, 'FileData': {'description': 'The FileData class is a subclass of the GradioModel class that represents a file object within a Gradio interface. It is used to store file data and metadata when a file is uploaded.\n\nAttributes:\n path: The server file path where the file is stored.\n url: The normalized server URL pointing to the file.\n size: The size of the file in bytes.\n orig_name: The original filename before upload.\n mime_type: The MIME type of the file.\n is_stream: Indicates whether the file is a stream.\n meta: Additional metadata used internally (should not be changed).', 'properties': {'path': {'title': 'Path', 'type': 'string'}, 'url': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'title': 'Url'}, 'size': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'default': None, 'title': 'Size'}, 'orig_name': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'title': 'Orig Name'}, 'mime_type': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'title': 'Mime Type'}, 'is_stream': {'default': False, 'title': 'Is Stream', 'type': 'boolean'}, 'meta': {'$ref': '#/$defs/FileDataMeta'}}, 'required': ['path'], 'title': 'FileData', 'type': 'object'}, 'FileDataMeta': {'properties': {'_type': {'const': 'gradio.FileData', 'title': 'Type', 'type': 'string'}}, 'required': ['_type'], 'title': 'FileDataMeta', 'type': 'object'}, 'FileMessage': {'properties': {'file': {'$ref': '#/$defs/FileData'}, 'alt_text': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'title': 'Alt Text'}, 'type': {'const': 'file', 'default': 'file', 'title': 'Type', 'type': 'string'}}, 'required': ['file'], 'title': 'FileMessage', 'type': 'object'}, 'Message': {'properties': {'role': {'title': 'Role', 'type': 'string'}, 'metadata': {'anyOf': [{'$ref': '#/$defs/MetadataDict'}, {'type': 'null'}], 'default': None}, 'content': {'items': {'anyOf': [{'$ref': '#/$defs/TextMessage'}, {'$ref': '#/$defs/FileMessage'}, {'$ref': '#/$defs/ComponentMessage'}]}, 'title': 'Content', 'type': 'array'}, 'options': {'anyOf': [{'items': {'$ref': '#/$defs/OptionDict'}, 'type': 'array'}, {'type': 'null'}], 'default': None, 'title': 'Options'}}, 'required': ['role', 'content'], 'title': 'Message', 'type': 'object'}, 'MetadataDict': {'description': 'A typed dictionary to represent metadata for a message in the Chatbot component. An\ninstance of this dictionary is used for the `metadata` field in a ChatMessage when\nthe chat message should be displayed as a thought.\nParameters:\n title: The title of the "thought" message. Required if the message is to be displayed as a thought.\n id: The ID of the message. Only used for nested thoughts. Nested thoughts can be nested by setting the parent_id to the id of the parent thought.\n parent_id: The ID of the parent message. Only used for nested thoughts.\n log: A string message to display next to the thought title in a subdued font.\n duration: The duration of the message in seconds. Appears next to the thought title in a subdued font inside a parentheses.\n status: if set to `"pending"`, a spinner appears next to the thought title and the accordion is initialized open. If `status` is `"done"`, the thought accordion is initialized closed. If `status` is not provided, the thought accordion is initialized open and no spinner is displayed.', 'properties': {'title': {'title': 'Title', 'type': 'string'}, 'id': {'anyOf': [{'type': 'integer'}, {'type': 'string'}], 'title': 'Id'}, 'parent_id': {'anyOf': [{'type': 'integer'}, {'type': 'string'}], 'title': 'Parent Id'}, 'log': {'title': 'Log', 'type': 'string'}, 'duration': {'title': 'Duration', 'type': 'number'}, 'status': {'enum': ['pending', 'done'], 'title': 'Status', 'type': 'string'}}, 'title': 'MetadataDict', 'type': 'object'}, 'OptionDict': {'description': 'A typed dictionary to represent an option in a ChatMessage. A list of these\ndictionaries is used for the `options` field in a ChatMessage.\nParameters:\n value: The value to return when the option is selected.\n label: The text to display in the option, if different from the value.', 'properties': {'value': {'title': 'Value', 'type': 'string'}, 'label': {'title': 'Label', 'type': 'string'}}, 'required': ['value'], 'title': 'OptionDict', 'type': 'object'}, 'TextMessage': {'properties': {'text': {'title': 'Text', 'type': 'string'}, 'type': {'const': 'text', 'default': 'text', 'title': 'Type', 'type': 'string'}}, 'required': ['text'], 'title': 'TextMessage', 'type': 'object'}}, 'items': {'$ref': '#/$defs/Message'}, 'title': 'ChatbotDataMessages', 'type': 'array', 'additional_description': None}, 'api_info_as_output': {'$defs': {'ComponentMessage': {'properties': {'component': {'title': 'Component', 'type': 'string'}, 'value': {'title': 'Value'}, 'constructor_args': {'additionalProperties': True, 'title': 'Constructor Args', 'type': 'object'}, 'props': {'additionalProperties': True, 'title': 'Props', 'type': 'object'}, 'type': {'const': 'component', 'default': 'component', 'title': 'Type', 'type': 'string'}}, 'required': ['component', 'value', 'constructor_args', 'props'], 'title': 'ComponentMessage', 'type': 'object'}, 'FileData': {'description': 'The FileData class is a subclass of the GradioModel class that represents a file object within a Gradio interface. It is used to store file data and metadata when a file is uploaded.\n\nAttributes:\n path: The server file path where the file is stored.\n url: The normalized server URL pointing to the file.\n size: The size of the file in bytes.\n orig_name: The original filename before upload.\n mime_type: The MIME type of the file.\n is_stream: Indicates whether the file is a stream.\n meta: Additional metadata used internally (should not be changed).', 'properties': {'path': {'title': 'Path', 'type': 'string'}, 'url': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'title': 'Url'}, 'size': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'default': None, 'title': 'Size'}, 'orig_name': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'title': 'Orig Name'}, 'mime_type': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'title': 'Mime Type'}, 'is_stream': {'default': False, 'title': 'Is Stream', 'type': 'boolean'}, 'meta': {'$ref': '#/$defs/FileDataMeta'}}, 'required': ['path'], 'title': 'FileData', 'type': 'object'}, 'FileDataMeta': {'properties': {'_type': {'const': 'gradio.FileData', 'title': 'Type', 'type': 'string'}}, 'required': ['_type'], 'title': 'FileDataMeta', 'type': 'object'}, 'FileMessage': {'properties': {'file': {'$ref': '#/$defs/FileData'}, 'alt_text': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'title': 'Alt Text'}, 'type': {'const': 'file', 'default': 'file', 'title': 'Type', 'type': 'string'}}, 'required': ['file'], 'title': 'FileMessage', 'type': 'object'}, 'Message': {'properties': {'role': {'title': 'Role', 'type': 'string'}, 'metadata': {'anyOf': [{'$ref': '#/$defs/MetadataDict'}, {'type': 'null'}], 'default': None}, 'content': {'items': {'anyOf': [{'$ref': '#/$defs/TextMessage'}, {'$ref': '#/$defs/FileMessage'}, {'$ref': '#/$defs/ComponentMessage'}]}, 'title': 'Content', 'type': 'array'}, 'options': {'anyOf': [{'items': {'$ref': '#/$defs/OptionDict'}, 'type': 'array'}, {'type': 'null'}], 'default': None, 'title': 'Options'}}, 'required': ['role', 'content'], 'title': 'Message', 'type': 'object'}, 'MetadataDict': {'description': 'A typed dictionary to represent metadata for a message in the Chatbot component. An\ninstance of this dictionary is used for the `metadata` field in a ChatMessage when\nthe chat message should be displayed as a thought.\nParameters:\n title: The title of the "thought" message. Required if the message is to be displayed as a thought.\n id: The ID of the message. Only used for nested thoughts. Nested thoughts can be nested by setting the parent_id to the id of the parent thought.\n parent_id: The ID of the parent message. Only used for nested thoughts.\n log: A string message to display next to the thought title in a subdued font.\n duration: The duration of the message in seconds. Appears next to the thought title in a subdued font inside a parentheses.\n status: if set to `"pending"`, a spinner appears next to the thought title and the accordion is initialized open. If `status` is `"done"`, the thought accordion is initialized closed. If `status` is not provided, the thought accordion is initialized open and no spinner is displayed.', 'properties': {'title': {'title': 'Title', 'type': 'string'}, 'id': {'anyOf': [{'type': 'integer'}, {'type': 'string'}], 'title': 'Id'}, 'parent_id': {'anyOf': [{'type': 'integer'}, {'type': 'string'}], 'title': 'Parent Id'}, 'log': {'title': 'Log', 'type': 'string'}, 'duration': {'title': 'Duration', 'type': 'number'}, 'status': {'enum': ['pending', 'done'], 'title': 'Status', 'type': 'string'}}, 'title': 'MetadataDict', 'type': 'object'}, 'OptionDict': {'description': 'A typed dictionary to represent an option in a ChatMessage. A list of these\ndictionaries is used for the `options` field in a ChatMessage.\nParameters:\n value: The value to return when the option is selected.\n label: The text to display in the option, if different from the value.', 'properties': {'value': {'title': 'Value', 'type': 'string'}, 'label': {'title': 'Label', 'type': 'string'}}, 'required': ['value'], 'title': 'OptionDict', 'type': 'object'}, 'TextMessage': {'properties': {'text': {'title': 'Text', 'type': 'string'}, 'type': {'const': 'text', 'default': 'text', 'title': 'Type', 'type': 'string'}}, 'required': ['text'], 'title': 'TextMessage', 'type': 'object'}}, 'items': {'$ref': '#/$defs/Message'}, 'title': 'ChatbotDataMessages', 'type': 'array', 'additional_description': None}, 'example_inputs': [{'role': 'user', 'metadata': None, 'content': [{'text': 'Hello!', 'type': 'text'}], 'options': None}, {'role': 'assistant', 'metadata': None, 'content': [{'text': 'How can I help you?', 'type': 'text'}], 'options': None}]}, {'id': 30, 'type': 'row', 'props': {'variant': 'default', 'visible': True, 'elem_classes': ['chat-input-row'], 'equal_height': False, 'show_progress': False, 'preserved_by_key': [], 'name': 'row'}, 'skip_api': True, 'component_class_id': '6f8a6130c432a547a95664f7f2f2a01fd8019e8e9b05282a61688092ea105a01', 'key': None}, {'id': 31, 'type': 'textbox', 'props': {'type': 'text', 'lines': 1, 'placeholder': 'Describe the clinical case or ask a follow-up question...', 'show_label': False, 'container': False, 'scale': 8, 'min_width': 160, 'visible': True, 'autofocus': False, 'autoscroll': True, 'elem_classes': [], 'preserved_by_key': ['value'], 'rtl': False, 'buttons': [], 'submit_btn': False, 'stop_btn': False, 'name': 'textbox', '_selectable': False}, 'skip_api': False, 'component_class_id': 'de54b6fd6ce8622ae36d11c1cbd43b965ca46f0c1fe283a7cec562dcb91a3208', 'key': None, 'api_info': {'type': 'string'}, 'api_info_as_input': {'type': 'string'}, 'api_info_as_output': {'type': 'string'}, 'example_inputs': 'Hello!!'}, {'id': 32, 'type': 'button', 'props': {'value': '↻', 'variant': 'secondary', 'size': 'lg', 'link_target': '_self', 'visible': True, 'interactive': True, 'elem_classes': ['btn-clear'], 'preserved_by_key': ['value'], 'scale': 0, 'min_width': 40, 'name': 'button', '_selectable': False}, 'skip_api': True, 'component_class_id': '2417a902726d3c7f260c9a2cbe2e7a1dd2fb75f94ec4fe1ce57949f9eb9b742d', 'key': None}, {'id': 33, 'type': 'button', 'props': {'value': '↑', 'variant': 'primary', 'size': 'lg', 'link_target': '_self', 'visible': True, 'interactive': True, 'elem_classes': ['btn-send'], 'preserved_by_key': ['value'], 'scale': 0, 'min_width': 40, 'name': 'button', '_selectable': False}, 'skip_api': True, 'component_class_id': '2417a902726d3c7f260c9a2cbe2e7a1dd2fb75f94ec4fe1ce57949f9eb9b742d', 'key': None}], 'css': None, 'connect_heartbeat': False, 'js': None, 'head': None, 'title': 'OncoAgent — Clinical Triage', 'space_id': None, 'enable_queue': True, 'show_error': True, 'footer_links': [], 'is_colab': False, 'max_file_size': None, 'stylesheets': [], 'theme': None, 'protocol': 'sse_v3', 'body_css': None, 'fill_height': False, 'fill_width': False, 'theme_hash': None, 'pwa': False, 'pages': [('', 'Home', True)], 'page': {'': {'layout': {'id': 0, 'children': [{'id': 1, 'children': []}, {'id': 2, 'children': []}, {'id': 3, 'children': [{'id': 4, 'children': [{'id': 5, 'children': [{'id': 6, 'children': []}, {'id': 9, 'children': [{'id': 7}, {'id': 8}]}]}, {'id': 10, 'children': [{'id': 11, 'children': [{'id': 12, 'children': []}, {'id': 13}]}, {'id': 14, 'children': [{'id': 15, 'children': []}, {'id': 16}]}]}, {'id': 17, 'children': [{'id': 18, 'children': [{'id': 19}]}, {'id': 20, 'children': [{'id': 21}]}, {'id': 22, 'children': [{'id': 23}]}]}, {'id': 24, 'children': [{'id': 25, 'children': []}, {'id': 26}]}]}, {'id': 27, 'children': [{'id': 28, 'children': [{'id': 29}, {'id': 30, 'children': [{'id': 31}, {'id': 32}, {'id': 33}]}]}]}]}]}, 'components': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33], 'dependencies': [0, 1, 2, 3]}}, 'mcp_server': False, 'i18n_translations': None, 'dependencies': [{'id': 0, 'targets': [(33, 'click')], 'inputs': [29, 31, 7, 8], 'outputs': [29, 31, 13, 16, 19, 21, 23, 26], 'backend_fn': True, 'js': None, 'queue': True, 'api_name': 'process_and_stream', 'api_description': None, 'scroll_to_output': False, 'show_progress': 'full', 'show_progress_on': None, 'batch': False, 'max_batch_size': 4, 'cancels': [], 'types': {'generator': True, 'cancel': False}, 'collects_event_data': False, 'trigger_after': None, 'trigger_only_on_success': False, 'trigger_only_on_failure': False, 'trigger_mode': 'once', 'api_visibility': 'public', 'rendered_in': None, 'render_id': None, 'connection': 'sse', 'time_limit': None, 'stream_every': 0.5, 'event_specific_args': None, 'component_prop_inputs': [], 'js_implementation': None}, {'id': 1, 'targets': [(31, 'submit')], 'inputs': [29, 31, 7, 8], 'outputs': [29, 31, 13, 16, 19, 21, 23, 26], 'backend_fn': True, 'js': None, 'queue': True, 'api_name': 'process_and_stream_1', 'api_description': None, 'scroll_to_output': False, 'show_progress': 'full', 'show_progress_on': None, 'batch': False, 'max_batch_size': 4, 'cancels': [], 'types': {'generator': True, 'cancel': False}, 'collects_event_data': False, 'trigger_after': None, 'trigger_only_on_success': False, 'trigger_only_on_failure': False, 'trigger_mode': 'once', 'api_visibility': 'public', 'rendered_in': None, 'render_id': None, 'connection': 'sse', 'time_limit': None, 'stream_every': 0.5, 'event_specific_args': None, 'component_prop_inputs': [], 'js_implementation': None}, {'id': 2, 'targets': [(32, 'click')], 'inputs': [], 'outputs': [29, 31, 7, 8, 13, 16, 19, 21, 23, 26], 'backend_fn': True, 'js': None, 'queue': True, 'api_name': 'lambda', 'api_description': None, 'scroll_to_output': False, 'show_progress': 'full', 'show_progress_on': None, 'batch': False, 'max_batch_size': 4, 'cancels': [], 'types': {'generator': False, 'cancel': False}, 'collects_event_data': False, 'trigger_after': None, 'trigger_only_on_success': False, 'trigger_only_on_failure': False, 'trigger_mode': 'once', 'api_visibility': 'public', 'rendered_in': None, 'render_id': None, 'connection': 'sse', 'time_limit': None, 'stream_every': 0.5, 'event_specific_args': None, 'component_prop_inputs': [], 'js_implementation': None}, {'id': 3, 'targets': [(None, 'load')], 'inputs': [], 'outputs': [7], 'backend_fn': True, 'js': None, 'queue': True, 'api_name': 'generate_patient_id', 'api_description': None, 'scroll_to_output': False, 'show_progress': 'full', 'show_progress_on': None, 'batch': False, 'max_batch_size': 4, 'cancels': [], 'types': {'generator': False, 'cancel': False}, 'collects_event_data': False, 'trigger_after': None, 'trigger_only_on_success': False, 'trigger_only_on_failure': False, 'trigger_mode': 'once', 'api_visibility': 'public', 'rendered_in': None, 'render_id': None, 'connection': 'sse', 'time_limit': None, 'stream_every': 0.5, 'event_specific_args': None, 'component_prop_inputs': [], 'js_implementation': None}], 'layout': {'id': 0, 'children': [{'id': 1, 'children': []}, {'id': 2, 'children': []}, {'id': 3, 'children': [{'id': 4, 'children': [{'id': 5, 'children': [{'id': 6, 'children': []}, {'id': 9, 'children': [{'id': 7}, {'id': 8}]}]}, {'id': 10, 'children': [{'id': 11, 'children': [{'id': 12, 'children': []}, {'id': 13}]}, {'id': 14, 'children': [{'id': 15, 'children': []}, {'id': 16}]}]}, {'id': 17, 'children': [{'id': 18, 'children': [{'id': 19}]}, {'id': 20, 'children': [{'id': 21}]}, {'id': 22, 'children': [{'id': 23}]}]}, {'id': 24, 'children': [{'id': 25, 'children': []}, {'id': 26}]}]}, {'id': 27, 'children': [{'id': 28, 'children': [{'id': 29}, {'id': 30, 'children': [{'id': 31}, {'id': 32}, {'id': 33}]}]}]}]}]}} | |