Spaces:
Sleeping
Sleeping
| # app.py | |
| import streamlit as st | |
| import os | |
| # Import components and pages | |
| from components import home, refactor_page, style_page, test_page, \ | |
| lang_page, code_documentation_page, database_page, optimize_page, \ | |
| model_trainer_page, notebook_integration_page, xai_page, \ | |
| versioning_tracker_page, nlp_nlg_page, devops_page, api_doc_page, \ | |
| code_review_page, version_control_page, recommendation_system_page, \ | |
| code_security_scanner_page, code_diagram_page | |
| # Initialize the app | |
| st.set_page_config( | |
| page_title="Codecrafter GPT: A Comprehensive Code Enhancement Platform", | |
| page_icon="π", | |
| layout="wide" | |
| ) | |
| # Initialize the sidebar | |
| st.sidebar.title("OpenAI API Key") | |
| api_key = st.sidebar.text_input("Enter your OpenAI API key:", type='password') | |
| if not api_key: | |
| st.warning("Please enter your OpenAI API key to access pages.") | |
| else: | |
| # Instantiate the ChatOpenAI object | |
| from langchain.chat_models import ChatOpenAI | |
| chat = ChatOpenAI( | |
| model="gpt-3.5-turbo-16k", | |
| temperature=0, | |
| api_key=api_key | |
| ) | |
| # Show the navigation menu | |
| selected = option_menu( | |
| menu_title="CodeCraftGPT", | |
| options=[ | |
| "Home", "RefactorRite", "StyleSculpt", | |
| "TestGenius", "LangLink", "CodeDocGenius", "Database", "AutoOptimizer", | |
| "ModelTrainer", "NotebookIntegration", "ExplainableAI", "DataVersioning", | |
| "NLPandNLG", "DevOps", "APIDocGen", "CodeReviewAssistant", | |
| "VersionControl", "RecommendationSystem", "CodeSecurityScanner", | |
| "CodeDiagramConverter" | |
| ], | |
| icons=[ | |
| 'house', 'gear', 'palette', 'clipboard2-pulse', | |
| 'code-slash', 'file-text', 'database', 'diagram-3', | |
| 'diagram-project', 'diagram-3', 'diagram-3', 'diagram-3', | |
| 'diagram-3', 'gear', 'file-text', 'file-code', | |
| 'screwdriver-wrench', 'file-text', 'diagram-3', 'diagram-3', | |
| 'code-fork' | |
| ], | |
| default_index=0 | |
| ) | |
| # Define a dictionary mapping page names to their corresponding functions | |
| pages = { | |
| "Home": home.show_home_page, | |
| "RefactorRite": refactor_page.show_refactor_page, | |
| "StyleSculpt": style_page.show_style_page, | |
| "TestGenius": test_page.show_test_page, | |
| "LangLink": lang_page.show_lang_page, | |
| "CodeDocGenius": code_documentation_page.show_doc_page, | |
| "Database": database_page.show_database_page, | |
| "AutoOptimizer": optimize_page.show_optimize_page, | |
| "ModelTrainer": model_trainer_page.show_model_trainer_page, | |
| "NotebookIntegration": notebook_integration_page.show_notebook_integration_page, | |
| "ExplainableAI": xai_page.show_xai_page, | |
| "DataVersioning": versioning_tracker_page.show_versioning_page, | |
| "NLPandNLG": nlp_nlg_page.show_nlp_nlg_page, | |
| "DevOps": devops_page.show_devops_page, | |
| "APIDocGen": api_doc_page.show_api_doc_page, | |
| "CodeReviewAssistant": code_review_page.show_code_review_page, | |
| "VersionControl": version_control_page.show_version_control_page, | |
| "RecommendationSystem": recommendation_system_page.show_recommendation_system_page, | |
| "CodeSecurityScanner": code_security_scanner_page.show_code_security_page, | |
| "CodeDiagramConverter": code_diagram_page.show_code_diagram_page | |
| } | |
| # Call the function for the selected page | |
| if selected in pages: | |
| pages[selected](chat) | |
| else: | |
| st.error("Page not found!") |