Spaces:
Running
Running
Added provider-specific prompt infrastructure; thinking and progress indicators to chat ui
68723f3
verified
A newer version of the Gradio SDK is available:
6.1.0
How Developers Work With This System
1. Adding a New Provider (e.g., "Claude" prompts)
Step 1: Create the prompt in prompts.py:
# Add new prompt variant
AUDIO_FINDER_PROMPT_CLAUDE = """You are BirdScope Audio Finder optimized for Claude..."""
# Update PROMPTS dict
PROMPTS = {
"audio_finder": {
"default": AUDIO_FINDER_PROMPT,
"huggingface": AUDIO_FINDER_PROMPT_HF,
"claude": AUDIO_FINDER_PROMPT_CLAUDE, # NEW
},
}
That's it! The system automatically picks it up when provider="claude" is passed.
2. Adding a New Prompt Type (e.g., "data_analyst")
Step 1: Create prompts:
DATA_ANALYST_PROMPT = """Default data analyst prompt..."""
DATA_ANALYST_PROMPT_HF = """HF-optimized data analyst prompt..."""
PROMPTS = {
# ... existing prompts ...
"data_analyst": {
"default": DATA_ANALYST_PROMPT,
"huggingface": DATA_ANALYST_PROMPT_HF,
}
}
Step 2: Use in subagent_config.py:
"data_analyst": {
"name": "Data Analyst",
"tools": [...],
"prompt": get_prompt("data_analyst", provider) or DATA_ANALYST_PROMPT,
}
3. Testing Different Prompts
Option A: Through UI (current method)
- Run
python app.py - Select provider dropdown → "HuggingFace"
- System automatically uses HF prompts
Option B: Programmatically (for testing)
from langgraph_agent import prompts
# Test which prompt is selected
prompt = prompts.get_prompt("audio_finder", "huggingface")
print(f"Length: {len(prompt)}")
print(prompt[:100])
4. Fallback Behavior
The system is designed with safe fallbacks:
# If HuggingFace variant doesn't exist, falls back to default
prompt = get_prompt("species_explorer", "huggingface")
# Returns: SPECIES_EXPLORER_PROMPT_HF if exists, else None
# In subagent_config.py, the "or" ensures a default
prompt = get_prompt("species_explorer", provider) or """Inline default..."""
Developer Workflow Summary
To modify prompts:
- Edit
langgraph_agent/prompts.py - Add/modify prompt strings
- Update
PROMPTSdictionary - Restart app - changes take effect immediately
To add new provider support:
- Add provider key to
PROMPTSdict - No other changes needed - fallback handles missing variants
To debug which prompt is used:
from langgraph_agent.prompts import get_prompt
print(get_prompt("audio_finder", "huggingface")[:200])