Skip to content

CASE STUDY

03/Work, selected

02 / 08

GENIE

A safe place for state employees to try generative AI.

What I ownedOwnership: Core contributor on a team build

Core engineer on the Burnes team’s build, and the author of Smart Model, the router that picks a model for each request.

44,000+State employees with access

Year
2024
Role
Co‑op engineer, author of Smart Model
With
The Burnes Center for Social Change
Category
Government AI

01/The problem

State employees wanted AI. The state wanted it safe.

Massachusetts state employees wanted to use generative AI, but pasting government work into a public chatbot is a security and cost problem. They needed a sandbox with guardrails.

02/What I built

One sandbox, many models, and a router that picks for you.

  1. 01

    Built with the Executive Office of Technology Services and Security and AWS on top of the open source AWS GenAI chatbot.

  2. 02

    A chat playground, a multi-chat view that compares two to four models side by side, a task carousel of ready-made prompts, and RAG workspaces where staff upload their own documents.

  3. 03

    My own piece was Smart Model, an LLM router. One Claude call reads each prompt beside a sheet of every model’s languages, token limits, use cases and prices, and names the model to use, so beginners never have to know which to pick.

  4. 04

    The sandbox also hosted the RIDE Guide and MassHealth Helper builds from the same co-op cohort.

03/Architecture

Every request finds the right model.

Sign in, send a prompt, a Claude call picks the model from a capability sheet, the answer streams back, and RAG workspaces ground it in uploaded documents.

01State employee02Cognito03API Gateway04Lambda handlers05Smart Modelrouter06Bedrock models07RAG workspaces08DynamoDB

04/Outcomes

Forty-four thousand people with access.

  1. 44,000+

    State employees with access

    The Burnes Center reports that the sandbox enabled over 44,000 state employees to explore AI. That is access, not measured daily use.

    Employer-reportedSource: burnes.northeastern.edu

  2. 17

    Bedrock models Smart Model routes across

    One router call reads the prompt against a capability sheet of task fit, cost and token size, and picks the model. Simple requests can go to models up to 12 times cheaper per request than the default: Claude 3 Haiku against Claude 3.5 Sonnet at Bedrock list prices, for 1,500 tokens in and 500 out. The list is in the router's own code.

    From the repoSource: github.com

  3. 1

    Governor’s Citation

    Signed by Governor Healey and Lieutenant Governor Driscoll on June 26, 2024.

    Third party

Check these in the ledger

05/Production notes

Behind the numbers

All receipts for this project
Mechanism

Smart Model is an LLM router, not a rules table or a trained classifier. In the version I wrote, one Claude 3 Sonnet call on Bedrock reads the user’s prompt beside a sheet on each model (token limit, languages, use cases, price per 1,000 tokens, benchmark scores) and answers with one model name from a fixed list. A rule in that prompt sends any language other than English to Claude 3 Sonnet.

Fallback

In that version, a failed router call, a name that is not on the list, or an unreadable sheet all send the request to Claude 3 Sonnet. The chosen model is logged for every request.

Cost

Not measured

I never measured a saving, so none is claimed. Picking a cheaper model for simple prompts saves money, but the router call itself runs on Claude Sonnet and reads the whole capability sheet, so on a typical request it costs about as much as it saves. A small, cheap router model is the first fix I would make.

Evaluation

Not measured

The repo has no tests and no routing evaluation, so nothing shows that routing kept answers as good as always using one model.

Evidence

Private repo

The Burnes Center repo is private, so the router is described here and not linked.

06/Stack

Built with

  • AWS Bedrock
  • Claude
  • Lambda
  • API Gateway
  • Cognito
  • Kendra
  • OpenSearch
  • DynamoDB
  • React
  • TypeScript
  • Python