refactor: update application name and enhance header display in Streamlit app

This commit is contained in:
2025-03-26 12:27:00 +00:00
parent bd56cc839d
commit 49aebc12d5
4 changed files with 68 additions and 45 deletions

View File

@@ -67,7 +67,7 @@ servers_json = config/mcp_config.json
Start the application: Start the application:
```bash ```bash
streamlit run src/app.py uv run mcpapp
``` ```
The app will be available at `http://localhost:8501` The app will be available at `http://localhost:8501`
@@ -82,9 +82,6 @@ Key components:
## Development ## Development
### Running Tests
```bash
pytest
``` ```
### Code Formatting ### Code Formatting
@@ -94,7 +91,7 @@ ruff check . --fix
### Building ### Building
```bash ```bash
python -m build uv build
``` ```
## License ## License

View File

@@ -1,5 +1,5 @@
[project] [project]
name = "streamlit-chat-app" name = "macpapp"
version = "0.1.0" version = "0.1.0"
description = "Streamlit chat app with MCP" description = "Streamlit chat app with MCP"
readme = "README.md" readme = "README.md"

View File

@@ -85,6 +85,7 @@ def init_session_state():
base_url=base_url, base_url=base_url,
) )
st.session_state.model_name = model_name st.session_state.model_name = model_name
st.session_state.provider_name = provider_name # Store provider name
logger.info("LLMClient initialized successfully.") logger.info("LLMClient initialized successfully.")
except Exception as e: except Exception as e:
@@ -182,9 +183,34 @@ def handle_user_input():
def main(): def main():
"""Main function to run the Streamlit app.""" """Main function to run the Streamlit app."""
st.title("MCP Chat App") # Updated title
try: try:
init_session_state() 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() display_chat_messages()
handle_user_input() handle_user_input()
except Exception as e: except Exception as e:

76
uv.lock generated
View File

@@ -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 }, { 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]] [[package]]
name = "markupsafe" name = "markupsafe"
version = "3.0.2" 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 }, { 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]] [[package]]
name = "tenacity" name = "tenacity"
version = "9.0.0" version = "9.0.0"