The travel assistant of Nordlicht Reisen GmbH (R-02) receives messages from the booking portal: Customers write in German, English and Danish (R-01). Before the assistant answers, every message is to be classified: language, summary, topic, sentiment, tone, places named, and whether it contains personal data or harmful content. Three building blocks come into question for this: a language model, Language in Foundry Tools and Content Safety.

Prior knowledge. Structured answers (GetResponseAsync<T>, strict schema, enumerations, checking in code, "not assessed" on broken JSON) are taught by "AI track, lesson T2.3". Putting foreign text in only as fenced data: "AI track, lesson T6.2"; hard rules in code: "AI track, lesson T6.4". The choice between model and Foundry Tool is justified by lesson 1.1 (decision 2). None of that is repeated here, only applied.

New in this lesson. The assistant has an input for messages whose result is a type MailAnalyse. Messages about refunds, legal matters or a blocked account always go to a person under R-02; a rule in the code decides that, never the model. All messages in the exercises are made up (R-12).

Paper, account, costs. Paper: decision and exercises. An Azure account is needed only for the optional run of the services. Cost drivers: tokens per million for the model, text units for Language and Content Safety (pricing pages).

The requirement

All numbers are assumptions of the task.

No. Requirement Type Measure Weight Source
4.1-01 Every message delivers language, summary, topic, sentiment, tone, places as fixed fields. F 100% of the 40 test cases schema-valid or "not assessed" Must R-10
4.1-02 Refund, legal matters, blocked account and every unreadable analysis go to a person. R 0 exceptions in the test set Must R-02
4.1-03 Sentiment, tone and topic agree with the editorial team's assignment. Q at least 90% of the 40 cases Should R-10
4.1-04 Personal data are not in the log. R 0 hits of the PII detection in the log Must R-12
4.1-05 Harmful content is detected with category and severity. F all four categories in the result Should Operations
4.1-06 No new build depends on a feature that Learn lists as being retired. Q 0 such calls Should Operations