AI-Powered Automation:
A Streamlit-powered chat UI that accepts natural language queries about Azure services and pricing.
Login and registration with hashed password storage to protect user accounts and session data.
FastAPI backend calls Azure's live Pricing API as an LLM tool to fetch accurate, up-to-date cost data.
Understands and classifies user queries, extracts service parameters, and generates structured cost responses.
Returns detailed, line-by-line Azure cost estimates per service, region, tier, and usage pattern.
All conversations are stored per user in PostgreSQL, enabling future reference and session continuity.
Fully deployable on an Azure VM running Ubuntu, with zero downtime and production-grade configuration.
Azure's pricing pages are vast and service-specific. Engineers spent hours navigating documentation to estimate costs for even straightforward deployments.
Cost estimates created manually in spreadsheets were prone to version mismatch, incorrect tier assumptions, and outdated pricing — leading to budget overruns.
Existing Azure calculators require users to fill structured forms and know exactly which parameters to input — creating a steep learning curve for non-technical stakeholders.
Pricing discussions held verbally or over email were lost immediately. There was no structured way to revisit, compare, or refine past cost estimates.
DevOps, finance, and product teams had no shared tool to estimate and align on cloud costs collaboratively and in real time.
Provide an intuitive, natural language interface for Azure cost estimation — removing the need to manually navigate pricing pages or fill structured forms.
Securely authenticate users with hashed password storage, ensuring each user has a private, protected session environment.
Persist chat history per user in PostgreSQL, enabling future reference, session continuity, and side-by-side cost comparisons.
Use OpenAI GPT-4 to understand user intent, extract service parameters, and generate structured, human-readable cost breakdowns.
Call Azure Pricing APIs dynamically as LLM tools to return accurate, real-time pricing data — never relying on static or cached figures.
Deploy on a Linux Azure VM with production-grade configuration and zero downtime, making the system immediately operational for enterprise teams.
Scale cost estimation across technical and non-technical roles — enabling finance managers, architects, and developers to use the same tool without training.
The user authenticates via the Streamlit UI. Passwords are hashed before storage in PostgreSQL. Authenticated users receive a session token.
The user types a natural language question such as 'How much will 4 Azure VMs (Standard D4s v3) in East US cost per month?' into the chat interface.
The Streamlit frontend posts the message to the FastAPI backend via a REST endpoint. FastAPI validates the session and routes the query to the OpenAI processing layer.
GPT-4 analyses the query, identifies the Azure services requested, and determines the required parameters — service name, region, tier, and usage volume.
FastAPI calls the Azure Pricing API as an LLM tool, passing the extracted parameters. The API returns real-time, itemised pricing data for the specified services.
OpenAI GPT-4 receives the API response and formats a structured, readable reply with per-service cost breakdowns, totals, and relevant notes.
The FastAPI backend saves the full conversation turn (user message + AI response) to PostgreSQL. The formatted reply is returned to the Streamlit UI and rendered in the chat window.
Users can revisit previous estimation sessions from the chat history panel, allowing them to compare costs across configurations or resume a prior conversation.
| Tools & Services | Purpose |
|---|---|
| Streamlit | Frontend chat UI — conversational interface, session state, and history display |
| FastAPI | Backend API layer — request handling, authentication, routing, and tool orchestration |
| OpenAI GPT-4 | Natural language understanding — intent extraction, response generation, and tool use |
| Azure Pricing API | Real-time Azure cost data — fetched dynamically per user query as an LLM tool |
| PostgreSQL | User data persistence — account storage, hashed passwords, and full chat history |
| Azure VM (Linux) | Deployment environment — Ubuntu-based production server with zero downtime setup |
| REST APIs | Inter-service communication between Streamlit frontend and FastAPI backend |
fully configured chat UI with session management and history panel
authentication, request routing, and Azure Pricing API integration
prompt design, intent extraction, and tool call configuration
user accounts, hashed password storage, and conversation persistence
dynamic real-time pricing fetch per service query
production setup on Azure VM (Ubuntu) with zero downtime
architecture overview, setup guide, and API reference
| Metric | Value |
|---|---|
| Total Build Time | 4 Days |
| Resources Used | 1 Automation Engineer |
| Handover | Full documentation included |
| Deployment | Zero downtime — Azure VM (Linux) |
| Operating Mode | 24×7 — fully automated, always on |
An engineer asks 'What is the monthly cost of running 10 Standard D8s v3 VMs in UK South?' — the chatbot fetches live pricing and returns a full itemised breakdown instantly.
A cloud architect inquires about the combined cost of an App Service, Azure SQL Database, and Blob Storage for a new product — the system estimates all three in a single response.
A finance manager asks 'Which is cheaper for Azure Kubernetes Service — East US or West Europe?' — the chatbot calls the API for both regions and provides a cost comparison.
A product team asks for a full infrastructure cost estimate ahead of a product launch. The chatbot accumulates multiple service estimates across the conversation and provides a session total.
A user returns to the chatbot a week later to revisit a cost estimate from a previous session — all prior conversations are retrieved from PostgreSQL and displayed in context.
A business director with no cloud expertise asks 'How much does it cost to run a website on Azure?' — the chatbot guides the conversation, asks clarifying questions, and returns an accessible estimate.
| Metric | Before Automation | After Deployment | Improvement |
|---|---|---|---|
| Estimation Time | 30–120 mins manual | < 30 seconds | 99% faster |
| Pricing Accuracy | Error-prone (static docs) | Real-time API data | 100% live pricing |
| Accessibility | Technical users only | Any stakeholder | Fully democratised |
| Session Continuity | None — lost after call | Full history in DB | Permanent record |
| Deployment Effort | No prior tooling | Zero downtime on VM | Production-ready |
| Scalability | 1 engineer, manual | Unlimited queries | ∞ capacity |
Users ask questions in plain English, with no forms or structured input required. GPT-4 handles all intent parsing and parameter extraction automatically.
Pricing is never cached or hardcoded. Every query triggers a live API call to Azure's Pricing API, returning accurate, current data for the exact service configuration requested.
Passwords are hashed using industry-standard cryptography before storage in PostgreSQL. No plaintext credentials are ever retained.
Every conversation turn is saved to PostgreSQL per user, enabling session continuity, historical review, and side-by-side cost comparisons across configurations.
Streamlit handles UI, FastAPI handles business logic and API orchestration, and PostgreSQL handles persistence — each tier independently replaceable and scalable.
Responses include per-service line items, regional pricing, tier-specific rates, and estimated monthly totals in a structured, readable format.
A single user message can request pricing for multiple Azure services simultaneously. GPT-4 decomposes the query and the backend fetches pricing for each independently.
The entire stack is deployable on an Azure VM (Ubuntu) with production-grade configuration, startup scripts, and environment management built in.
The chatbot relies on the Azure Pricing API for data retrieval. Services or SKUs not exposed through this API may return incomplete or unavailable pricing information.
The system estimates costs for specified configurations but does not proactively suggest cheaper alternatives, reserved instance savings, or Azure Hybrid Benefit discounts without being explicitly asked.
Cost estimates are returned in USD by default, aligned with the Azure Pricing API. Multi-currency support or dynamic conversion requires additional implementation.
The chatbot provides general pricing estimates based on public Azure rates. It does not connect to a user's actual Azure subscription, meaning enterprise agreements, negotiated discounts, or actual usage data are not reflected.