Skip to content
r/adithya.
All projects
HPE · Deployed internally3 min read

AskAPS — AI Assistant for HPE Supply Chain Planning

An AI assistant in Microsoft Teams and on the web that answers supply-chain planning questions from documentation, support tickets, and live planning data in one place.

One place to ask a planning question
  1. Teams / webAsk a question
  2. AskAPSFind answers · follow up
  3. HPE servicesDocuments · tickets · data

Teams and the web share one FastAPI backend connected to HPE's retrieval and analytics services.

Internal HPE project. This write-up describes the work; source code and a public demo aren't available.

Overview

AskAPS is an AI assistant for HPE's supply-chain planning and materials-management teams. Planners ask a question in Microsoft Teams or the web app, and AskAPS answers from documentation, support tickets, and live planning data, with follow-up questions, filters, tables, and exports in the same conversation.

A question like "Which root-cause category is contributing the most to the current error?" used to mean running a report in one tool, looking up definitions in another, and searching tickets in a third. AskAPS brings that investigation into one place.

Features

  • KnowledgeAI: answers from planning documentation, with domain routing, scoped retrieval, page-level citations, and normalized source links.
  • TicketingAI: finds related support tickets in the right repository, prefetches relevant documentation, and links straight to ticket-raising destinations.
  • MetricsAI: natural-language questions over planning data, with filters, stateful refinements, paginated result tables, caching, and email export.
  • Two channels, one experience: rich Adaptive Cards in Microsoft Teams and a React web app, backed by the same services.
  • Saved work: favourites, feedback, and usage tracking.

How it works

  1. A planner asks a question in Teams or on the web.
  2. The FastAPI backend routes it to the right domain: documents, tickets, or metrics.
  3. Service adapters call HPE's retrieval service (Hippo) and text-to-SQL analytics service (GeniAIus), normalizing their streaming events.
  4. Results come back as citations, ticket cards, or data tables, and follow-up refinements continue the same session.

Tech stack

  • Backend: Python, FastAPI, Redis (sessions and caching), MySQL (questions, favourites, feedback, usage)
  • Frontend: React, Vite, Microsoft Teams Adaptive Cards
  • AI services: Hippo retrieval, GeniAIus text-to-SQL, server-sent event streaming
  • Deployment: Docker, Kubernetes

My contribution

I own the AskAPS application and integration layer: KnowledgeAI, TicketingAI, and MetricsAI integration; the Teams bot with Adaptive Cards, conversation state, and action dispatch; Redis-backed sessions; the shared FastAPI chat execution layer and service adapters; favourites, feedback, and usage events; retries and regression tests; and Docker packaging, Kubernetes compatibility, and release validation.

Engineering highlights

One backend, two channels. Teams and the web app call the same FastAPI services. Only presentation is channel-specific; routing, state, caching, and business rules are shared, so both channels behave identically.

Follow-up questions that keep their context. I built a normalized SSE client for the analytics service that validates a single session ID and keeps refinement state separate from the original question. A follow-up sends only the selected refinement with that exact session, so filters and context survive every turn.

Precise scoping. KnowledgeAI combines weighted keywords with embedding similarity to pick document types, and asks the planner to choose when a match is ambiguous. Declarative MetricsAI profiles define each data source, its verified columns, and its filter rules.

Deployed and maintained. AskAPS runs internally at HPE and is actively maintained, with usage and feedback tracked.

Built withFastAPIReactRedisMySQLMicrosoft TeamsKubernetes

Write-up updated .

Vote

Your vote stays in this browser.

Let's talk about it

Ask u/adithya-bot about this post. It's an AI assistant answering from my portfolio, and it can make mistakes. This conversation is private to your visit.

0/500

Keep exploring