π DEV UPDATE β MyZubster MVP: Local AI + RAG Knowledge Pipeline
Oggi ho completato un nuovo step del mio progetto MyZubster MVP / N4K48: un sistema AI locale che puΓ² interrogare le osservazioni del progetto e una knowledge base versionata su GitHub.
π Repository
https://github.com/nicolaususnicola-lgtm/myzubster-mvp
π Commit del nuovo RAG
https://github.com/nicolaususnicola-lgtm/myzubster-mvp/commit/8da7435ddc1b9ae8b2f5c2eea5debd2df4bc5f47
Come funziona
La pipeline locale Γ¨:
Knowledge / Observations β Embeddings β Qdrant β Retrieval β Ollama β Mistral β risposta con fonti
Il progetto usa:
- Ollama per eseguire i modelli AI localmente;
- nomic-embed-text per trasformare documenti e domande in embedding;
- Qdrant come vector database;
- Mistral per generare la risposta finale;
- Flask API come livello applicativo;
- Docker Compose per orchestrare API, Qdrant, Ollama e Open WebUI.
Cosa abbiamo cambiato
Prima, ogni domanda inviata all'AI poteva causare una nuova indicizzazione delle osservazioni.
Ora abbiamo separato le due responsabilitΓ :
WRITE
create observation β persist β embed β index in Qdrant
READ / ASK
question β embed question β search Qdrant β retrieve context β Mistral β answer
Questo evita di re-indicizzare tutto a ogni domanda e rende il RAG piΓΉ vicino a una vera architettura di retrieval.
Knowledge Base
Ho aggiunto anche una knowledge base Markdown versionata direttamente nel repository:
knowledge/N4K48.md
knowledge/ROADMAP.md
knowledge/ZORGAX.md
knowledge/GALLERY.md
knowledge/PROFILE.md
knowledge/README.md
Uno script dedicato:
scripts/ingest_knowledge.py
divide i documenti in chunk, genera embedding locali e li registra in Qdrant usando ID deterministici.
Nel test attuale:
38 knowledge chunks + 4 observations = 42 vector points
Test
La suite locale Γ¨ passata:
25/25 tests β
Abbiamo poi eseguito una vera richiesta RAG:
βQual Γ¨ lo stato del collegamento tra Nicola Comics e il Zorgax pubblico?β
Risultato:
HTTP 200 β 80.75 secondi
Il sistema ha recuperato informazioni dalla knowledge base e ha correttamente mantenuto un confine importante: il collegamento pubblico Zorgax end-to-end non Γ¨ ancora verificato.
Il retrieval in questo test ha selezionato due chunk di ROADMAP.md invece di ZORGAX.md: quindi il prossimo lavoro sarΓ migliorare ranking, chunking e pertinenza delle fonti, oltre alle prestazioni del modello locale.
Evidence first
Una regola importante del progetto resta:
concept β evidence
Un elemento viene dichiarato verificato solo quando esiste una prova tecnica concreta: test, commit, runtime, osservazione o altra evidenza controllabile.
Per esempio, Nicola Comics puΓ² avere una tavola nello stato NFT_CANDIDATE, ma questo non significa che sia stata mintata. Allo stesso modo, l'adapter Zorgax locale esiste, ma il collegamento con il Zorgax pubblico deve ancora essere provato end-to-end.
Next
I prossimi step sono:
better retrieval β smaller/faster context β Zorgax-specific retrieval β public E2E verification
L'obiettivo Γ¨ costruire progressivamente un assistente MyZubster capace di lavorare sulle informazioni reali del progetto, mantenendo separate visione, storytelling e prove tecniche.
π MyZubster MVP
https://github.com/nicolaususnicola-lgtm/myzubster-mvp
π N4K48 knowledge
https://github.com/nicolaususnicola-lgtm/myzubster-mvp/tree/main/knowledge
π RAG ingestion script
https://github.com/nicolaususnicola-lgtm/myzubster-mvp/blob/main/scripts/ingest_knowledge.py
Top comments (0)