refactor: update application name and enhance header display in Streamlit app
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
[project]
|
||||
name = "streamlit-chat-app"
|
||||
name = "macpapp"
|
||||
version = "0.1.0"
|
||||
description = "Streamlit chat app with MCP"
|
||||
readme = "README.md"
|
||||
|
||||
28
src/app.py
28
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:
|
||||
|
||||
76
uv.lock
generated
76
uv.lock
generated
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user