Work

Year 2025 · KLIKIT · Architect · Shipped

Conversational analytics

Natural-language access to a merchant's own operational data, mediated through a pre-generated CSV layer that bounds blast radius, cost, and cacheability — without exposing the data plane to model-generated queries.

Context

Operators on the platform have access to a substantial body of operational data: sales mix, item velocity, channel performance, hour-of-day patterns, and so on. The dashboards through which this data is surfaced are technically capable but suffer the familiar problem of discovery cost: most operators never open the screens that would reveal the insight they need. The artefacts exist; the path to them does not.

Design

  • A conversational interface in the administrative web client, backed by a large-language-model agent with tightly controlled tool access.
  • A pre-generated, per-business comma-separated values (CSV) layer for the agent to query, rather than direct database access. The constraints are deliberate: blast radius is bounded, per-query cost is predictable, and the data plane is cacheable. The model never sees a database connection string and the database never sees raw user input.
  • Iterative refinements across three axes — reliability (retry semantics, session state), performance (streaming responses, mitigation of cold starts), and observability (full conversation traces tied to business and authenticated user).

Outcome

Operators surface in a single conversation findings that would have taken several screens to assemble. Cost-per-query is bounded and observable, and the architecture preserves the separation between user input and stored data, which is non-negotiable for a multi-tenant operational system.

Stack

AWS Bedrock Agents · Python (AWS Lambda) · S3 · React / Redux administrative client.