botserver/templates/platform/analytics.gbai/analytics.gbdialog/platform-overview.bas
Rodrigo Rodriguez (Pragmatismo) 48c1ae0b51 , dt.month, dt.hour, dt.is_weekend, etc.)
- Add startup wizard module for first-run configuration
- Add white-label branding system with .product file support
- Add bot manager for lifecycle, MinIO buckets, and templates
- Add version tracking registry for component updates
- Create comparison doc: BASIC vs n8n/Zapier/Make/Copilot
- Add WhatsApp-style sample dialogs to template documentation
- Add data traceability SVG diagram ```
2025-11-30 15:07:29 -03:00

115 lines
3.9 KiB
QBasic

' =============================================================================
' Platform Overview - Key Metrics Summary
' Analytics Bot Dialog for General Bots
' =============================================================================
TALK "Generating platform overview..."
HEAR timeRange AS TEXT WITH "Select time range (1h, 6h, 24h, 7d, 30d):" DEFAULT "24h"
' Query platform metrics from time-series database
messages = QUERY METRICS "messages" FOR timeRange
sessions = QUERY METRICS "active_sessions" FOR timeRange
responseTime = QUERY METRICS "response_time" FOR timeRange
errors = QUERY METRICS "errors" FOR timeRange
tokens = QUERY METRICS "llm_tokens" FOR timeRange
' Calculate totals
totalMessages = SUM(messages, "count")
avgSessions = AVG(sessions, "count")
avgResponseTime = AVG(responseTime, "duration_ms")
totalErrors = SUM(errors, "count")
totalTokens = SUM(tokens, "total_tokens")
' Calculate trends compared to previous period
prevMessages = QUERY METRICS "messages" FOR timeRange OFFSET 1
prevSessions = QUERY METRICS "active_sessions" FOR timeRange OFFSET 1
messagesTrend = ((totalMessages - SUM(prevMessages, "count")) / SUM(prevMessages, "count")) * 100
sessionsTrend = ((avgSessions - AVG(prevSessions, "count")) / AVG(prevSessions, "count")) * 100
TALK "Platform Overview for " + timeRange
TALK ""
TALK "Messages"
TALK " Total: " + FORMAT(totalMessages, "#,###")
TALK " Trend: " + FORMAT(messagesTrend, "+#.#") + "%"
TALK ""
TALK "Sessions"
TALK " Average Active: " + FORMAT(avgSessions, "#,###")
TALK " Trend: " + FORMAT(sessionsTrend, "+#.#") + "%"
TALK ""
TALK "Performance"
TALK " Avg Response Time: " + FORMAT(avgResponseTime, "#.##") + " ms"
TALK ""
TALK "Errors"
TALK " Total: " + FORMAT(totalErrors, "#,###")
TALK " Error Rate: " + FORMAT((totalErrors / totalMessages) * 100, "#.##") + "%"
TALK ""
TALK "LLM Usage"
TALK " Total Tokens: " + FORMAT(totalTokens, "#,###")
TALK ""
HEAR action AS TEXT WITH "Options: (D)etail, (E)xport report, (A)lerts, (B)ack"
SELECT CASE UCASE(action)
CASE "D", "DETAIL"
TALK "Select metric for detailed view:"
TALK "1. Messages breakdown by channel"
TALK "2. Sessions by bot"
TALK "3. Response time distribution"
TALK "4. Error breakdown by type"
HEAR detailChoice AS INTEGER
SELECT CASE detailChoice
CASE 1
CALL "message-analytics.bas"
CASE 2
CALL "user-analytics.bas"
CASE 3
CALL "performance-metrics.bas"
CASE 4
CALL "error-analysis.bas"
END SELECT
CASE "E", "EXPORT"
HEAR exportFormat AS TEXT WITH "Export format (PDF, CSV, XLSX):" DEFAULT "PDF"
report = {
"title": "Platform Overview Report",
"generated_at": NOW(),
"time_range": timeRange,
"metrics": {
"total_messages": totalMessages,
"messages_trend": messagesTrend,
"avg_sessions": avgSessions,
"sessions_trend": sessionsTrend,
"avg_response_time": avgResponseTime,
"total_errors": totalErrors,
"error_rate": (totalErrors / totalMessages) * 100,
"total_tokens": totalTokens
}
}
filename = "platform_overview_" + FORMAT(NOW(), "YYYYMMDD_HHmmss")
SELECT CASE UCASE(exportFormat)
CASE "PDF"
GENERATE PDF filename + ".pdf" WITH TEMPLATE "analytics_report" DATA report
CASE "CSV"
WRITE filename + ".csv", CSV(report.metrics)
CASE "XLSX"
WRITE filename + ".xlsx", EXCEL(report)
END SELECT
TALK "Report exported: " + filename + "." + LCASE(exportFormat)
TALK "The file is available in your Drive."
CASE "A", "ALERTS"
CALL "configure-alerts.bas"
CASE "B", "BACK"
CALL "start.bas"
CASE ELSE
CALL "start.bas"
END SELECT