WikiFai
Knowledge Graph e LLM Framework per Wikifunctions
Cos’è?
WikiFai è un framework che combina Knowledge Graph (Neo4j) e Large Language Model per scoprire e generare funzioni di ordine superiore in Wikifunctions. Anziché generare codice da zero, WikiFai compone funzioni nuove a partire da funzioni esistenti già validate, accelerando lo sviluppo di Abstract Wikipedia.
Missione
Abilitare la Retrieval-Augmented Composition (RAC): un paradigma in cui l’AI non genera codice nuovo, ma compone funzioni già testate e validate dalla community di Wikifunctions.
A differenza della RAG tradizionale:
| Â | RAG | RAC |
|---|---|---|
| Approccio | Recupera contesto → Genera codice nuovo | Recupera funzioni → Compone funzioni validate |
| Correttezza | Non garantita | Garantita (componenti pre-testati) |
| Allucinazioni | Possibili | Impossibili (solo ZID esistenti) |
| Trasparenza | Opaca | Logica di composizione esplicita |
Architettura
graph TD
A[Wikifunctions XML Dump] -->|mwxml stream| B[ETL Pipeline]
B -->|32.908 nodi| C[Neo4j Knowledge Graph]
C --> D[Fase 1: Analisi]
D -->|Text-to-Cypher| E[Fase 2: Astrazione]
E -->|Proposta funzione| F[Fase 3: Composizione]
F -->|Z-Object JSON| G[Human-in-the-Loop]
G -->|Validazione| H[Wikifunctions.org]
style C fill:#4C8BF5,color:#fff
style G fill:#FF9800,color:#fff
Il workflow di sintesi a 3 fasi:
- Analisi — Query Text-to-Cypher generate da LLM ed eseguite su Neo4j per scoprire pattern e ZID rilevanti
- Astrazione — L’LLM analizza i pattern e propone nuove funzioni di ordine superiore
- Composizione — Generazione di Z-Object completi con 3 implementazioni: Composition (Z14K2), Python (Z14K3) e Scheme R5RS
Knowledge Graph
Il grafo Neo4j modella l’intero ecosistema Wikifunctions:
- 32.908 nodi estratti dai dump XML
- 25.610 relazioni tra funzioni, tipi, implementazioni e test
- 2.000+ funzioni disponibili per la composizione
- 10+ lingue supportate nella ricerca multilingue
I Z-Object di Wikifunctions sono AST (Abstract Syntax Tree) serializzati come JSON. I riferimenti Z9 creano archi espliciti nel grafo, rendendo l’analisi delle dipendenze nativa e performante.
Interfaccia Web
WikiFai include un’interfaccia web completa per esplorare il grafo e gestire la sintesi:
- Navigazione funzioni con ricerca multilingue
- Viewer implementazioni con syntax highlighting
- Grafi delle dipendenze interattivi con Cytoscape.js
- Editor codice con Monaco Editor
- Gestione test con generazione automatica di test case (Z20 Testers)
Multi-Model LLM
Routing task-based che seleziona automaticamente il modello ottimale:
| Fase | Modello consigliato | Motivo |
|---|---|---|
| Analisi (Text-to-Cypher) | Gemini 2.5 Flash | Veloce, cost-effective |
| Astrazione | Claude Sonnet | Ragionamento bilanciato |
| Composizione | GPT-4 / Claude | Alta qualitĂ |
Supporto completo per Gemini, Claude e GPT con selezione automatica basata sulla complessitĂ del task.
Human-in-the-Loop
Ogni funzione generata richiede validazione umana prima della pubblicazione:
- L’AI genera la proposta con 3 implementazioni
- L’operatore umano revisiona lo Z-Object JSON
- Test automatici verificano le implementazioni
- Pubblicazione manuale su Wikifunctions
Questo approccio è conforme alla policy di Wikifunctions e alla strategia AI human-centered di Wikimedia.
Stack tecnologico
Backend:
- Python 3.10+ con FastAPI
- Neo4j 5.x per il Knowledge Graph
- PostgreSQL 16 per lo storico delle conversazioni
- LangChain 0.3+ per orchestrazione LLM
Frontend:
- React 18 con TypeScript
- Vite 6.0
- Ant Design, Cytoscape.js, Monaco Editor
Infrastruttura:
- Docker Compose (Neo4j, PostgreSQL, backend, executor)
- Esecuzione codice sandboxed in container isolati
Performance
| Operazione | Tempo |
|---|---|
| ETL completo (32K nodi) | ~10-15 min |
| Fase Analisi | ~5-10 sec |
| Fase Astrazione | ~3-5 sec |
| Fase Composizione | ~10-15 sec |
| Sintesi totale | ~20-30 sec per funzione |
Stato del progetto
- Versione corrente: v0.3.0 (Production-Ready)
- Prossimo rilascio: v0.4.0 (Q2 2026) — Modelli fine-tuned e pattern discovery avanzato
WikiFai contribuisce all’ecosistema Wikimedia accelerando la creazione di funzioni validate per Abstract Wikipedia.