<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Rajdeep Dolui</title>
    <description>The latest articles on DEV Community by Rajdeep Dolui (@students_room_ef2650e0bc).</description>
    <link>https://dev.to/students_room_ef2650e0bc</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4152732%2Fdc7baea1-5028-49fd-8ba8-c6e9518bcbe6.jpg</url>
      <title>DEV Community: Rajdeep Dolui</title>
      <link>https://dev.to/students_room_ef2650e0bc</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/students_room_ef2650e0bc"/>
    <language>en</language>
    <item>
      <title>OpenLoom: answers from your own documents, with a citation for every claim</title>
      <dc:creator>Rajdeep Dolui</dc:creator>
      <pubDate>Sun, 04 Oct 2026 16:39:24 +0000</pubDate>
      <link>https://dev.to/students_room_ef2650e0bc/openloom-answers-from-your-own-documents-with-a-citation-for-every-claim-4map</link>
      <guid>https://dev.to/students_room_ef2650e0bc/openloom-answers-from-your-own-documents-with-a-citation-for-every-claim-4map</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/mlh-hackathon"&gt;MLH x DEV Writing Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;Asking an AI about your own documents has an awkward trust problem. It gives a confident answer, and you have no idea whether it came from your files or from the model's imagination.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;OpenLoom&lt;/strong&gt; tackles that. You upload your PDFs and notes, ask a question, and OpenLoom answers using only those documents. Every claim points back to the exact passage it came from, like a thread you can pull. If the answer isn't in your files, it says so instead of guessing.&lt;/p&gt;

&lt;p&gt;The name comes from weaving: many separate threads of source material become one answer, and you can always trace it back.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;The flow is simple:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Upload&lt;/strong&gt; one or more PDFs or text files.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ask&lt;/strong&gt; a question in plain language.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Read&lt;/strong&gt; the answer, then expand any citation to see the original passage and the file and page it came from.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/bidyutdolui1970-cpu" rel="noopener noreferrer"&gt;
        bidyutdolui1970-cpu
      &lt;/a&gt; / &lt;a href="https://github.com/bidyutdolui1970-cpu/my-public-repo" rel="noopener noreferrer"&gt;
        my-public-repo
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;OpenLoom&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;OpenLoom is a lightweight platform for building and running AI-powered applications that leverage open models. It helps teams connect model workflows, orchestration logic, and deployment pipelines without locking themselves into a single proprietary provider.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;What OpenLoom does&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;OpenLoom gives developers a practical way to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;orchestrate AI workflows and tool usage&lt;/li&gt;
&lt;li&gt;connect applications to open-source large language models&lt;/li&gt;
&lt;li&gt;manage prompts, data flows, and model calls in a reusable way&lt;/li&gt;
&lt;li&gt;integrate AI features into products while keeping control over model choice and deployment&lt;/li&gt;
&lt;li&gt;support experimentation and iteration across models and environments&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In simple terms, OpenLoom helps turn model capabilities into usable application features with a clear and flexible architecture.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Where the open model is used&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;The open model is used in the model layer of OpenLoom, where it powers inference, reasoning, and task execution in a transparent and portable way. This is typically the place where:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;chat and agent workflows run&lt;/li&gt;
&lt;li&gt;…&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/bidyutdolui1970-cpu/my-public-repo" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  Open-Source Technologies
&lt;/h2&gt;

&lt;p&gt;OpenLoom is built entirely from open pieces, and all of it runs locally:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Embeddings:&lt;/strong&gt; &lt;code&gt;sentence-transformers&lt;/code&gt; turns document chunks into vectors.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vector search:&lt;/strong&gt; Chroma stores the chunks and finds the most relevant ones for a question.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Language model:&lt;/strong&gt; an open-weight Gemma model, served through Ollama, writes the answer from the retrieved passages only.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Interface:&lt;/strong&gt; Streamlit for upload, questions, and source viewing.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The key design choice is the prompt. The model is told to answer only from the retrieved passages, cite them by number, and say "not found in your documents" when the evidence isn't there. That one rule is what makes the citations trustworthy.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Learned
&lt;/h2&gt;

&lt;p&gt;Retrieval quality matters more than model size. Chunk size and overlap changed answer quality more than anything else, because a chunk that cuts a thought in half gives the model nothing useful to cite. Keeping the file name and page number attached to every chunk made citations nearly free to build.&lt;/p&gt;

&lt;h2&gt;
  
  
  Hackathon Experience
&lt;/h2&gt;

&lt;p&gt;I built OpenLoom for Hacktoberfest 2026, MLH's open-source AI hackathon, where the goal was to build something new with open-source AI at its core. Building against that constraint pushed me toward local models, and that turned out to be the right call for a tool that handles people's private documents.&lt;/p&gt;

</description>
      <category>mlhacks</category>
      <category>devchallenge</category>
      <category>hackathon</category>
    </item>
    <item>
      <title>Recipe Keeper: turning a family member's voice notes into a recipe book, fully offline</title>
      <dc:creator>Rajdeep Dolui</dc:creator>
      <pubDate>Sun, 04 Oct 2026 16:34:43 +0000</pubDate>
      <link>https://dev.to/students_room_ef2650e0bc/recipe-keeper-turning-a-family-members-voice-notes-into-a-recipe-book-fully-offline-3mo3</link>
      <guid>https://dev.to/students_room_ef2650e0bc/recipe-keeper-turning-a-family-members-voice-notes-into-a-recipe-book-fully-offline-3mo3</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-weekend-2026-10-01"&gt;Hacktoberfest Weekend Challenge: Build for a Friend&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;Some of the best cooks in our families never write anything down. The recipes live in their heads, and the only trace is a rambling voice note that says things like "add salt until it feels right." When that person is gone, or just busy, the recipe goes with them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Recipe Keeper&lt;/strong&gt; is a small tool I built for a family member who cooks entirely from memory. You upload a voice note of them talking through a dish. The app transcribes it, then a local language model turns the transcript into a clean recipe card with ingredients, steps, and tips. Saved cards are collected into a printable family recipe book.&lt;/p&gt;

&lt;p&gt;The goal was simple: let them keep cooking the way they always have, and let the rest of us finally hold on to the food.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;The flow has three steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Upload&lt;/strong&gt; a voice note, for example someone explaining how they make a dish.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Review&lt;/strong&gt; the transcript and the generated recipe card side by side, and fix anything the model got wrong.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Save&lt;/strong&gt; the card. All saved recipes are combined into one recipe book you can print.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;Everything runs on a single laptop, with no cloud services and no API keys:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Speech-to-text:&lt;/strong&gt; Whisper, run through &lt;code&gt;faster-whisper&lt;/code&gt;. It supports many languages, which matters because spoken recipes often mix languages.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Structuring:&lt;/strong&gt; an open-weight Gemma model served locally with Ollama. I prompt it to return strict JSON with a title, ingredients, steps, and tips, then validate the JSON before showing it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Interface:&lt;/strong&gt; a simple Streamlit app for upload, review, and editing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Output:&lt;/strong&gt; an HTML recipe book generated from the saved recipes, which can be printed to PDF.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The trickiest design problem is that spoken recipes are vague ("a handful", "until it smells right"). The prompt tells the model to keep the speaker's own wording and never invent exact measurements, and the review step lets a human correct anything before it is saved.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Privacy:&lt;/strong&gt; these are family voice recordings. With local models they never leave the laptop, and no company's server ever hears them.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cost:&lt;/strong&gt; it costs nothing to run, so there is no API bill for something a family might use for years.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Control:&lt;/strong&gt; if transcription is weak for a particular accent or language, I can switch to a larger Whisper model or adjust the prompt. With a closed API, I would be stuck with whatever it gives me.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Offline:&lt;/strong&gt; it works in the kitchen, with no internet connection needed.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For something as personal as a family member's voice and recipes, keeping everything local made more sense than any cloud service could.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
      <category>hf26challenge</category>
    </item>
  </channel>
</rss>
