←Tutte le torri

Raahaao Code: Building with AI

Build apps on top of large language models: prompts, tools, search and safety.

9+ ore di lezioni · 2 progetti · €35

Ti aiuta a prepararti per: AWS Certified AI Practitioner, AIF-C01 (AWS) · Azure AI Fundamentals, AI-901 (Microsoft)

Oppure includila in un piano mensile da €3.46 a settimana (addebitati €15 al mese) →

Serve un account per aprire qualsiasi lezione. Senza account puoi sfogliare le torri e i prezzi.

Paga in

Cosa imparerai, piano per piano

  1. 1

    How LLMs work (Beginner)

    • What a language model is
    • Messages, roles and tokens
    • Prompting basics
  2. 2

    Reliable output (Beginner)

    • Structured output
    • Temperature and determinism
    • Evaluating answers
  3. 3

    Tools and agents (Intermediate)

    • Tool calling
    • Building a small agent loop
    • Memory and conversation state
  4. 4

    Search and RAG (Intermediate)

    • Embeddings and similarity
    • Chunking and retrieval
    • Retrieval-augmented generation
  5. 5

    Shipping safely (Job-ready)

    • Prompt injection and safety
    • Hallucinations and guardrails
    • Cost, latency and caching
    • From prototype to product

I due progetti sul tetto

Bookshop assistant

Build a bookshop assistant that answers questions from a small catalogue instead of from the model’s memory. You will retrieve the most relevant catalogue entry with embeddings, check stock and price with real tools, and return a validated JSON reply that cites the books it used.

  • load_catalogue(path) reads catalogue.csv into a list of dicts with keys id, title, author, isbn and description; retrieve(question, catalogue) returns the single catalogue entry most similar to the question.
  • answer(question, catalogue) returns a dict with an "answer" string and a "sources" list of book ids.
  • A question about a catalogue book is answered from the retrieved entry and cites that book’s id in sources.
  • When the best entry shares no searchable term with the question, answer returns exactly "I don't know." with an empty sources list.
  • A stock question runs check_stock through the chat loop: the model asks for the tool, the result is sent back as a tool message, and the stock figure appears in the answer.
  • A price question runs price through the chat loop the same way, and the price appears in the answer.
  • check_stock(isbn) returns "<n> copies in stock" or "not in stock" for an unknown ISBN; price(isbn) returns "<p> pounds" or "price unknown".
  • parse_reply(text) parses the model reply as JSON and returns it only when it is an object with a string "answer"; any other reply raises ValueError, and answer handles that without crashing.

Safe support agent

Build a support agent that answers order questions by running an allow-listed tool loop, refuses injected instructions hidden in customer messages, and never refunds above a limit without escalating. Each step is logged without emails or card numbers, and an evaluation function scores the agent on a fixed test set.

  • lookup_order(order_id) reads orders.csv and returns a one-line order summary, or "Order not found." for an unknown id.
  • refund_request(order_id, amount) returns "Refunded <amount> pounds for order <order_id>." for an amount up to REFUND_LIMIT, and raises RefundError for anything above the limit.
  • escalate(order_id, reason) returns "Escalated order <order_id> to a human: <reason>".
  • run_tool(name, arguments) runs only the tools in the allow-list, returns "Blocked: <name> is not an allowed tool." for any other name, and turns a refund over the limit into an escalation instead of a refund.
  • run_agent(message, max_steps=5) runs the tool loop until the model returns text or the step cap is reached, and returns a dict with "answer", "steps" and "log"; a tool result must reach the answer.
  • run_agent marks the customer message as untrusted data so an "ignore previous instructions" line inside it is never obeyed.
  • Every log line is redacted: emails become "[email]" and card numbers become "[card]" before they are written.
  • evaluate(cases) runs the agent on each (message, expected) pair and returns the fraction of cases whose expected text is in the answer.

Domande

Devo installare qualcosa?

No. Tutto funziona nel tuo browser. Per i progetti puoi anche lavorare sul tuo computer e caricare i tuoi file.

Posso saltare quello che conosco già?

Sì. Una volta che possiedi una torre, ogni piano ha un test di salto: segna 8 su 10 e quel piano si apre.

Qual è la politica di restituzione?

Rimborsi entro 5 giorni dall'acquisto. Dopo 5 giorni, nessun rimborso o reso.

Mantengo l'accesso?

Sì. Una torre che acquisti è tua, senza abbonamento.

Refund policy