File size: 2,446 Bytes
68723f3 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 |
# How Developers Work With This System
## 1. Adding a New Provider (e.g., "Claude" prompts)
### Step 1: Create the prompt in prompts.py:
```python
# 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:
```python
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:
```python
"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)
```python
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:
```python
# 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:
1. Edit `langgraph_agent/prompts.py`
2. Add/modify prompt strings
3. Update `PROMPTS` dictionary
4. Restart app - changes take effect immediately
### To add new provider support:
1. Add provider key to `PROMPTS` dict
2. No other changes needed - fallback handles missing variants
### To debug which prompt is used:
```python
from langgraph_agent.prompts import get_prompt
print(get_prompt("audio_finder", "huggingface")[:200])
``` |