[{"data":1,"prerenderedAt":1840},["ShallowReactive",2],{"blog-article-/it-it/blog/foxycape-pdf-obsidian":3,"blog-list-it-it":270},{"id":4,"title":5,"body":6,"config":254,"date":255,"description":256,"draft":257,"extension":258,"image":254,"meta":259,"navigation":260,"path":261,"seo":262,"stem":263,"tags":264,"toolbar":254,"translationKey":268,"updated":255,"__hash__":269},"blog/it-it/blog/foxycape-pdf-obsidian.md","Foxycape PDF — Un lettore PDF per Obsidian che resta collegato alle tue note",{"type":7,"value":8,"toc":237},"minimark",[9,17,23,26,31,34,53,56,60,65,68,74,78,81,86,90,93,121,126,130,133,138,143,147,159,164,168,171,176,180,183,188,192,199,204,208,211,216,221,225,232],[10,11,12],"p",{},[13,14],"img",{"alt":15,"src":16},"Foxycape PDF","https://cdn.linghuxiong.com/resources/obsidian/introduce/logo-64x64.png",[18,19,20],"blockquote",{},[10,21,22],{},"Un lettore PDF per Obsidian che resta collegato alle tue note — evidenziazioni, citazioni e deep link che ti riportano alla fonte.",[24,25],"hr",{},[27,28,30],"h2",{"id":29},"perché","Perché",[10,32,33],{},"Leggere PDF in Obsidian spesso interrompe il ciclo di presa di appunti:",[35,36,37,41,44,47,50],"ul",{},[38,39,40],"li",{},"Le evidenziazioni restano nel PDF; le note del vault stanno altrove.",[38,42,43],{},"Catturare una figura di solito significa uno screenshot sfocato.",[38,45,46],{},"Citazioni e immagini incollate raramente puntano alla pagina o regione esatta.",[38,48,49],{},"Le pagine PDF chiare risultano aggressive in un tema vault scuro.",[38,51,52],{},"Cambiare lettore può rompere i link pagina/selezione che usi già.",[10,54,55],{},"Foxycape PDF colma queste lacune senza chiederti di uscire da Obsidian.",[27,57,59],{"id":58},"funzionalità","Funzionalità",[61,62,64],"h3",{"id":63},"evidenziazione-sincronizzazione-con-le-note","Evidenziazione → sincronizzazione con le note",[10,66,67],{},"Invece di lasciare le evidenziazioni isolate nel PDF, ogni nuova evidenziazione può creare o aggiornare una nota Markdown con lo stesso nome, aggiungere l’estratto con un link di ritorno e, opzionalmente, aprire quella nota in un pannello diviso. Disattivabile in qualsiasi momento nelle impostazioni.",[10,69,70],{},[13,71],{"alt":72,"src":73},"","https://cdn.linghuxiong.com/resources/obsidian/introduce/highlight-notes.gif",[61,75,77],{"id":76},"estrarre-immagini-incorporate","Estrarre immagini incorporate",[10,79,80],{},"Niente screenshot sfocati. Passa il mouse su un’immagine incorporata (o usa il controllo touch su mobile) per anteprima, copia o download dell’asset originale.",[10,82,83],{},[13,84],{"alt":72,"src":85},"https://cdn.linghuxiong.com/resources/obsidian/introduce/embed-images.gif",[61,87,89],{"id":88},"citare-testo-e-immagini-poi-tornare-indietro","Citare testo e immagini, poi tornare indietro",[10,91,92],{},"Le citazioni restano collegate alla fonte, così puoi tornare al PDF dalla nota in seguito:",[35,94,95,110,113],{},[38,96,97,98,102,103,102,106,109],{},"Copiare una citazione testuale come Markdown con un deep link (",[99,100,101],"code",{},"#page="," / ",[99,104,105],{},"#selection=",[99,107,108],{},"#markId=",").",[38,111,112],{},"Copiare una citazione immagine; incollare in Markdown per salvare un PNG accanto al PDF e inserire un link cliccabile.",[38,114,115,116,120],{},"Clic destro sull’immagine nella nota → ",[117,118,119],"strong",{},"Apri in Foxycape"," per tornare alla pagina ed evidenziare la regione originale.",[10,122,123],{},[13,124],{"alt":72,"src":125},"https://cdn.linghuxiong.com/resources/obsidian/introduce/cite-and-back.gif",[61,127,129],{"id":128},"pagine-pdf-adattate-al-tema","Pagine PDF adattate al tema",[10,131,132],{},"Le pagine PDF chiare possono scontrarsi con un vault scuro. Rimappa opzionalmente i colori vettoriali in scala di grigi su primo piano/sfondo del tuo tema (BETA) — per tutti i temi, solo scuro o solo chiaro. Le illustrazioni a colori restano invariate.",[10,134,135],{},[13,136],{"alt":72,"src":137},"https://cdn.linghuxiong.com/resources/obsidian/introduce/theme-adapt.gif",[10,139,140],{},[13,141],{"alt":72,"src":142},"https://cdn.linghuxiong.com/resources/obsidian/introduce/theme-adapt-dark.gif",[61,144,146],{"id":145},"compatibile-con-i-link-pdf-integrati-di-obsidian","Compatibile con i link PDF integrati di Obsidian",[10,148,149,150,152,153,155,156,158],{},"Cambiare lettore non dovrebbe rompere i link che hai già. Foxycape comprende i link in stile Obsidian ",[99,151,101],{}," e ",[99,154,105],{},", può diventare il visualizzatore PDF predefinito, riutilizza una scheda aperta quando possibile e aggiunge ",[99,157,108],{}," per salti precisi alle evidenziazioni.",[10,160,161],{},[13,162],{"alt":72,"src":163},"https://cdn.linghuxiong.com/resources/obsidian/introduce/compat-links.gif",[61,165,167],{"id":166},"evidenziazioni-ed-elenco-evidenziazioni","Evidenziazioni ed elenco evidenziazioni",[10,169,170],{},"Evidenziatore, sottolineatura ondulata e sottolineatura dritta con colori personalizzati. Sfoglia le evidenziazioni in un elenco — filtra, ordina, salta o elimina.",[10,172,173],{},[13,174],{"alt":72,"src":175},"https://cdn.linghuxiong.com/resources/obsidian/introduce/annotations.gif",[61,177,179],{"id":178},"copia-intelligente-rimuovere-le-interruzioni-di-riga-soft","Copia intelligente — rimuovere le interruzioni di riga soft",[10,181,182],{},"Le righe PDF spesso inseriscono interruzioni dure a metà frase. Seleziona e copia come al solito: Foxycape rimuove quelle interruzioni soft così l’incollaggio si legge come prosa continua, mantenendo le vere interruzioni di paragrafo.",[10,184,185],{},[13,186],{"alt":72,"src":187},"https://cdn.linghuxiong.com/resources/obsidian/introduce/smart-copy.gif",[61,189,191],{"id":190},"navigazione-e-ricerca","Navigazione e ricerca",[10,193,194,195,198],{},"Sommario (indice), miniature di pagina, selettore pagina e ricerca nel documento (",[99,196,197],{},"Mod+F",") con opzioni maiuscole/minuscole / diacritici / parola intera. La ricerca usa lo strato testo del PDF (niente OCR).",[10,200,201],{},[13,202],{"alt":72,"src":203},"https://cdn.linghuxiong.com/resources/obsidian/introduce/navigate-search.gif",[61,205,207],{"id":206},"layout-di-lettura","Layout di lettura",[10,209,210],{},"Zoom (auto / larghezza pagina / percentuali), scorrimento verticale o orizzontale, layout singolo / doppio / libro, rotazione pagina, PDF protetti da password. Funziona su desktop e mobile.",[10,212,213],{},[13,214],{"alt":72,"src":215},"https://cdn.linghuxiong.com/resources/obsidian/introduce/layout.gif",[10,217,218],{},[13,219],{"alt":72,"src":220},"https://cdn.linghuxiong.com/resources/obsidian/introduce/layout-1.gif",[61,222,224],{"id":223},"impostare-come-lettore-pdf-predefinito","Impostare come lettore PDF predefinito",[10,226,227,228,231],{},"Per l’esperienza più fluida — deep link, evidenziazioni e pagine adattate al tema — attiva ",[117,229,230],{},"Usa come visualizzatore PDF predefinito"," nelle impostazioni Foxycape così Obsidian apre i PDF con Foxycape per impostazione predefinita.",[10,233,234],{},[13,235],{"alt":72,"src":236},"https://cdn.linghuxiong.com/resources/obsidian/introduce/set-default.gif",{"title":72,"searchDepth":238,"depth":238,"links":239},2,[240,241],{"id":29,"depth":238,"text":30},{"id":58,"depth":238,"text":59,"children":242},[243,245,246,247,248,249,250,251,252,253],{"id":63,"depth":244,"text":64},3,{"id":76,"depth":244,"text":77},{"id":88,"depth":244,"text":89},{"id":128,"depth":244,"text":129},{"id":145,"depth":244,"text":146},{"id":166,"depth":244,"text":167},{"id":178,"depth":244,"text":179},{"id":190,"depth":244,"text":191},{"id":206,"depth":244,"text":207},{"id":223,"depth":244,"text":224},null,"2026-08-11","Evidenziature, citazioni e deep link che ti riportano alla fonte — Foxycape PDF mantiene lettura e presa di appunti in Obsidian in un unico flusso.",false,"md",{},true,"/it-it/blog/foxycape-pdf-obsidian",{"title":5,"description":256},"it-it/blog/foxycape-pdf-obsidian",[265,266,267],"Obsidian","PDF","Foxycape","foxycape-pdf-obsidian","EbZzM7Ma0dGsa4663sFYaTQJlFUyggi1L2IZisslD3I",[271,436],{"id":4,"title":5,"body":272,"config":254,"date":255,"description":256,"draft":257,"extension":258,"image":254,"meta":433,"navigation":260,"path":261,"seo":434,"stem":263,"tags":435,"toolbar":254,"translationKey":268,"updated":255,"__hash__":269},{"type":7,"value":273,"toc":418},[274,278,282,284,286,288,300,302,304,306,308,312,314,316,320,322,324,340,344,346,348,352,356,358,366,370,372,374,378,380,382,386,388,392,396,398,400,404,408,410,414],[10,275,276],{},[13,277],{"alt":15,"src":16},[18,279,280],{},[10,281,22],{},[24,283],{},[27,285,30],{"id":29},[10,287,33],{},[35,289,290,292,294,296,298],{},[38,291,40],{},[38,293,43],{},[38,295,46],{},[38,297,49],{},[38,299,52],{},[10,301,55],{},[27,303,59],{"id":58},[61,305,64],{"id":63},[10,307,67],{},[10,309,310],{},[13,311],{"alt":72,"src":73},[61,313,77],{"id":76},[10,315,80],{},[10,317,318],{},[13,319],{"alt":72,"src":85},[61,321,89],{"id":88},[10,323,92],{},[35,325,326,334,336],{},[38,327,97,328,102,330,102,332,109],{},[99,329,101],{},[99,331,105],{},[99,333,108],{},[38,335,112],{},[38,337,115,338,120],{},[117,339,119],{},[10,341,342],{},[13,343],{"alt":72,"src":125},[61,345,129],{"id":128},[10,347,132],{},[10,349,350],{},[13,351],{"alt":72,"src":137},[10,353,354],{},[13,355],{"alt":72,"src":142},[61,357,146],{"id":145},[10,359,149,360,152,362,155,364,158],{},[99,361,101],{},[99,363,105],{},[99,365,108],{},[10,367,368],{},[13,369],{"alt":72,"src":163},[61,371,167],{"id":166},[10,373,170],{},[10,375,376],{},[13,377],{"alt":72,"src":175},[61,379,179],{"id":178},[10,381,182],{},[10,383,384],{},[13,385],{"alt":72,"src":187},[61,387,191],{"id":190},[10,389,194,390,198],{},[99,391,197],{},[10,393,394],{},[13,395],{"alt":72,"src":203},[61,397,207],{"id":206},[10,399,210],{},[10,401,402],{},[13,403],{"alt":72,"src":215},[10,405,406],{},[13,407],{"alt":72,"src":220},[61,409,224],{"id":223},[10,411,227,412,231],{},[117,413,230],{},[10,415,416],{},[13,417],{"alt":72,"src":236},{"title":72,"searchDepth":238,"depth":238,"links":419},[420,421],{"id":29,"depth":238,"text":30},{"id":58,"depth":238,"text":59,"children":422},[423,424,425,426,427,428,429,430,431,432],{"id":63,"depth":244,"text":64},{"id":76,"depth":244,"text":77},{"id":88,"depth":244,"text":89},{"id":128,"depth":244,"text":129},{"id":145,"depth":244,"text":146},{"id":166,"depth":244,"text":167},{"id":178,"depth":244,"text":179},{"id":190,"depth":244,"text":191},{"id":206,"depth":244,"text":207},{"id":223,"depth":244,"text":224},{},{"title":5,"description":256},[265,266,267],{"id":437,"title":438,"body":439,"config":254,"date":1828,"description":1829,"draft":257,"extension":258,"image":254,"meta":1830,"navigation":260,"path":1831,"seo":1832,"stem":1833,"tags":1834,"toolbar":254,"translationKey":1838,"updated":1828,"__hash__":1839},"blog/it-it/blog/zero-hallucination-qa.md","Come ho implementato Q&A a zero allucinazioni nel nostro reader",{"type":7,"value":440,"toc":1794},[441,447,460,462,466,473,478,482,500,505,516,521,555,558,562,579,586,590,605,610,647,654,658,671,696,701,818,836,842,844,848,855,870,877,897,903,905,909,912,918,920,924,947,956,1016,1019,1030,1039,1046,1048,1052,1063,1069,1076,1080,1087,1095,1102,1106,1116,1159,1170,1176,1178,1182,1197,1205,1211,1214,1249,1259,1267,1273,1280,1284,1292,1298,1309,1311,1315,1321,1325,1332,1336,1359,1366,1368,1372,1378,1436,1442,1444,1448,1455,1473,1477,1497,1508,1510,1514,1525,1528,1551,1562,1568,1570,1574,1589,1600,1602,1606,1627,1638,1640,1644,1663,1669,1671,1675,1762,1769,1780],[10,442,443],{},[13,444],{"alt":445,"src":446},"Copertina: Q&A a zero allucinazioni","https://cdn.linghuxiong.com/resources/snapshots/ai-chat-cover.png",[18,448,449],{},[10,450,451,452,455,456,459],{},"Questo articolo descrive l'implementazione tecnica del ",[117,453,454],{},"Q&A a zero allucinazioni"," nel nostro reader IA: le risposte si basano rigorosamente sul testo del libro aperto e le affermazioni chiave possono essere ",[117,457,458],{},"ricondotte con un clic"," al passaggio esatto. Se sviluppi lettura IA, Q&A documentale o app in stile RAG, speriamo che tre iterazioni e l'architettura finale possano essere utili.",[24,461],{},[27,463,465],{"id":464},"i-evoluzione-in-tre-fasi","I. Evoluzione in tre fasi",[10,467,468,469,472],{},"Il Q&A a zero allucinazioni non è stato progettato perfetto dal primo giorno. È evoluto sotto la tensione tra ",[117,470,471],{},"costo, latenza e accuratezza",". Di seguito le tre fasi in ordine cronologico—contesto per capire perché l'architettura attuale ha questa forma.",[474,475],"mermaid",{":config":476,"code":477},"config","flowchart%20LR%0A%20%20%20%20P1%5BFase%201%3A%20Testo%20integrale%5D%20--%3E%20P2%5BFase%202%3A%20LLM%20frasi%20chiave%5D%0A%20%20%20%20P2%20--%3E%20P3%5BFase%203%3A%20Indice%20segmenti%20%2B%20Tool%5D%0A%20%20%20%20P1%20-.-%3E%7CLento%2C%20costoso%2C%20impreciso%20su%20libri%20lunghi%7C%20X1%5BAbbandonato%5D%0A%20%20%20%20P2%20-.-%3E%7CPerdita%20di%20dettaglio%2C%20ancora%20lento%7C%20X2%5BAbbandonato%5D%0A%20%20%20%20P3%20--%3E%7CAttuale%7C%20OK%5BZero%20allucinazioni%20%2B%20tracciabile%5D",[61,479,481],{"id":480},"fase-1-inserire-tutto-il-libro-nel-context-la-più-semplicee-la-prima-a-cedere","Fase 1: Inserire tutto il libro nel context (la più semplice—e la prima a cedere)",[10,483,484,487,488,491,492,495,496,499],{},[117,485,486],{},"Approccio:"," Quando l'utente apre un libro e pone una domanda, mettere ",[117,489,490],{},"tutto il corpo di testo estratto"," nel system prompt o nel messaggio utente e lasciare rispondere il modello di chat. Se il libro supera circa ",[117,493,494],{},"400.000 caratteri",", ",[117,497,498],{},"troncamento rigido","—resta solo l'inizio; i capitoli successivi sono invisibili al modello.",[10,501,502],{},[117,503,504],{},"Vantaggi:",[35,506,507,510,513],{},[38,508,509],{},"Costo di implementazione molto basso, quasi nessun pre-processing;",[38,511,512],{},"Funziona ragionevolmente su libri brevi e documenti semplici—il modello ha davvero «visto tutto il libro»;",[38,514,515],{},"UX semplice: chiedi e ottieni risposta, senza stato «attendere l'analisi».",[10,517,518],{},[117,519,520],{},"Svantaggi (presto inaccettabili):",[35,522,523,529,535,545],{},[38,524,525,528],{},[117,526,527],{},"Risposte lente:"," Ogni domanda reinvia un payload enorme; time-to-first-token e latenza totale crescono con la lunghezza del libro;",[38,530,531,534],{},[117,532,533],{},"Costo token elevato:"," Si paga l'input dell'intero libro a ogni domanda;",[38,536,537,540,541,544],{},[117,538,539],{},"Libri lunghi fortemente distorti:"," Oltre 400k caratteri, seconda metà, appendici e conclusioni praticamente non esistono—e l'UI ",[117,542,543],{},"spesso non segnala chiaramente"," il troncamento;",[38,546,547,550,551,554],{},[117,548,549],{},"Granularità di ricerca zero:"," Il modello deve «trovare un ago nel pagliaio» su centinaia di migliaia di caratteri—facile perdere dettagli e produrre ",[117,552,553],{},"riassunti plausibili senza fondamento","—esattamente ciò che le app di lettura devono evitare.",[10,556,557],{},"La fase 1 va bene per un MVP, non per una soluzione di prodotto.",[61,559,561],{"id":560},"fase-2-un-llm-leggero-estrae-frasi-chiave-comprimere-il-contexttroppo-aggressivamente","Fase 2: Un LLM leggero estrae frasi chiave (comprimere il context—troppo aggressivamente)",[10,563,564,566,567,570,571,574,575,578],{},[117,565,486],{}," Prima del Q&A (o al primo accesso), far girare un ",[117,568,569],{},"modello più economico"," sul corpo: suddivisione per capitolo spine (o chunk del libro), estrazione di ",[117,572,573],{},"frasi chiave",", conservazione di tag di posizione come ",[99,576,577],{},"[fFile-inizio-fine]",", poi concatenazione in un context più corto per il Q&A successivo.",[10,580,581,582,585],{},"Pipeline tipica: ",[117,583,584],{},"Extract → Cache → Chat",". Estrarre una volta (offline o on demand), salvare un «pacchetto di frasi chiave», riutilizzarlo a ogni domanda—come molti prototipi document Q&A: comprimere prima, rispondere dopo.",[10,587,588],{},[117,589,504],{},[35,591,592,599,602],{},[38,593,594,595,598],{},"Ogni domanda invia ",[117,596,597],{},"molto meno testo","; il consumo di token per richiesta cala rispetto alla fase 1;",[38,600,601],{},"Il pre-processing può essere in cache; niente ri-estrazione per domanda sullo stesso libro;",[38,603,604],{},"I tag di posizione gettano le basi per le citazioni.",[10,606,607],{},[117,608,609],{},"Svantaggi (ancora insufficienti su libri lunghi):",[35,611,612,618,628,637],{},[38,613,614,617],{},[117,615,616],{},"Forte perdita di dettaglio:"," Le «frasi chiave» sono scelte dal modello; qualificatori, controesempi e catene argomentative spesso spariscono—risposte «corrette ma parziali»;",[38,619,620,623,624,627],{},[117,621,622],{},"Context ancora grande su opere lunghe:"," Anche i pacchetti di frasi chiave sono consistenti—latenza e costo ",[117,625,626],{},"si attenuano, non si risolvono",";",[38,629,630,633,634,627],{},[117,631,632],{},"Doppio errore LLM:"," L'estrazione può omettere; il Q&A può leggere male gli estratti—gli errori ",[117,635,636],{},"si accumulano",[38,638,639,642,643,646],{},[117,640,641],{},"Context statico:"," Che la domanda riguardi un capitolo o la struttura globale, il modello riceve sempre ",[117,644,645],{},"lo stesso blob pre-estratto","—nessun restringimento dinamico per domanda.",[10,648,649,650,653],{},"La lezione: il problema non è «se comprimiamo», ma ",[117,651,652],{},"«se la compressione è on demand e se possiamo tornare al testo sorgente»",".",[61,655,657],{"id":656},"fase-3-indice-segmenti-tool-on-demand-restituzione-testo-sorgente-attuale","Fase 3: Indice segmenti + Tool on demand + restituzione testo sorgente (attuale)",[10,659,660,662,663,670],{},[117,661,486],{}," Ispirato a ",[664,665,669],"a",{"href":666,"rel":667},"https://github.com/VectifyAI/PageIndex",[668],"nofollow","PageIndex",". Rispetto alla fase 2, tre cambiamenti centrali:",[672,673,674,680,690],"ol",{},[38,675,676,679],{},[117,677,678],{},"Il pre-processing produce un indice strutturato"," (riassunti a livello TOC + span di caratteri esatti), non estratti usati direttamente come context Q&A;",[38,681,682,685,686,689],{},[117,683,684],{},"Ogni domanda usa Tool Calling per cercare on demand",", poi ",[117,687,688],{},"recupera testo sorgente con tag di posizione"," per rispondere;",[38,691,692,695],{},[117,693,694],{},"System prompt + frontend"," impongono il formato di citazione e supportano clic → salto → evidenziazione nel reader.",[10,697,698],{},[117,699,700],{},"Confronto delle tre fasi:",[702,703,704,723],"table",{},[705,706,707],"thead",{},[708,709,710,714,717,720],"tr",{},[711,712,713],"th",{},"Dimensione",[711,715,716],{},"Fase 1 (testo integrale)",[711,718,719],{},"Fase 2 (frasi chiave)",[711,721,722],{},"Fase 3 (attuale)",[724,725,726,745,759,773,787,804],"tbody",{},[708,727,728,732,735,738],{},[729,730,731],"td",{},"Context per domanda",[729,733,734],{},"Libro intero (o prima metà troncata)",[729,736,737],{},"Frasi chiave pre-estratte",[729,739,740,741,744],{},"Solo frammenti di ",[117,742,743],{},"sorgente"," pertinenti",[708,746,747,750,753,756],{},[729,748,749],{},"Accuratezza su libri lunghi",[729,751,752],{},"Collasso oltre ~400k caratteri",[729,754,755],{},"Dipende dall'estrazione; perde dettaglio",[729,757,758],{},"Ricerca per TOC/span; niente troncamento rigido dell'intero libro",[708,760,761,764,767,770],{},[729,762,763],{},"Velocità di risposta",[729,765,766],{},"Lenta",[729,768,769],{},"Un po' meglio; libri lunghi ancora lenti",[729,771,772],{},"Ricerca + context breve—nettamente più veloce",[708,774,775,778,781,784],{},[729,776,777],{},"Costo token",[729,779,780],{},"Molto alto",[729,782,783],{},"Medio-alto",[729,785,786],{},"Pre-processing ammortizzato + pagamento on demand",[708,788,789,792,795,798],{},[729,790,791],{},"Tracciabilità",[729,793,794],{},"Debole (citazioni difficili)",[729,796,797],{},"Tag presenti ma contenuto filtrato",[729,799,800,801],{},"Note a piè di pagina → ",[117,802,803],{},"span sorgente reali",[708,805,806,809,812,815],{},[729,807,808],{},"Complessità ingegneristica",[729,810,811],{},"Bassa",[729,813,814],{},"Media",[729,816,817],{},"Alta",[10,819,820,823,824,827,828,831,832,835],{},[117,821,822],{},"Perché ci siamo fermati alla fase 3:"," In lettura, zero allucinazioni non significa «mostrare al modello il massimo testo», ma ",[117,825,826],{},"«prima di rispondere, ottenere prove sorgente per la domanda»",". Le fasi 1–2 combattevano la ",[117,829,830],{},"dimensione del context","; la fase 3 spezza la pipeline in ",[117,833,834],{},"indice (pre-processing) → ricerca (Tool) → prova (sorgente) → risposta (generazione vincolata)","—equilibrio tra accuratezza, costo e tracciabilità.",[10,837,838,839,653],{},"Di seguito il dettaglio della ",[117,840,841],{},"fase 3",[24,843],{},[27,845,847],{"id":846},"ii-definizione-del-problema-nel-qa-su-libri-lallucinazione-costa-più-che-in-una-chat-generica","II. Definizione del problema: Nel Q&A su libri, l'allucinazione costa più che in una chat generica",[10,849,850,851,854],{},"Gli utenti perdonano errori occasionali in un chatbot generale. Nel ",[117,852,853],{},"Q&A su libri",", il prezzo è più alto:",[35,856,857,864,867],{},[38,858,859,860,863],{},"Chiedono cosa dice ",[117,861,862],{},"questo libro","—non ciò che vive nella memoria parametrica del modello;",[38,865,866],{},"Un'«opinione del libro» plausibile può indurre in errore note, citazioni e condivisioni;",[38,868,869],{},"Senza fonti, niente verifica—la fiducia è difficile da costruire.",[10,871,872,873,876],{},"«Zero allucinazioni» diventa quindi tre regole ",[117,874,875],{},"applicabili",":",[672,878,879,885,891],{},[38,880,881,884],{},[117,882,883],{},"Le domande sul libro devono interrogare il libro prima:"," Tutto ciò che può riguardare il libro aperto passa per il retrieval (Tool) prima della risposta;",[38,886,887,890],{},[117,888,889],{},"Le risposte devono essere tracciabili:"," Le affermazioni chiave portano tag di posizione che l'UI può parsare e raggiungere;",[38,892,893,896],{},[117,894,895],{},"Dire quando non si trova:"," Se il libro non contiene l'informazione, dirlo—non mascherare conoscenza generale come «ciò che dice il libro».",[10,898,899,900,902],{},"Il resto segue il flusso dati della ",[117,901,841],{}," e l'implementazione di queste regole.",[24,904],{},[27,906,908],{"id":907},"iii-architettura-pre-processing-tool-generazione-vincolata-citazioni-cliccabili","III. Architettura: Pre-processing → Tool → Generazione vincolata → Citazioni cliccabili",[474,910],{":config":476,"code":911},"flowchart%20TB%0A%20%20%20%20subgraph%20prep%20%5BOffline%20%2F%20primo%20pre-processing%5D%0A%20%20%20%20%20%20%20%20A%5BDividere%20libro%20per%20TOC%20o%20lunghezza%5D%20--%3E%20B%5BRiassunti%20segmenti%20LLM%5D%0A%20%20%20%20%20%20%20%20B%20--%3E%20C%5BPersistere%20cache%20Segment%20in%20locale%5D%0A%20%20%20%20end%0A%0A%20%20%20%20subgraph%20ask%20%5BDomanda%20utente%5D%0A%20%20%20%20%20%20%20%20D%5BInput%20utente%5D%20--%3E%20E%7BCache%20Segment%20esistente%3F%7D%0A%20%20%20%20%20%20%20%20E%20--%3E%7CNo%7C%20F%5BEstrarre%20testo%20integrale%20%2F%20proporre%20pre-processing%5D%0A%20%20%20%20%20%20%20%20F%20--%3E%20prep%0A%20%20%20%20%20%20%20%20E%20--%3E%7CS%C3%AC%7C%20G%5BRegistrare%20Tool%20Calling%5D%0A%20%20%20%20end%0A%0A%20%20%20%20subgraph%20retrieve%20%5BRicerca%20Tool%5D%0A%20%20%20%20%20%20%20%20G%20--%3E%20H%7BTipo%20di%20domanda%7D%0A%20%20%20%20%20%20%20%20H%20--%3E%7CPanoramica%20%2F%20recensione%7C%20I%5Bget_full_book_segment_summaries%5D%0A%20%20%20%20%20%20%20%20H%20--%3E%7CFatti%20%2F%20persone%20%2F%20capitolo%7C%20J%5Bget_related_segment_summaries%5D%0A%20%20%20%20%20%20%20%20J%20--%3E%20K%5BLLM%20sceglie%20ID%20segmento%20dal%20catalogo%5D%0A%20%20%20%20%20%20%20%20K%20--%3E%20L%5BRecuperare%20sorgente%20per%20span%20%2B%20tag%20di%20posizione%5D%0A%20%20%20%20%20%20%20%20I%20--%3E%20M%5BConcatenare%20tutti%20i%20riassunti%20segmenti%5D%0A%20%20%20%20end%0A%0A%20%20%20%20subgraph%20answer%20%5BGenerare%20e%20mostrare%5D%0A%20%20%20%20%20%20%20%20L%20--%3E%20N%5BRisultati%20Tool%20al%20modello%5D%0A%20%20%20%20%20%20%20%20M%20--%3E%20N%0A%20%20%20%20%20%20%20%20N%20--%3E%20O%5BRegole%20citazione%20system%20prompt%5D%0A%20%20%20%20%20%20%20%20O%20--%3E%20P%5BRisposta%20in%20streaming%20%2B%20note%20di%20posizione%5D%0A%20%20%20%20%20%20%20%20P%20--%3E%20Q%5BRenderizzare%20note%20cliccabili%5D%0A%20%20%20%20%20%20%20%20Q%20--%3E%20R%5BClic%20%E2%86%92%20anteprima%20%E2%86%92%20salto%20ed%20evidenziazione%5D%0A%20%20%20%20end",[10,913,914,915],{},"Idea centrale: ",[117,916,917],{},"non lasciare il modello «rispondere a memoria»—obbligarlo a «raccogliere prove, rispondere, segnare le fonti».",[24,919],{},[27,921,923],{"id":922},"iv-pre-processing-trasformare-il-libro-in-un-indice-di-segmenti-ricercabile","IV. Pre-processing: Trasformare il libro in un indice di segmenti ricercabile",[10,925,926,927,930,931,934,935,938,939,942,943,946],{},"Se ogni domanda usasse ancora il context ",[117,928,929],{},"fase 1"," dell'intero libro, i libri lunghi esplodono il budget token e la ricerca è troppo grossolana. Fase 3: al primo chat IA su un libro, eseguire in background un ",[117,932,933],{},"job di riassunto segmenti","—suddivisione per ",[117,936,937],{},"TOC"," o ",[117,940,941],{},"lunghezza testo"," in ",[99,944,945],{},"Segment",", riassunto di ciascuno, persistenza in IndexedDB locale.",[10,948,949,950,952,953,876],{},"Ogni ",[99,951,945],{}," contiene riassunto più ",[117,954,955],{},"posizione fisica nel corpo",[702,957,958,968],{},[705,959,960],{},[708,961,962,965],{},[711,963,964],{},"Campo",[711,966,967],{},"Significato",[724,969,970,983,996,1006],{},[708,971,972,980],{},[729,973,974,102,977],{},[99,975,976],{},"startFileIndex",[99,978,979],{},"endFileIndex",[729,981,982],{},"Indice file spine (PDF: un file per pagina)",[708,984,985,993],{},[729,986,987,102,990],{},[99,988,989],{},"startOffset",[99,991,992],{},"endOffset",[729,994,995],{},"Inizio/fine in caratteri",[708,997,998,1003],{},[729,999,1000],{},[99,1001,1002],{},"sequence",[729,1004,1005],{},"Ordine di lettura lineare",[708,1007,1008,1013],{},[729,1009,1010],{},[99,1011,1012],{},"title",[729,1014,1015],{},"Titolo TOC",[10,1017,1018],{},"La suddivisione bilancia precisione e costo: nodo TOC sotto ~20 KB → riassumere solo quel nodo; nodi fratelli fusi in batch (15–20 KB) prima della chiamata LLM; blocchi lunghi non strutturati in intervalli ~30–40k caratteri.",[10,1020,1021,1022,1025,1026,1029],{},"Il system prompt di riassunto richiede di ",[117,1023,1024],{},"conservare tag di posizione inline"," (",[99,1027,1028],{},"[fNumero-Numero-Numero]",") affinché la sorgente recuperata via Tool si allinei agli offset spine. Vincolo centrale:",[1031,1032,1037],"pre",{"className":1033,"code":1035,"language":1036,"meta":72},[1034],"language-text","If summary content relates to a passage, keep the trailing position tag [fNumber-Number-Number] (e.g. [f1-90-109]).\nTags are atomic—do not alter, merge, or omit any character or digit.\n","text",[99,1038,1035],{"__ignoreMap":72},[10,1040,1041,1042,1045],{},"Dopo il pre-processing, il Q&A dipende da un ",[117,1043,1044],{},"indice segmenti strutturato",", non dal context dell'intero libro—prerequisito tecnico dello zero allucinazioni su libri lunghi.",[24,1047],{},[27,1049,1051],{"id":1050},"v-sistema-di-tag-di-posizione-codificare-il-da-dove-nel-testo","V. Sistema di tag di posizione: Codificare il «da dove» nel testo",[10,1053,1054,1055,1058,1059,1062],{},"Zero allucinazioni richiede contenuto dalla sorgente ",[117,1056,1057],{},"e"," ",[117,1060,1061],{},"provenienza"," analizzabile dalla macchina e raggiungibile in UI. Usiamo tag inline:",[1031,1064,1067],{"className":1065,"code":1066,"language":1036},[1034],"[f{fileIndex}-{startChar}-{endChar}]\n",[99,1068,1066],{"__ignoreMap":72},[10,1070,1071,1072,1075],{},"Esempio: ",[99,1073,1074],{},"[f5-123-165]"," = file spine 5 (base 0), caratteri 123–165.",[61,1077,1079],{"id":1078},"_51-come-i-tag-sono-scritti-nel-corpo","5.1 Come i tag sono scritti nel corpo",[10,1081,1082,1083,1086],{},"Lo strato di estrazione aggiunge ",[99,1084,1085],{},"[f{fileIndex}-{start}-{end}]"," a fine segmento:",[1031,1088,1093],{"className":1089,"code":1091,"language":1092,"meta":72},[1090],"language-typescript","const position = `[f${fileIndex}-${absOffset}-${absOffset + segment.length}]`;\nfileLines.push(segment.text.trim() + position);\n","typescript",[99,1094,1091],{"__ignoreMap":72},[10,1096,1097,1098,1101],{},"Riassunti di pre-processing o estratti Tool: le posizioni si allineano agli ",[117,1099,1100],{},"offset caratteri spine","—non numeri di pagina stimati dal modello.",[61,1103,1105],{"id":1104},"_52-vincoli-sulloutput-del-modello","5.2 Vincoli sull'output del modello",[10,1107,1108,1109,1115],{},"Il system prompt include ",[117,1110,1111],{},[1112,1113,1114],"span",{},"Position Citation Rules","—cinque punti essenziali:",[672,1117,1118,1128,1138,1144,1153],{},[38,1119,1120,1123,1124,1127],{},[117,1121,1122],{},"Formato standard:"," Deve usare ",[99,1125,1126],{},"[f_fileIndex-startChar-endChar]","; tutte e tre le parti numeriche obbligatorie;",[38,1129,1130,1133,1134,1137],{},[117,1131,1132],{},"Copiare solo dalle fonti attuali:"," Note ",[117,1135,1136],{},"verbatim"," da messaggi system/user o ritorni Tool di questo turno;",[38,1139,1140,1143],{},[117,1141,1142],{},"Nessuna fabbricazione:"," Non calcolare, modificare o inventare posizioni;",[38,1145,1146,1149,1150,627],{},[117,1147,1148],{},"Preferire omissione:"," Nessun tag valido nel context → rispondere normalmente—",[117,1151,1152],{},"non emettere tag di posizione",[38,1154,1155,1158],{},[117,1156,1157],{},"Inline con le affermazioni:"," Tag dopo la frase pertinente; niente elenchi di citazioni a fine risposta.",[10,1160,1161,1162,1165,1166,1169],{},"L'UI filtra anche tag ",[117,1163,1164],{},"bipartiti"," invalidi occasionali (es. ",[99,1167,1168],{},"[f1-293]",") prima del render.",[10,1171,1172],{},[13,1173],{"alt":1174,"src":1175},"Popup tracciamento citazioni","https://cdn.linghuxiong.com/resources/snapshots/ai-chat.png",[24,1177],{},[27,1179,1181],{"id":1180},"vi-tool-calling-prima-cercare-poi-rispondere","VI. Tool Calling: Prima cercare, poi rispondere",[10,1183,1184,1185,1188,1189,1192,1193,1196],{},"Quando la chat è legata a un libro (",[99,1186,1187],{},"resourceId"," presente, ",[99,1190,1191],{},"chatType === 'chat'","), registriamo due Tool con executor prima di ogni generazione—ciclo ",[117,1194,1195],{},"function calling"," compatibile OpenAI.",[61,1198,1200,1201,1204],{"id":1199},"_61-get_related_segment_summaries-ricerca-mirata-di-segmenti","6.1 ",[99,1202,1203],{},"get_related_segment_summaries"," — Ricerca mirata di segmenti",[10,1206,1207,1208,653],{},"Per: concetti, personaggi, trama, dettagli di capitolo—",[117,1209,1210],{},"intento di ricerca chiaro",[10,1212,1213],{},"Flusso:",[672,1215,1216,1223,1229,1232,1242],{},[38,1217,1218,1219,1222],{},"Il modello riformula la domanda in ",[117,1220,1221],{},"termini probabili nel libro"," («Optimize Search Queries» nel system prompt);",[38,1224,1225,1226,627],{},"Chiamata Tool con ",[99,1227,1228],{},"question",[38,1230,1231],{},"Raggruppare tutti i riassunti segmenti per budget token (~30k token per batch, max 5 batch);",[38,1233,1234,1235,1238,1239,627],{},"Per batch: richiesta LLM separata sceglie ID pertinenti (max 5) da ",[99,1236,1237],{},"{ id, title, summary }",", JSON come ",[99,1240,1241],{},"{\"Thinking\":\"...\",\"answer\":[\"1\",\"3\"]}",[38,1243,1244,1245,1248],{},"Per i segmenti scelti, estrarre ",[117,1246,1247],{},"testo sorgente taggato"," dallo spine—not i riassunti—come risultato Tool.",[10,1250,1251,1254,1255,1258],{},[117,1252,1253],{},"Design chiave: il Tool restituisce sorgente, non riassunti."," Il modello risponde da paragrafi reali con ",[99,1256,1257],{},"[f…]"," inline, evitando la deriva «riassunto → ri-riassunto».",[61,1260,1262,1263,1266],{"id":1261},"_62-get_full_book_segment_summaries-panoramica-dellintero-libro","6.2 ",[99,1264,1265],{},"get_full_book_segment_summaries"," — Panoramica dell'intero libro",[10,1268,1269,1270,653],{},"Per: «riassumi il libro», «recensisci questo libro», «struttura/temi globali»—",[117,1271,1272],{},"vista globale",[10,1274,1275,1276,1279],{},"Concatenare tutti i campi ",[99,1277,1278],{},"summary"," dei segmenti in ordine di lettura—evitare di perdere capitoli chiave solo per rilevanza per chunk.",[61,1281,1283],{"id":1282},"_63-system-prompt-libro-prima-tool-prima","6.3 System prompt: Libro prima, tool prima",[10,1285,1286,1287,876],{},"Con libro legato, si applica ",[117,1288,1289],{},[1112,1290,1291],{},"Core Principles for Reading Assistant",[1031,1293,1296],{"className":1294,"code":1295,"language":1036},[1034],"1. Book First, Tool First\n   - Any question possibly about the book must call tools first;\n   - Answers must rely mainly on retrieval—never invent “book content” without retrieval.\n\n2. General Knowledge as Fallback Only\n   - Only for: casual chat / user explicitly skips the book / tools return nothing;\n   - If the book lacks it, say “not mentioned in this book” before general knowledge.\n\n3. Direct Style\n   - Get to the point—avoid “based on the provided materials…” and similar filler.\n",[99,1297,1295],{"__ignoreMap":72},[10,1299,1300,1301,1304,1305,1308],{},"La generazione esegue il ciclo Tool: ",[99,1302,1303],{},"tool_calls"," → eseguire → append ",[99,1306,1307],{},"role: tool"," → continuare fino al testo finale. Con tools attivi, il canale thinking è spento per evitare conflitti di protocollo.",[24,1310],{},[27,1312,1314],{"id":1313},"vii-tracciabilità-frontend-dalla-nota-allevidenziazione","VII. Tracciabilità frontend: Dalla nota all'evidenziazione",[10,1316,1317,1318,1320],{},"L'output ",[99,1319,1074],{}," del modello non è mostrato grezzo; lo strato di render converte i tag in citazioni cliccabili.",[61,1322,1324],{"id":1323},"_71-render-delle-note","7.1 Render delle note",[10,1326,1327,1328,1331],{},"Normalizzare i tag in link Markdown come ",[99,1329,1330],{},"[1]([f5-123-165])",", mostrare come note numerate; deduplicare la stessa posizione.",[61,1333,1335],{"id":1334},"_72-interazione-al-clic","7.2 Interazione al clic",[672,1337,1338,1347,1353],{},[38,1339,1340,1343,1344,1346],{},[117,1341,1342],{},"Primo clic:"," Parsare ",[99,1345,1257],{}," → fileIndex + offset → estrarre testo spine → anteprima (titolo TOC opzionale);",[38,1348,1349,1352],{},[117,1350,1351],{},"Stessa nota di nuovo:"," Chiudere anteprima;",[38,1354,1355,1358],{},[117,1356,1357],{},"Confermare salto:"," Aprire vista lettura, evidenziare intervallo caratteri.",[10,1360,1361,1362,1365],{},"Dal tag copiato dal modello al testo sorgente visibile all'utente, la catena ",[117,1363,1364],{},"non passa mai da un'altra chiamata LLM","—deterministica e riproducibile.",[24,1367],{},[27,1369,1371],{"id":1370},"viii-casi-limite-e-degradazione-onesta","VIII. Casi limite e degradazione onesta",[10,1373,1374,1375,876],{},"Zero allucinazioni ≠ «c'è sempre una risposta»—è ",[117,1376,1377],{},"nessuna prova, nessuna invenzione",[702,1379,1380,1390],{},[705,1381,1382],{},[708,1383,1384,1387],{},[711,1385,1386],{},"Scenario",[711,1388,1389],{},"Comportamento",[724,1391,1392,1400,1412,1420,1428],{},[708,1393,1394,1397],{},[729,1395,1396],{},"Riassunti segmenti non pronti",[729,1398,1399],{},"Estrarre prima testo integrale e riassumere",[708,1401,1402,1405],{},[729,1403,1404],{},"Tool non trova nulla",[729,1406,1407,1408,1411],{},"Restituire ",[99,1409,1410],{},"(No relevant segment excerpts found…)","; il modello deve dire «non nel libro»",[708,1413,1414,1417],{},[729,1415,1416],{},"Tag bipartiti invalidi dal modello",[729,1418,1419],{},"Filtraggio frontend; niente note rotte",[708,1421,1422,1425],{},[729,1423,1424],{},"Chiacchierata informale",[729,1426,1427],{},"Il system prompt consente conoscenza generale fuori dal libro",[708,1429,1430,1433],{},[729,1431,1432],{},"Esportare chat",[729,1434,1435],{},"Le note possono diventare deep link del reader per condivisione/archivio",[10,1437,1438],{},[13,1439],{"alt":1440,"src":1441},"Esportazione chat","https://cdn.linghuxiong.com/resources/snapshots/ai-chat-export.png",[24,1443],{},[27,1445,1447],{"id":1446},"ix-compromesso-di-design-perché-non-il-rag-vettoriale","IX. Compromesso di design: Perché non il «RAG vettoriale»?",[10,1449,1450,1451,1454],{},"I colleghi nel Q&A documentale chiedono spesso: se fai retrieval-augmented generation, perché non ",[117,1452,1453],{},"Embedding + vector DB Top-K","?",[10,1456,1457,1460,1461,1464,1465,1468,1469,1472],{},[117,1458,1459],{},"Facciamo RAG","—cercare prima di generare. La differenza: «RAG» nel discorso comunitario implica spesso ",[117,1462,1463],{},"similarità vettoriale","; la nostra fase 3 è ",[117,1466,1467],{},"indice segmenti + Tool con sorgente on demand","—",[117,1470,1471],{},"nessuno strato vettoriale per scelta",". Sotto: ragioni architetturali, senza negare il valore del RAG vettoriale.",[61,1474,1476],{"id":1475},"ambito-non-nessuna-ricerca-ma-nessuna-ricerca-vettoriale","Ambito: non «nessuna ricerca», ma «nessuna ricerca vettoriale»",[35,1478,1479,1488],{},[38,1480,1481,1484,1485,627],{},[117,1482,1483],{},"RAG ampio:"," cercare → generare → ",[117,1486,1487],{},"lo facciamo",[38,1489,1490,1493,1494,653],{},[117,1491,1492],{},"RAG vettoriale:"," recall via similarità embedding → ",[117,1495,1496],{},"non in questa versione",[10,1498,1499,1500,1503,1504,1507],{},"Il pre-processing costruisce un ",[117,1501,1502],{},"indice di riassunti segmenti","; il modello sceglie segmenti via Tools e ottiene ",[117,1505,1506],{},"testo sorgente",". C'è ricerca senza modello embedding separato né manutenzione indice vettoriale.",[24,1509],{},[61,1511,1513],{"id":1512},"motivo-1-provider-llm-personalizzatisuperficie-di-integrazione-ridotta","Motivo 1: Provider LLM personalizzati—superficie di integrazione ridotta",[10,1515,1516,1517,1520,1521,1524],{},"Gli utenti possono collegare ",[117,1518,1519],{},"le proprie API key",", base URL personalizzate o ",[117,1522,1523],{},"Ollama locale","—il modello di chat è loro scelta; costo e percorso dati restano sotto controllo.",[10,1526,1527],{},"Il RAG vettoriale tipico allarga l'integrazione:",[35,1529,1530,1541,1544],{},[38,1531,1532,1533,1536,1537,1540],{},"Oltre al ",[117,1534,1535],{},"modello di chat",", serve di solito un ",[117,1538,1539],{},"modello di embedding"," (altro nome, a volte altro endpoint);",[38,1542,1543],{},"Ollama locale richiede modello embedding separato più compatibilità dimensione/API;",[38,1545,1546,1547,1550],{},"Più modi di guasto: chat OK ma ",[117,1548,1549],{},"ricerca vuota","—embedding, indice o dimensione; debug più difficile di un provider end-to-end.",[10,1552,1553,1554,1557,1558,1561],{},"Qui, ",[117,1555,1556],{},"scelta segmenti e risposta condividono una config provider","—niente «chat su A, indice su B». Per app ",[117,1559,1560],{},"LLM pluggabili",", spesso conta più di qualche punto di recall.",[10,1563,1564],{},[13,1565],{"alt":1566,"src":1567},"Provider IA personalizzati","https://cdn.linghuxiong.com/resources/snapshots/ai-customize-providers.png",[24,1569],{},[61,1571,1573],{"id":1572},"motivo-2-gli-embedding-legano-lindicecambiare-provider-costa-caro","Motivo 2: Gli embedding legano l'indice—cambiare provider costa caro",[10,1575,1576,1577,1580,1581,1584,1585,1588],{},"Nel RAG vettoriale, ",[117,1578,1579],{},"i vettori non sono un formato intermedio universale","—sono coordinate sotto un modello di embedding. Indice con A, query con B: la similarità di solito ",[117,1582,1583],{},"non è comparabile","—spesso ",[117,1586,1587],{},"re-embedding completo",", e dimensioni (768 / 1024 / 1536 …) bloccano lo schema di storage.",[10,1590,1591,1592,1595,1596,1599],{},"La fase 3 persiste ",[117,1593,1594],{},"riassunti strutturati + span caratteri",", non vettori; cambiare modello chat ",[117,1597,1598],{},"non ricostruisce l'indice","; la catena di prova (posizioni sorgente) resta—allineato a «provare LLM diversi in qualsiasi momento».",[24,1601],{},[61,1603,1605],{"id":1604},"motivo-3-il-routing-strutturato-spesso-basta-per-documenti-lunghi-con-toc","Motivo 3: Il routing strutturato spesso basta per documenti lunghi con TOC",[10,1607,1608,1609,1612,1613,1616,1617,1620,1621,1626],{},"E-book e PDF hanno di solito ",[117,1610,1611],{},"struttura a capitoli","; il pre-processing fornisce ",[117,1614,1615],{},"titoli segmento + riassunti",". Per «cosa dice il capitolo X» o «come il libro definisce Y», scegliere segmenti dal catalogo e ",[117,1618,1619],{},"tirare la sorgente"," funziona bene in pratica; il Tool restituisce ",[117,1622,1623,1624],{},"sorgente con ",[99,1625,1257],{},", lo zero allucinazioni resta ancorato agli span caratteri.",[10,1628,1629,1630,1633,1634,1637],{},"I vettori aiutano per semantica fuzzy, multilingue, match letterale lungo; per reader ",[117,1631,1632],{},"TOC + pre-processing + forte tracciabilità",", investire in ",[117,1635,1636],{},"Tool + restituzione sorgente + regole citazione"," ha spesso ROI migliore.",[24,1639],{},[61,1641,1643],{"id":1642},"futuro-recall-ibrido-non-riscrittura","Futuro: Recall ibrido, non riscrittura",[10,1645,1646,1647,1650,1651,1654,1655,1658,1659,1662],{},"Potremmo aggiungere ",[117,1648,1649],{},"recall vettoriale grossolano"," (embedding solo per Top-N capitoli candidati), terminando sempre in ",[117,1652,1653],{},"scegli segmento → sorgente → traccia cliccabile","—regole zero allucinazioni invariate. Se aggiunto: embedding ",[117,1656,1657],{},"opzionale",", prompt espliciti di ",[117,1660,1661],{},"re-indicizzazione"," al cambio modello—evitare silent wrong retrieval.",[10,1664,1665,1666],{},"Fino ad allora: ",[117,1667,1668],{},"qualsiasi API chat compatibile OpenAI funziona; cambiare modello chat non ricostruisce l'indice locale.",[24,1670],{},[27,1672,1674],{"id":1673},"x-sintesi","X. Sintesi",[702,1676,1677,1690],{},[705,1678,1679],{},[708,1680,1681,1684,1687],{},[711,1682,1683],{},"Passo",[711,1685,1686],{},"Metodo",[711,1688,1689],{},"Ruolo",[724,1691,1692,1703,1716,1729,1740,1751],{},[708,1693,1694,1697,1700],{},[729,1695,1696],{},"Pre-processing",[729,1698,1699],{},"Suddivisione TOC/lunghezza + cache segmenti",[729,1701,1702],{},"Libri lunghi ricercabili e localizzabili",[708,1704,1705,1708,1713],{},[729,1706,1707],{},"Tag di posizione",[729,1709,1710,1712],{},[99,1711,577],{}," nella sorgente",[729,1714,1715],{},"Provenienza analizzabile dalla macchina",[708,1717,1718,1721,1726],{},[729,1719,1720],{},"Tool",[729,1722,1723,1724],{},"Segmenti / riassunti libro per domanda, restituire ",[117,1725,743],{},[729,1727,1728],{},"Forzare prove prima della risposta",[708,1730,1731,1734,1737],{},[729,1732,1733],{},"System prompt",[729,1735,1736],{},"Libro prima, niente tag falsi, dire quando manca",[729,1738,1739],{},"Vincolare la generazione",[708,1741,1742,1745,1748],{},[729,1743,1744],{},"Frontend",[729,1746,1747],{},"Nota → anteprima → salto ed evidenziazione",[729,1749,1750],{},"L'utente verifica le prove",[708,1752,1753,1756,1759],{},[729,1754,1755],{},"Nessuna ricerca vettoriale",[729,1757,1758],{},"Un provider; cambiare modello chat senza re-indice",[729,1760,1761],{},"Costo integrazione e migrazione ridotto",[10,1763,1764,1765,1768],{},"«Zero allucinazioni» non significa che il modello non sbaglia mai—significa che ",[117,1766,1767],{},"l'ingegneria lega l'output a una catena di prove",": nessuna ricerca → non fingere contenuto del libro; con ricerca → posizioni sorgente verificabili.",[10,1770,1771,1772,1775,1776,1779],{},"Se sviluppi lettura IA o Q&A documentale, speriamo che il percorso ",[117,1773,1774],{},"testo integrale → frasi chiave → Tool-first on demand",", più ",[117,1777,1778],{},"tag di posizione inline + restituzione sorgente",", sia un'implementazione di riferimento utile.",[18,1781,1782],{},[10,1783,1784,1785,1789,1790,653],{},"Queste sono lezioni dal reader IA ",[664,1786,267],{"href":1787,"rel":1788},"https://reader.linghuxiong.com",[668],"—solo a titolo di riferimento. Prova il reader nella ",[664,1791,1793],{"href":1792},"/it-it#download","pagina download",{"title":72,"searchDepth":238,"depth":238,"links":1795},[1796,1801,1802,1803,1804,1808,1815,1819,1820,1827],{"id":464,"depth":238,"text":465,"children":1797},[1798,1799,1800],{"id":480,"depth":244,"text":481},{"id":560,"depth":244,"text":561},{"id":656,"depth":244,"text":657},{"id":846,"depth":238,"text":847},{"id":907,"depth":238,"text":908},{"id":922,"depth":238,"text":923},{"id":1050,"depth":238,"text":1051,"children":1805},[1806,1807],{"id":1078,"depth":244,"text":1079},{"id":1104,"depth":244,"text":1105},{"id":1180,"depth":238,"text":1181,"children":1809},[1810,1812,1814],{"id":1199,"depth":244,"text":1811},"6.1 get_related_segment_summaries — Ricerca mirata di segmenti",{"id":1261,"depth":244,"text":1813},"6.2 get_full_book_segment_summaries — Panoramica dell'intero libro",{"id":1282,"depth":244,"text":1283},{"id":1313,"depth":238,"text":1314,"children":1816},[1817,1818],{"id":1323,"depth":244,"text":1324},{"id":1334,"depth":244,"text":1335},{"id":1370,"depth":238,"text":1371},{"id":1446,"depth":238,"text":1447,"children":1821},[1822,1823,1824,1825,1826],{"id":1475,"depth":244,"text":1476},{"id":1512,"depth":244,"text":1513},{"id":1572,"depth":244,"text":1573},{"id":1604,"depth":244,"text":1605},{"id":1642,"depth":244,"text":1643},{"id":1673,"depth":238,"text":1674},"2026-06-03","Note tecniche sul Q&A a zero allucinazioni in un reader IA—risposte ancorate al libro aperto, con citazioni in un clic al passaggio esatto.",{},"/it-it/blog/zero-hallucination-qa",{"title":438,"description":1829},"it-it/blog/zero-hallucination-qa",[1835,1836,1837],"lettore","IA","ingegneria","zero-hallucination-qa","BdcEGBJmQs13oi-Il4fViNueRch1ksDhMYMtbkheQic",1786513822453]