Project · Beginner · about 10 hours

A support reply assistant with structured output

Use an LLM to classify customer messages and draft replies with structured output, then measure it on 100 labelled messages before anyone sees a draft.

Skills:LLMs and NLP, Prompt engineering, Python

Part of: Forward Deployed Engineer

Data and licences

Brief

A support team wants first-draft replies so agents spend time checking rather than typing. Before any agent sees a draft, you need to know how often the assistant gets the category right and when it should hand over to a human.

The Bitext messages come with category and intent labels, and placeholders such as {{Order Number}} in place of personal details, which is how you should treat customer data too.

What to build

  1. Sample 100 messages stratified by category as a held-out test set, and 50 more as a development set.

  2. Write a prompt with definitions for the 11 categories, rules for when a human is needed (legal threats, payment disputes, anything not about the store) and examples for confusions you find on the development set.

  3. Call the model with structured output (a JSON schema or typed model) and validate every response.

  4. Score category and intent accuracy on the test set, once. Grade 20 reply drafts yourself with a three-point rubric.

  5. Add ten off-topic or adversarial messages of your own and check that they are handed to a human.

Deliverables

  • Repository with prompts/, assistant.py, eval/, results.md and README.md

How it is graded

Reviewers rerun the evaluation from saved outputs and read your failure cases. Getting the process right counts more than the score.

Stretch

Compare two models on the same set and recommend one on accuracy, cost and latency.

Deliverables

  • A function that returns category, intent, whether a human is needed and a reply draft, as validated structured output
  • A versioned prompt with definitions for each category and at least three hard examples
  • A results table on 100 held-out messages with accuracy by category and a sample of graded replies
  • A short README with cost per 100 messages and the known failure cases

How a reviewer grades it

CriterionWeightWhat good looks like
Structured output is validated, and invalid outputs are handled25%
Prompt is versioned and changes are justified with results25%
Evaluation on held-out messages, including hard and off-topic cases30%
Honest README with cost and limits20%