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
- Bitext customer support dataset (synthetic, 26,872 messages) ↗CDLA-Sharing-1.0
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
Sample 100 messages stratified by category as a held-out test set, and 50 more as a development set.
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.
Call the model with structured output (a JSON schema or typed model) and validate every response.
Score category and intent accuracy on the test set, once. Grade 20 reply drafts yourself with a three-point rubric.
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.mdandREADME.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
| Criterion | Weight | What good looks like |
|---|---|---|
| Structured output is validated, and invalid outputs are handled | 25% | |
| Prompt is versioned and changes are justified with results | 25% | |
| Evaluation on held-out messages, including hard and off-topic cases | 30% | |
| Honest README with cost and limits | 20% |