From 49aebc12d5022484bba4fb34d5ae4d6d685473cf Mon Sep 17 00:00:00 2001 From: abhishekbhakat Date: Wed, 26 Mar 2025 12:27:00 +0000 Subject: [PATCH] refactor: update application name and enhance header display in Streamlit app --- README.md | 7 ++--- pyproject.toml | 2 +- src/app.py | 28 ++++++++++++++++++- uv.lock | 76 +++++++++++++++++++++++++------------------------- 4 files changed, 68 insertions(+), 45 deletions(-) diff --git a/README.md b/README.md index 13db4e1..58205ee 100644 --- a/README.md +++ b/README.md @@ -67,7 +67,7 @@ servers_json = config/mcp_config.json Start the application: ```bash -streamlit run src/app.py +uv run mcpapp ``` The app will be available at `http://localhost:8501` @@ -82,9 +82,6 @@ Key components: ## Development -### Running Tests -```bash -pytest ``` ### Code Formatting @@ -94,7 +91,7 @@ ruff check . --fix ### Building ```bash -python -m build +uv build ``` ## License diff --git a/pyproject.toml b/pyproject.toml index bbcf634..469f0d8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,5 +1,5 @@ [project] -name = "streamlit-chat-app" +name = "macpapp" version = "0.1.0" description = "Streamlit chat app with MCP" readme = "README.md" diff --git a/src/app.py b/src/app.py index b605a37..2f99d17 100644 --- a/src/app.py +++ b/src/app.py @@ -85,6 +85,7 @@ def init_session_state(): base_url=base_url, ) st.session_state.model_name = model_name + st.session_state.provider_name = provider_name # Store provider name logger.info("LLMClient initialized successfully.") except Exception as e: @@ -182,9 +183,34 @@ def handle_user_input(): def main(): """Main function to run the Streamlit app.""" - st.title("MCP Chat App") # Updated title try: init_session_state() + + # --- Display Enhanced Header --- + provider_name = st.session_state.get("provider_name", "Unknown Provider") + model_name = st.session_state.get("model_name", "Unknown Model") + mcp_manager = st.session_state.client.mcp_manager # Get the manager + + server_count = 0 + tool_count = 0 + if mcp_manager and mcp_manager.initialized: + server_count = len(mcp_manager.servers) + try: + # Get tool count (might be slightly slow if many tools/servers) + tool_count = len(mcp_manager.list_all_tools()) + except Exception as e: + logger.warning(f"Could not retrieve tool count for header: {e}") + tool_count = "N/A" # Display N/A if listing fails + + # Display the new header format + st.markdown(f"# Say Hi to **{provider_name.capitalize()}**!") + st.write(f"MCP Servers: **{server_count}** | Tools: **{tool_count}**") + st.write(f"Model: **{model_name}**") + st.divider() + # ----------------------------- + + # Removed the previous caption display + display_chat_messages() handle_user_input() except Exception as e: diff --git a/uv.lock b/uv.lock index 0dbb0a8..86835ea 100644 --- a/uv.lock +++ b/uv.lock @@ -424,6 +424,44 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/d1/0f/8910b19ac0670a0f80ce1008e5e751c4a57e14d2c4c13a482aa6079fa9d6/jsonschema_specifications-2024.10.1-py3-none-any.whl", hash = "sha256:a09a0680616357d9a0ecf05c12ad234479f549239d0f5b55f3deea67475da9bf", size = 18459 }, ] +[[package]] +name = "macpapp" +version = "0.1.0" +source = { editable = "." } +dependencies = [ + { name = "anthropic" }, + { name = "google-genai" }, + { name = "openai" }, + { name = "python-dotenv" }, + { name = "streamlit" }, +] + +[package.optional-dependencies] +dev = [ + { name = "build" }, + { name = "pre-commit" }, + { name = "pytest" }, + { name = "pytest-asyncio" }, + { name = "pytest-mock" }, + { name = "ruff" }, +] + +[package.metadata] +requires-dist = [ + { name = "anthropic" }, + { name = "build", marker = "extra == 'dev'", specifier = ">=1.2.2" }, + { name = "google-genai" }, + { name = "openai" }, + { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.0.1" }, + { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.3.4" }, + { name = "pytest-asyncio", marker = "extra == 'dev'", specifier = ">=0.25.0" }, + { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14.0" }, + { name = "python-dotenv" }, + { name = "ruff", marker = "extra == 'dev'" }, + { name = "streamlit" }, +] +provides-extras = ["dev"] + [[package]] name = "markupsafe" version = "3.0.2" @@ -1135,44 +1173,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/46/9e/e51e34f504940da00145795b9e8be9c129704708b071f672f3626a37d842/streamlit-1.44.0-py3-none-any.whl", hash = "sha256:98510d03e53622bba8f0e9f2fd4f1191b3b55e5c7e55abbbaa0289cb9e21cdea", size = 9812034 }, ] -[[package]] -name = "streamlit-chat-app" -version = "0.1.0" -source = { editable = "." } -dependencies = [ - { name = "anthropic" }, - { name = "google-genai" }, - { name = "openai" }, - { name = "python-dotenv" }, - { name = "streamlit" }, -] - -[package.optional-dependencies] -dev = [ - { name = "build" }, - { name = "pre-commit" }, - { name = "pytest" }, - { name = "pytest-asyncio" }, - { name = "pytest-mock" }, - { name = "ruff" }, -] - -[package.metadata] -requires-dist = [ - { name = "anthropic" }, - { name = "build", marker = "extra == 'dev'", specifier = ">=1.2.2" }, - { name = "google-genai" }, - { name = "openai" }, - { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.0.1" }, - { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.3.4" }, - { name = "pytest-asyncio", marker = "extra == 'dev'", specifier = ">=0.25.0" }, - { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14.0" }, - { name = "python-dotenv" }, - { name = "ruff", marker = "extra == 'dev'" }, - { name = "streamlit" }, -] -provides-extras = ["dev"] - [[package]] name = "tenacity" version = "9.0.0"