<?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: SHIV∆M</title>
    <description>The latest articles on DEV Community by SHIV∆M (@shivamsinghx).</description>
    <link>https://dev.to/shivamsinghx</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%2F4157061%2F1ba60ec4-1054-41d2-836d-f3a93beaf009.png</url>
      <title>DEV Community: SHIV∆M</title>
      <link>https://dev.to/shivamsinghx</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/shivamsinghx"/>
    <language>en</language>
    <item>
      <title>LearnLens — A Study Assistant That Won't Guess</title>
      <dc:creator>SHIV∆M</dc:creator>
      <pubDate>Mon, 05 Oct 2026 03:12:06 +0000</pubDate>
      <link>https://dev.to/shivamsinghx/learnlens-a-study-assistant-that-wont-guess-138l</link>
      <guid>https://dev.to/shivamsinghx/learnlens-a-study-assistant-that-wont-guess-138l</guid>
      <description>&lt;p&gt;&lt;strong&gt;The problem&lt;/strong&gt;&lt;br&gt;
Long PDFs are difficult to search when you're studying. My friend was repeatedly going through notes and study material to find specific information.&lt;br&gt;
I wanted to build something more useful than a generic chatbot:&lt;br&gt;
What if the AI could answer questions from the study material — but refuse to answer when the material doesn't contain enough evidence?&lt;br&gt;
What I built&lt;br&gt;
&lt;strong&gt;LearnLens&lt;/strong&gt; lets a user upload study PDFs and ask questions about them.&lt;br&gt;
It:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;extracts text while preserving page boundaries&lt;/li&gt;
&lt;li&gt;chunks the document&lt;/li&gt;
&lt;li&gt;generates BGE embeddings&lt;/li&gt;
&lt;li&gt;stores vectors in PostgreSQL + pgvector&lt;/li&gt;
&lt;li&gt;retrieves relevant passages&lt;/li&gt;
&lt;li&gt;gives those passages to Gemma 3 4B&lt;/li&gt;
&lt;li&gt;returns a grounded answer with page-level sources&lt;/li&gt;
&lt;li&gt;refuses to guess when retrieval doesn't provide sufficient evidence
The interesting part: "I won't guess"
Most AI interfaces make it easy to assume that a confident-sounding answer is correct.
&lt;strong&gt;LearnLens&lt;/strong&gt; takes the opposite approach.
If the retrieved material isn't sufficient, it responds:
I couldn't find enough information in your uploaded study material to answer this reliably. I won't guess.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The system doesn't manufacture a confidence percentage. It uses retrieval evidence to determine whether there is enough supporting material to answer.&lt;/p&gt;

&lt;p&gt;Demo&lt;br&gt;
Live frontend: &lt;a href="https://learn-lens-psi.vercel.app/" rel="noopener noreferrer"&gt;https://learn-lens-psi.vercel.app/&lt;/a&gt;&lt;br&gt;
Demo video: &lt;a href="https://youtu.be/TmwEB-ZvwCU" rel="noopener noreferrer"&gt;https://youtu.be/TmwEB-ZvwCU&lt;/a&gt;&lt;br&gt;
GitHub: &lt;a href="https://github.com/shivamsinghx/LearnLens" rel="noopener noreferrer"&gt;https://github.com/shivamsinghx/LearnLens&lt;/a&gt;&lt;br&gt;
Prize category- Best Use of Gemma&lt;/p&gt;

&lt;p&gt;What's next&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;public backend deployment&lt;/li&gt;
&lt;li&gt;more document formats&lt;/li&gt;
&lt;li&gt;better retrieval evaluation&lt;/li&gt;
&lt;li&gt;hybrid retrieval&lt;/li&gt;
&lt;li&gt;additional open-weight models
P.S- I'm currently working on it(project in progress)&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>opensource</category>
      <category>devchallenge</category>
      <category>ai</category>
      <category>hacktoberfest</category>
    </item>
    <item>
      <title>HACKTOBERFEST '26</title>
      <dc:creator>SHIV∆M</dc:creator>
      <pubDate>Fri, 02 Oct 2026 10:30:46 +0000</pubDate>
      <link>https://dev.to/shivamsinghx/hacktoberfest-26-ek0</link>
      <guid>https://dev.to/shivamsinghx/hacktoberfest-26-ek0</guid>
      <description></description>
    </item>
  </channel>
</rss>
