Project

Nova Lite Summarizer

Paste any block of text and get it summarized in real time by Amazon Bedrock's Nova Lite model — a real call to a foundation model, not a canned response.

Demo

Summarize Some Text

This runs against a real AWS backend — no mock data, no pre-written responses.

Privacy notice: pasted text is sent to Bedrock for summarization only and is not stored anywhere afterward.

Fair use: this is a public demo with a shared daily request budget — if it says the limit's been reached, please check back tomorrow.

0 / 6000 characters

Your summary will appear here once you submit some text.

Architecture

How It Works

This is a real AWS project, not a mockup. Here's what actually happens between clicking Summarize above and a summary appearing on the page — click any step to jump to it, or let it play through on its own.

Visitor
API Gateway
Lambda
DynamoDB
Bedrock (Nova Lite)
Summary
  1. 1

    Browser calls a throttled API Gateway endpoint

    The pasted text and chosen length go to POST /summarize. This stage has a request-rate throttle attached, so a burst of automated requests is rejected before Lambda ever runs.

  2. 2

    Lambda checks the daily request budget

    Before spending anything on Bedrock, Lambda tries to reserve one request against today's shared quota — a public, unauthenticated AI endpoint needs a real cost ceiling, not just a rate limit.

  3. 3

    DynamoDB atomically checks and increments today's count

    One conditional UpdateItem call both reads and increments the counter, so two requests arriving at the same instant can't both slip through past the limit.

  4. 4

    Lambda calls Amazon Bedrock's Nova Lite model

    The text, wrapped in a short instruction based on the length you picked, is sent to Nova Lite through Bedrock's Converse API — the same standardized interface Bedrock exposes across many different foundation models.

  5. 5

    The summary is returned straight back to the browser

    No polling, no job queue — Nova Lite responds fast enough that this is a single synchronous request/response round trip, same as this site's non-AI endpoints.

Use Cases

Where This Pattern Fits

A cheap, fast text model behind a simple API shows up anywhere an app needs to condense text without standing up its own ML infrastructure.

Support ticket & email triage

Auto-generating a one-line summary of a long support thread or email chain so a human can decide what to read in full.

Meeting notes & transcripts

Turning a raw transcript into a short recap — the same "short vs detailed" toggle this demo offers maps directly onto "recap" vs "full notes."

Content moderation & review queues

Giving a reviewer a quick summary of a long user submission before they decide whether to read the whole thing.

Pricing

What This Actually Costs

Pay-per-use the whole way through — an unused demo costs nothing. These are estimates based on public AWS list pricing, not a guarantee.

Light volume

~$0/mo

A handful of summaries a day, a small fraction of the daily cap — Nova Lite is one of Bedrock's cheapest models per token, so casual use costs a fraction of a cent.

% of daily request cap reached

What drives the cost

  • Bedrock (Nova Lite) — billed per input/output token; Nova Lite is priced well below most other Bedrock models, which is exactly why it fits a public demo.
  • DynamoDB — a single tiny item per day for the usage counter; effectively free.
  • Lambda & API Gateway — billed per request; effectively free at this scale.

Design Decisions

Why I Built It This Way

A few choices here aren't the only way to build this — here's the reasoning behind them.

Two independent limits, not just one

API Gateway's stage throttle stops a fast burst but can't cap total cost over a day — a slow drip of requests just under the rate limit could still run all day. The DynamoDB daily counter closes that gap; each guards against a failure mode the other one doesn't.

Pasted text only, no URL fetching or file upload

Fetching an arbitrary URL server-side turns this Lambda into an open proxy, and file upload adds a whole presigned-POST upload flow that's out of scope here. Pasted text keeps this project's scope entirely about the Bedrock call itself.

The Converse API, not model-specific InvokeModel

Nova Lite's native request format works fine with a direct InvokeModel call, but Bedrock's Converse API gives every supported model the same request/response shape — swapping in a different model later would mean changing one modelId string, not rewriting the payload format.

An inference profile id, not the bare model id

us.amazon.nova-lite-v1:0 is a cross-region inference profile rather than a single-region model id -- newer Bedrock model families increasingly require this for on-demand throughput, and it's set as a plain environment variable so it's a one-line change if that requirement shifts.

Architecture Diagram

Full Architecture Diagram

The complete AWS architecture diagram for this project, built with draw.io. Click it to expand full screen.