AI Copilot
The conversational assistant that ties Natural Language Query, Propensity Scores, and Anomaly Detection together into one interface business users actually talk to.
High-Level Design
AI Copilot is the user-facing surface that composes every other AI & Insights capability.
💼 Business Context
- Consolidates several previously separate capabilities (ask a question, check a customer's risk, see what's anomalous) into one conversational entry point, instead of a business user needing to know which tool does what
- Lowers the skill floor for getting value from the Intelligence & Services layer without engineering support
- Owned by Data Science / Analytics Engineering
🔌 Technical Overview
The AI Copilot is a .NET Core service (Docker container on Azure Container Apps) that orchestrates calls across Natural Language Query, Propensity Scores, and Anomaly Detection behind Azure OpenAI Service's function-calling, letting a user ask "which customers are at risk of churning in APAC" and have the copilot resolve it into a semantic query plus a propensity-score filter, rather than requiring the user to know both capabilities exist separately. Conversation state and function-call history are stored in Azure Database for PostgreSQL for session continuity.
Composed Capabilities
💾 Copilot Function-Call Trace
User: "Which APAC customers are at risk of churning?" -> function_call: propensity_scores.filter(region=APAC, churn_risk>0.7) -> function_call: profile_api.batch_lookup(customer_keys) -> response: "14 customers, avg LTV band gold. Top 3: ..."
🔗 Integration Points
- Azure OpenAI Service — conversation and function-calling orchestration
- Natural Language Query, Propensity Scores, Anomaly Detection — the capabilities the copilot composes
- Profile API — resolves customer_keys returned by other capabilities into readable profile summaries
- Application Insights — traces the full function-call chain per conversation for debugging and cost tracking
🧰 Services Consumed
- Owning microservice —
Cxos.Intelligence.Api(see the Full Application Service Map) - Database — Azure Data Explorer/Kusto (scoring time series) + Azure Database for PostgreSQL
⚠️ Non-Functional Considerations
- Scale: conversation volume scales with active business users, a much smaller number than raw event volume
- Latency: a multi-function-call question typically resolves in 3-5 seconds end to end
- Reliability: each composed function call is independently validated and entitlement-checked, so a partial failure (e.g., propensity service down) degrades to a clear error rather than a fabricated answer
- Security/Privacy: the copilot inherits the asking user's own entitlements for every underlying call — it has no elevated access of its own
🎯 Enterprise Example
A support team lead asks the copilot which of their assigned accounts are at high churn risk and gets a ranked list with LTV context in one conversational turn — a query that previously required pulling a propensity export and cross-referencing it against a CRM view manually.