| import streamlit as st |
| from graphviz import Digraph |
|
|
|
|
| |
| |
| |
|
|
| |
|
|
| |
| import streamlit as st |
|
|
| |
| default_dot = """ |
| digraph G { |
| rankdir=LR |
| node [shape=box] |
| WebApp -> API |
| API -> Models |
| API -> Datasets |
| Models -> Torch |
| Models -> Transformers |
| WebApp -> Streamlit |
| Streamlit -> Azure |
| Azure -> Docker |
| Azure -> Kubernetes |
| } |
| """ |
|
|
| |
| components = [ |
| "WebApp", |
| "API", |
| "Models", |
| "Datasets", |
| "Torch", |
| "Transformers", |
| "Streamlit", |
| "Azure", |
| "Docker", |
| "Kubernetes", |
| ] |
|
|
| |
| node_ids = { |
| component: component.lower() |
| for component in components |
| } |
|
|
| def build_dot_string(selected_components): |
| """Builds a DOT string representing the selected components""" |
| selected_nodes = [node_ids[component] for component in selected_components] |
| dot = """ |
| digraph G { |
| rankdir=LR |
| node [shape=box] |
| """ |
| for node in selected_nodes: |
| dot += f"{node} [color=blue]\n" |
| for i in range(len(selected_nodes)): |
| for j in range(i+1, len(selected_nodes)): |
| dot += f"{selected_nodes[i]} -> {selected_nodes[j]}\n" |
| dot += "}" |
| return dot |
|
|
| def main(): |
| st.title("Azure Cloud Architecture Builder") |
|
|
| |
| st.sidebar.title("Select components") |
| selected_components = st.sidebar.multiselect( |
| "Select the top 10 components", |
| components, |
| default=components[:3] |
| ) |
|
|
| |
| dot = build_dot_string(selected_components) |
|
|
| |
| st.graphviz_chart(dot, use_container_width=True) |
|
|
| if __name__ == "__main__": |
| main() |
|
|
|
|
|
|
| |
| graph = Digraph(comment='Architectural Model') |
|
|
| |
| graph.node('data_layer', 'Data Layer') |
| graph.node('acr', 'Azure Container Registry') |
| graph.node('aks', 'Azure Kubernetes\n& Docker Container Pod\nwith Scalability') |
| graph.node('snowflake', 'Snowflake Instance') |
| graph.node('cosmos', 'Azure Cosmos\nDatabase') |
| graph.node('api', 'API Standard\n(using Uvicorn)') |
| graph.node('soar', 'SOAR Component\n(on Linux Python\nSlimbuster Docker)') |
|
|
| |
| graph.edge('data_layer', 'acr') |
| graph.edge('acr', 'aks') |
| graph.edge('aks', 'snowflake') |
| graph.edge('aks', 'cosmos') |
| graph.edge('aks', 'api') |
| graph.edge('aks', 'soar') |
|
|
| |
| def app(): |
| st.title('Architectural Model') |
| |
| |
| st.graphviz_chart(graph.source) |
| |
| |
| if st.button('Hide Data Layer'): |
| graph.node('data_layer', style='invisible') |
| |
| if st.button('Hide Snowflake Instance'): |
| graph.node('snowflake', style='invisible') |
| |
| if st.button('Hide SOAR Component'): |
| graph.node('soar', style='invisible') |
|
|
|
|
|
|
| st.markdown(""" |
| # QA Model Spaces: |
| QA use cases include QA, Semantic Document and FAQ Search. |
| 1. Streamlit Question Answering w Hugging Face: https://huggingface.co/spaces/awacke1/Question-answering |
| 2. Seq2Seq: |
| - https://huggingface.co/spaces/awacke1/4-Seq2SeqQAT5 |
| - https://huggingface.co/spaces/awacke1/AW-04-GR-Seq-2-Seq-QA-Auto-Gen |
| 3. BioGPT: https://huggingface.co/spaces/awacke1/microsoft-BioGPT-Large-PubMedQA |
| 4. NLP QA Context: https://huggingface.co/spaces/awacke1/NLPContextQATransformersRobertaBaseSquad2 |
| - https://huggingface.co/spaces/awacke1/SOTA-Plan |
| 5. https://huggingface.co/spaces/awacke1/Question-answering |
| 6. QA MLM: https://huggingface.co/spaces/awacke1/SOTA-MedEntity |
| """) |
|
|
|
|
| |
| |
| if __name__ == '__main__': |
| app() |
|
|