feat: Add Streamlit dashboard with Blueprint compliance (v2.1.0)
Dashboard Features: - 8 navigation sections: Overview, Outcomes, Poor CX, FCR, Churn, Agent, Call Explorer, Export - Beyond Brand Identity styling (colors #6D84E3, Outfit font) - RCA Sankey diagram (Driver → Outcome → Churn Risk flow) - Correlation heatmaps (driver co-occurrence, driver-outcome) - Outcome Deep Dive (root causes, correlation, duration analysis) - Export functionality (Excel, HTML, JSON) Blueprint Compliance: - FCR: 4 categories (Primera Llamada/Rellamada × Sin/Con Riesgo de Fuga) - Churn: Binary view (Sin Riesgo de Fuga / En Riesgo de Fuga) - Agent: Talento Para Replicar / Oportunidades de Mejora - Fixed FCR rate calculation (only FIRST_CALL counts as success) Technical: - Streamlit + Plotly for interactive visualizations - Light theme configuration (.streamlit/config.toml) - Fixed Plotly colorbar titlefont deprecation Documentation: - Updated PROJECT_CONTEXT.md, TODO.md, CHANGELOG.md - Added 4 new technical decisions (TD-014 to TD-017) - Created TROUBLESHOOTING.md with 10 common issues Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
72
config/prompts/call_analysis/v1.0/user.txt
Normal file
72
config/prompts/call_analysis/v1.0/user.txt
Normal file
@@ -0,0 +1,72 @@
|
||||
Analyze the following call transcript and provide structured analysis.
|
||||
|
||||
## CALL METADATA
|
||||
- Call ID: {call_id}
|
||||
- Duration: {duration_sec} seconds
|
||||
- Queue: {queue}
|
||||
|
||||
## OBSERVED EVENTS (Pre-detected)
|
||||
{observed_events}
|
||||
|
||||
## TRANSCRIPT
|
||||
{transcript}
|
||||
|
||||
## TAXONOMY - LOST SALES DRIVERS
|
||||
{lost_sales_taxonomy}
|
||||
|
||||
## TAXONOMY - POOR CX DRIVERS
|
||||
{poor_cx_taxonomy}
|
||||
|
||||
## INSTRUCTIONS
|
||||
|
||||
1. Determine the call outcome from: SALE_COMPLETED, SALE_LOST, CANCELLATION_SAVED, CANCELLATION_COMPLETED, INQUIRY_RESOLVED, INQUIRY_UNRESOLVED, COMPLAINT_RESOLVED, COMPLAINT_UNRESOLVED, TRANSFER_OUT, CALLBACK_SCHEDULED, UNKNOWN
|
||||
|
||||
2. Identify lost_sales_drivers (if applicable):
|
||||
- Use ONLY codes from the Lost Sales taxonomy
|
||||
- Each driver MUST have evidence_spans with exact quotes and timestamps
|
||||
- Assign confidence based on evidence strength
|
||||
|
||||
3. Identify poor_cx_drivers (if applicable):
|
||||
- Use ONLY codes from the Poor CX taxonomy
|
||||
- Each driver MUST have evidence_spans with exact quotes and timestamps
|
||||
- Assign confidence based on evidence strength
|
||||
|
||||
4. For OTHER_EMERGENT, provide a proposed_label describing the new cause.
|
||||
|
||||
Respond with JSON only:
|
||||
|
||||
```json
|
||||
{
|
||||
"outcome": "SALE_LOST",
|
||||
"lost_sales_drivers": [
|
||||
{
|
||||
"driver_code": "PRICE_TOO_HIGH",
|
||||
"confidence": 0.85,
|
||||
"evidence_spans": [
|
||||
{
|
||||
"text": "Es demasiado caro para mí",
|
||||
"start_time": 45.2,
|
||||
"end_time": 47.8,
|
||||
"speaker": "customer"
|
||||
}
|
||||
],
|
||||
"reasoning": "Customer explicitly states price is too high"
|
||||
}
|
||||
],
|
||||
"poor_cx_drivers": [
|
||||
{
|
||||
"driver_code": "LONG_HOLD",
|
||||
"confidence": 0.90,
|
||||
"evidence_spans": [
|
||||
{
|
||||
"text": "Llevo esperando mucho tiempo",
|
||||
"start_time": 120.5,
|
||||
"end_time": 123.1,
|
||||
"speaker": "customer"
|
||||
}
|
||||
],
|
||||
"reasoning": "Customer complains about wait time"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
Reference in New Issue
Block a user