Easy-to-manage touch screens
무료 오픈소스 터치스크린으로 USB 설정 가이드, 드래그‑드롭 편집기, 로컬 제어를 제공하며 Home Assistant용으로 제작되었습니다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Piattaforma per guide turistiche AI territoriali: una guida che accompagna il visitatore a piedi e racconta il territorio con storytelling basato su conoscenza verificata e collegata (grafo territoriale), audio-first e offline.
Portovenere è il primo territorio e il laboratorio reale; l'engine non contiene nulla di specifico per un territorio.
| Documento | Contenuto |
|---|---|
| v0.2 · Strategia di prodotto e architettura | Documento di riferimento. Analisi dei concorrenti, differenziazione, Territorial Knowledge Graph, Verified Knowledge, storytelling componibile, Tour Context Engine, Territory Pack, multi-territorio, CMS e curatela, MVP Portovenere, roadmap, KPI, modelli di business, rischi |
| v0.1 · Architettura iniziale | Primo passaggio (superato in parte dalla v0.2): GPS, geofencing, audio, offline, privacy, API |
| v0.1 · Schema database | Schema Supabase/PostgreSQL della v0.1 (da rivedere secondo il modello dati v0.2) |
| v0.1 · Tool AI | Definizioni dei tool della guida AI |
apps/guide app Next.js: walk mode, voce, simulatore di camminata, GPS (PWA, poi Capacitor)
packages/domain identificativi, vocabolari, ontologia, schemi del Territory Pack
packages/territory-pack caricamento, validazione, CLI guide-pack
packages/context-engine posizione, geofence, movimento, pianificazione con ancora, monitor del tempo
packages/narrative-planner scelta delle unità narrative per tappa, prerequisiti, richiami, memoria del tour
packages/bundle compilazione e lettura dei bundle scaricabili (offline), CLI guide-bundle
territories/ Territory Pack (_synthetic/: territori inventati per i test;
it.liguria.sp.portovenere: primo territorio reale, in fase di ricerca)
supabase/migrations/ schema del database v0.2
Requisiti: Node 22 o superiore.
npm install
npm run ci # typecheck, test, validazione dei pack, controllo territori
npm run packs:validate # valida i Territory Pack
npm run dev # app in locale
npm run photos --workspace @guide/territory-pack -- <cartella-foto> --territories territories --pack <id>
# coordinate, quota e data dalle foto JPEG, con il luogo più vicino
npm run field --workspace @guide/territory-pack -- <rilievi.json> --territories territories
# revisione dei rilievi esportati dall'app (debug): proposte, nessuna modifica al pack
Le immagini stanno in <pack>/media/files/ e sono descritte in <pack>/media/media.yaml: soggetti, testo
alternativo, fonte (own_photo, institution, archive, web, other), autore, licenza, attribuzione,
originalUrl. Il validatore pretende l'attribuzione quando la licenza la richiede e l'indirizzo originale per le
immagini prese dal web. Nei bundle entrano solo immagini con licenza utilizzabile: mai "tutti i diritti riservati",
le non commerciali solo se il territorio lo ammette (config.media.allowNonCommercial).
Fase 0 (fondazioni) in corso:
guide-pack/api/guide/ask): risponde prima con le affermazioni verificate del bundle, le cita; risposte
con citazioni inesistenti o numeri non presenti nelle fonti vengono scartate. Richiede ANTHROPIC_API_KEY
nelle variabili d'ambiente del progetto (senza, l'app funziona ma non risponde alle domande)territories/it.liguria.sp.portovenere/README.md)Pipeline di /api/guide/ask (codice in apps/guide/lib/ask.ts, ask-web.ts, ask-server.ts):
web_search_20260318 (filtraggio dinamico dei
risultati, nessun costo aggiuntivo per l'esecuzione del codice), con un numero massimo di ricerche e i domini
esclusi. Le pagine trovate sono trattate come dati, mai come istruzioni.Le risposte con ricerca non diventano conoscenza verificata: compaiono nei log (event: "web_answer", con le fonti)
perché la redazione le valuti e, se reggono, le porti nel Territory Pack.
Variabili d'ambiente (tutte facoltative tranne la chiave):
| Variabile | Default | Effetto |
|---|---|---|
ANTHROPIC_API_KEY | — | obbligatoria per le domande (solo lato server) |
ASK_WEB_ENABLED | 1 | 0 spegne la ricerca web (resta la base locale) |
ASK_WEB_MAX_USES | 3 | ricerche massime per domanda (1–10) |
ASK_WEB_MODEL | claude-opus-5-5 | modello della risposta con ricerca (es. claude-sonnet-5-5 per spendere meno) |
ASK_WEB_EFFORT | medium | low / medium / high |
ASK_WEB_PER_IP | 6 | domande con ricerca per indirizzo ogni 10 minuti (per istanza) |
ASK_WEB_DAILY_LIMIT | 300 | domande con ricerca al giorno per istanza del server |
ASK_WEB_BLOCKED_DOMAINS | recensioni e social | domini esclusi, separati da virgole (vuoto = nessuno) |
ASK_CACHE_TTL_HOURS | 24 | durata della cache delle risposte (0 = niente cache) |
ASK_WEB_TIMEOUT_MS | 50000 | tempo massimo della risposta con ricerca |
I limiti per indirizzo e per giorno valgono per singola istanza del server: sono argini, non quote globali.
Il tetto di spesa mensile affidabile si imposta nella Console Anthropic (limite di spesa del workspace a cui
appartiene la chiave). GET /api/guide/ask dice se la ricerca è attiva e se il modello la supporta (Models API).
Prove di qualità: npm run ask:eval -w @guide/app -- --file ../../territories/<id>/ASK-EVAL.json --out rapporto.md
(chiama davvero l'API: serve la chiave e ha un costo; --dry mostra solo cosa sa la base locale). Prima di ogni
domanda tiene libera una riserva prudente e non parte se supererebbe --max-usd; --no-web per la sola base,
--web-model per scegliere il modello della ricerca, --json per salvare i risultati e confrontare due esecuzioni
con npm run ask:compare -w @guide/app -- a.json b.json --out confronto.md (nessun costo).
?debug=1): GPS, geofence, stati redazionali, rilievo delle posizioni