Trovi libri adatti al livello di lettura dello studente
Un livello di lettura è davvero utile quando trasforma un lungo elenco di libri in un insieme gestibile di scelte.
Esegui gratis nel browser
Questo strumento confronta il livello equivalente alla classe dello studente con quello assegnato a ogni libro e restituisce solo i titoli compresi in un intervallo inclusivo. Lei può usare il margine predefinito di una classe sotto e sopra oppure regolare separatamente i due lati per offrire maggiore sostegno o difficoltà. L’ordine originale rimane invariato, così il risultato si inserisce facilmente in una lezione, una lista bibliotecaria o un colloquio sulla lettura.
Crei un elenco utile di candidati
Parta dal livello di lettura attuale dello studente, espresso come equivalente alla classe, e da un elenco di libri valutati con lo stesso sistema o con fonti ragionevolmente confrontabili. Ogni voce deve contenere un titolo e un livello numerico. La coerenza è importante, perché due editori possono stimare diversamente la difficoltà dello stesso testo pur mostrando entrambi un numero simile a una classe. Lo strumento non inventa, deduce o cerca i livelli: valuta i dati forniti da Lei. Per impostazione predefinita accetta libri da una classe sotto a una sopra il livello dello studente, estremi inclusi. Conserva inoltre l’ordine di inserimento, consentendoLe di organizzare prima i titoli per argomento, disponibilità o preferenza. Un libro esterno all’intervallo viene semplicemente omesso. Un risultato vuoto è valido e segnala che servono altri titoli o un margine più ampio, non che il calcolo sia fallito.
Regoli separatamente sostegno e difficoltà
Le distanze inferiore e superiore si modificano in modo indipendente con range_below e range_above. Questa asimmetria è utile perché una selezione adatta non deve essere sempre centrata su un unico punteggio. Per la lettura autonoma, Lei può lasciare più spazio sotto il livello misurato e mantenere vicino il limite superiore. Per la lettura guidata con un adulto, può ampliare il margine superiore. Il valore zero fa coincidere quel lato con il livello dello studente; il limite inferiore non scende mai sotto zero. Consideri questi controlli come un aiuto alla selezione, non come una diagnosi. I livelli equivalenti alla classe riassumono alcuni aspetti della difficoltà, ma non rappresentano conoscenze pregresse, motivazione, decodifica, esperienza linguistica o interessi. Dopo il filtro, valuti contenuto, scopo, formato e sostegno disponibile. L’intervallo migliore produce scelte proficue per una specifica attività e lascia spazio al giudizio professionale e alla voce dello studente.
Interpreti e riutilizzi il risultato
La risposta riporta il livello dello studente, i valori minimo e massimo applicati, il numero di corrispondenze e i libri selezionati. La decisione è quindi trasparente: ogni titolo restituito ha un livello fornito maggiore o uguale al minimo e minore o uguale al massimo. L’algoritmo è deterministico, perciò lo stesso input genera sempre lo stesso output. Non consulta cataloghi esterni e non invia l’elenco a servizi di arricchimento. È quindi adatto a strumenti scolastici, procedure bibliotecarie e flussi di dati ripetibili. Conservi l’intervallo insieme all’elenco quando occorre documentare la scelta, soprattutto se attività diverse impiegano tolleranze differenti. Se la fonte cambia il livello di un libro, aggiorni la voce e ripeta il filtro. Un titolo assente non esprime un giudizio sul valore letterario o sulle capacità dello studente: il suo numero è soltanto fuori intervallo. La scelta finale deve considerare anche accessibilità, età, obiettivi didattici e interessi.
Casi d'uso
Prepari uno scaffale per la lettura autonoma
Filtri i libri della classe in una fascia favorevole prima che lo studente scelga argomenti e formati.
Pianifichi una lettura guidata
Ampli il limite superiore quando insegnamento e dialogo sostengono libri un po’ più impegnativi.
Esamini i consigli della biblioteca
Riduca un lungo elenco a candidati compatibili, mantenendo l’ordine scelto dal curatore.
Domande frequenti
Quale intervallo viene usato per impostazione predefinita?
Sono inclusi i libri da una classe sotto a una sopra il livello equivalente dello studente, compresi entrambi gli estremi.
I margini inferiore e superiore possono essere diversi?
Sì. Imposti range_below e range_above separatamente in base al sostegno, allo scopo e alla difficoltà dell’attività.
Lo strumento cerca i livelli dei libri?
No. Filtra soltanto titoli e livelli forniti nella richiesta, senza interrogare banche dati esterne.
Che cosa accade se nessun libro rientra nell’intervallo?
Il risultato contiene matched_books vuoto e matched_count pari a zero. Lei può regolare l’intervallo o fornire un altro elenco.
La corrispondenza di livello è una raccomandazione completa?
No. È un filtro numerico. Vanno considerati anche interessi, contenuto, accessibilità, esperienza linguistica, obiettivo didattico e sostegno.
Quanto costa una richiesta API?
Ogni richiesta API costa $0.002. La versione nel browser applica la stessa logica deterministica senza consultare la rete.
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/edu/reading-level-book-match \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"student_level":4.5,"books":[{"title":"The Wild Robot","reading_level":4.2},{"title":"Charlotte'\''s Web","reading_level":4.4},{"title":"The Giver","reading_level":6.8}]}'const res = await fetch("https://api.kit.forhosting.com/edu/reading-level-book-match", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"student_level": 4.5,
"books": [
{
"title": "The Wild Robot",
"reading_level": 4.2
},
{
"title": "Charlotte's Web",
"reading_level": 4.4
},
{
"title": "The Giver",
"reading_level": 6.8
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/edu/reading-level-book-match",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"student_level": 4.5,
"books": [
{
"title": "The Wild Robot",
"reading_level": 4.2
},
{
"title": "Charlotte's Web",
"reading_level": 4.4
},
{
"title": "The Giver",
"reading_level": 6.8
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/edu/reading-level-book-match", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"student_level":4.5,"books":[{"title":"The Wild Robot","reading_level":4.2},{"title":"Charlotte\'s Web","reading_level":4.4},{"title":"The Giver","reading_level":6.8}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"student_level":4.5,"books":[{"title":"The Wild Robot","reading_level":4.2},{"title":"Charlotte's Web","reading_level":4.4},{"title":"The Giver","reading_level":6.8}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/edu/reading-level-book-match", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"student_level": 4.5,
"books": [
{
"title": "The Wild Robot",
"reading_level": 4.2
},
{
"title": "Charlotte's Web",
"reading_level": 4.4
},
{
"title": "The Giver",
"reading_level": 6.8
}
]
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "edu.reading_level_book_match",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |