How krishnamanikanisetty/un-plugged_edition works
UNPLLM is an offline-first local assistant with retrieval-augmented generation and an opportunistic Wikipedia sync loop. Users query the FastAPI service; RAG requests are embedded, matched against a local Chroma knowledge base, logged as covered or gap queries, then answered by Ollama. Documents can be ingested separately. When connectivity returns, the watcher clusters unresolved gaps, filters and fetches suitable Wikipedia articles, stores their chunks, and marks successful or unsyncable topics resolved. Gap reporting shares that clustering logic. Source excerpts establish these calls; README content was absent, so broader undocumented capabilities are not assumed.
Main entry points: sync_watcher.py Connectivity watcher · rag_utils.py Retrieval utilities · main.py Inference API · ingest.py Document ingestion
Components 15
Assistant runtime
- Inference API
main.py - Local Ollama
Knowledge base
- Retrieval utilities
rag_utils.py - Sentence embedder
- Chroma collection
chroma_db - Document ingestion
ingest.py
Gap sync
- Connectivity watcher
sync_watcher.py
Gap tracking
- Query log
unpllm_queries.db - Query logger
query_logger.py - Gap clustering
gap_engine.py - Gap report
analyze_gaps.py
Other components
- API user
- Local documents
documents - Connectivity check
- Wikipedia API
Connections 20
- API user → Inference API: sends request
- Inference API → Local Ollama: generates answer
- Inference API → Retrieval utilities: retrieves chunks
- Inference API → Query logger: logs query
- Retrieval utilities → Sentence embedder: embeds text
- Retrieval utilities → Chroma collection: queries collection
- Document ingestion → Local documents: reads files
- Document ingestion → Retrieval utilities: chunks and embeds
- Document ingestion → Chroma collection: upserts chunks
- Query logger → Query log: writes gaps
- Gap clustering → Query log: reads unresolved
- Gap report → Gap clustering: clusters gaps
- Connectivity watcher → Connectivity check: checks connectivity
- Connectivity watcher → Gap clustering: loads and clusters
- Connectivity watcher → Local Ollama: classifies and keywords
- Connectivity watcher → Wikipedia API: searches and fetches
- Connectivity watcher → Sentence embedder: embeds article
- Connectivity watcher → Chroma collection: upserts and evicts
- Connectivity watcher → Query log: marks resolved
- Connectivity watcher → Retrieval utilities: enforces storage cap