An Offline RAG based Voice Assistant Built for a Friend
This is a submission for the Hacktoberfest Weekend Challenge: Build for a Friend What I Built I built Fieldmate , a local voice assistant with document retrieval, for my friend who works as a nurse. The problem I wanted to solve was simple: help them look things up in their documents, remember an ongoing conversation, and capture notes and tasks—even when an internet connection is unavailable.…
This submission for Hacktoberfest Weekend is Fieldmate, a local voice assistant designed with document retrieval features for a friend who is a nurse. The primary goal was to help the user search through documents, remember ongoing conversations, and capture notes and tasks even without an internet connection. Fieldmate consolidates these functions into a single interface: users can either speak or type, with a hands-free mode available for speech between responses.
Users can ask about documents, upload various file formats, and receive answers complete with source references. The assistant allows for continuous conversations, with separate chat threads maintaining their own history and context. Documents are organized by subjects like Fieldwork, Biology, and Physics, and work can be saved as notes or tasks locally.
The user can also decide when to connect to the internet for a search, which must be approved before execution. Fieldmate operates as a laptop prototype and will be tested in the user's real-world workflow next. The application consists of a FastAPI backend with a simple HTML/CSS/JavaScript frontend and uses SQLite for persistent local storage.
The backend handles inference, document retrieval, conversation memory, voice processing, and tool execution. Ollama, Gemma, and Nomic are used for language and embedding models, text embeddings, and structured routing decisions, respectively. SQLite stores conversations, summaries, document vectors, notes, tasks, and search permissions.
To retrieve documents, the system uses Nomic's search_document function with cosine-similarity and keyword overlap calculations. The best passages are sent to the answering model. Answers include the answer text, its basis, a document check result, and supporting quotations.
Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.