<?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: RAGUL S</title>
    <description>The latest articles on DEV Community by RAGUL S (@kannan6300bike).</description>
    <link>https://dev.to/kannan6300bike</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%2F4161849%2Fe157e999-888f-4313-9f61-f240658f52bd.png</url>
      <title>DEV Community: RAGUL S</title>
      <link>https://dev.to/kannan6300bike</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kannan6300bike"/>
    <language>en</language>
    <item>
      <title>RECALLMATE</title>
      <dc:creator>RAGUL S</dc:creator>
      <pubDate>Wed, 28 Oct 2026 12:52:32 +0000</pubDate>
      <link>https://dev.to/kannan6300bike/recallmate-4afc</link>
      <guid>https://dev.to/kannan6300bike/recallmate-4afc</guid>
      <description>&lt;p&gt;This is a submission for the Hacktoberfest Open-Source AI Challenge Week 4: Ghost in the Machine&lt;/p&gt;

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

&lt;p&gt;RecallMate is a voice journal that listens, remembers, and lets you talk to your own past.&lt;/p&gt;

&lt;p&gt;You speak instead of typing. RecallMate transcribes what you said, turns it into a structured entry, and stores it. When you later ask “what did I say about that exam?” or “what was I feeling that week?”, it answers from your own recorded words.&lt;/p&gt;

&lt;p&gt;For Ghost in the Machine, I took the theme literally and personally: the ghost is your past self. Every entry you record is a small haunting, a voice from an earlier day that still has something to tell you. Día de los Muertos is about keeping memories alive so they don’t fade, and RecallMate does that for the everyday moments we usually forget by next week. [Add one line on what inspired you, e.g. a moment you forgot something that mattered.]&lt;/p&gt;

&lt;p&gt;It has journal modes (Health, Daily log, Study log) so the same pipeline fits different kinds of remembering.&lt;/p&gt;

&lt;p&gt;Demo&lt;/p&gt;

&lt;p&gt;[Video link or deployed link]&lt;/p&gt;

&lt;p&gt;Code&lt;/p&gt;

&lt;p&gt;github.com/AWT-SRIRAM/RECALLMATE&lt;/p&gt;

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

&lt;p&gt;Everything in the core pipeline is open-source and runs locally:&lt;/p&gt;

&lt;p&gt;faster-whisper transcribes the voice recordings.&lt;br&gt;
Ollama running qwen2.5:7b is the open-weight model that understands each entry and answers questions about past ones.&lt;br&gt;
Instructor forces the model’s output into clean, structured fields instead of loose text, so entries can be saved and searched reliably.&lt;br&gt;
SQLite stores the journal in a single file you own.&lt;br&gt;
Streamlit provides the interface.&lt;br&gt;
The whole thing runs from one all-in-one Python script, which I ran as a single Google Colab cell and exposed with localtunnel for the demo.&lt;/p&gt;

&lt;p&gt;The flow is: voice → transcript → structured entry → database → conversational recall.&lt;/p&gt;

&lt;p&gt;[Add one or two lessons from building it, such as a debugging story or a prompt that took many tries.]&lt;/p&gt;

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

&lt;p&gt;A journal is about the most private thing you can give an AI, so this matters here more than for most projects.&lt;/p&gt;

&lt;p&gt;Your voice and memories stay yours. Transcription, the model, and the database all run on your own machine or runtime. No audio or diary entry has to be sent to a company’s server.&lt;br&gt;
Nothing locks it in. The journal is a SQLite file, and the models are swappable. If a hosted service shuts down, raises prices, or changes its terms, your memories don’t go with it. For a project about not losing the past, that matters.&lt;br&gt;
It costs nothing to run. There are no per-minute transcription fees or API bills, so keeping a daily journal stays affordable.&lt;br&gt;
I can change how it behaves. I could swap qwen2.5 for another model, change the prompts, and add the journal modes without asking anyone’s permission.&lt;/p&gt;

&lt;p&gt;[If you tested it offline, say so here. It’s your strongest “works with the lights off” point.]&lt;/p&gt;

&lt;p&gt;My Agent Session&lt;/p&gt;

&lt;p&gt;[Link or embed your DevRelay session with the agent_session tag, or remove this section.]&lt;/p&gt;

&lt;p&gt;The Spirit of It&lt;/p&gt;

&lt;p&gt;[Optional. Add the moment it landed, for example Ragul’s reaction, or a time it played back something you’d forgotten. If there isn’t one yet, delete this section rather than inventing it.]&lt;/p&gt;

&lt;p&gt;Prize Categories&lt;/p&gt;

&lt;p&gt;[List the partner categories you’re entering, or remove this section.]&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>Lazy Mode: An Open-Weight Model That Renames and Sorts My Files Offline</title>
      <dc:creator>RAGUL S</dc:creator>
      <pubDate>Wed, 21 Oct 2026 15:55:08 +0000</pubDate>
      <link>https://dev.to/kannan6300bike/lazy-mode-an-open-weight-model-that-renames-and-sorts-my-files-offline-3oi4</link>
      <guid>https://dev.to/kannan6300bike/lazy-mode-an-open-weight-model-that-renames-and-sorts-my-files-offline-3oi4</guid>
      <description>&lt;p&gt;This is a submission for the Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady&lt;/p&gt;

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

&lt;p&gt;sloth-sorter is a lazy, fully local tidier for your Downloads folder.&lt;/p&gt;

&lt;p&gt;When a new file lands, a small open-weight model reads the filename and the first bit of the content. It renames the file to something meaningful and files it into the right folder. scan0042 (3).pdf becomes Invoices/Invoice_Airtel_Oct2026.pdf. Every move is logged with a one-line summary, so a single command gives you a morning digest of what got sorted.&lt;/p&gt;

&lt;p&gt;It is built for people who know their Downloads folder is a disaster and keep putting off fixing it. You set it up once and never think about it again.&lt;/p&gt;

&lt;p&gt;Safety features, because nobody should trust an AI with their files on day one:&lt;/p&gt;

&lt;p&gt;Dry run by default. It prints what it would do and moves nothing until you pass --apply.&lt;br&gt;
Undo log. Every move is recorded, and undo --last N reverses the most recent moves.&lt;br&gt;
It never overwrites. Name collisions get _2, _3, and so on.&lt;br&gt;
It skips unfinished downloads (.crdownload, .part) and files that are still growing.&lt;br&gt;
If the model fails, the file is left alone.&lt;br&gt;
Demo&lt;/p&gt;

&lt;p&gt;Code&lt;/p&gt;

&lt;p&gt;bash&lt;br&gt;
ollama pull qwen2.5:3b&lt;br&gt;
python sloth.py once --folder ~/Downloads # dry run, moves nothing&lt;br&gt;
python sloth.py watch --folder ~/Downloads --apply # lazy mode: runs forever&lt;br&gt;
python sloth.py digest # what got sorted overnight&lt;br&gt;
python sloth.py undo --last 5 # changed your mind&lt;br&gt;
How I Built It&lt;br&gt;
Model: a small open-weight model (default qwen2.5:3b) served locally by Ollama. The model is a command-line flag, so swapping in Gemma, Llama, or Phi is one flag.&lt;br&gt;
Structured output: the Ollama request uses a JSON schema, so the model must return {category, new_name, summary}, and category can only be one of a fixed list of folders. That keeps a small model from inventing folders or returning free-form text.&lt;br&gt;
Content reading: the standard library handles text, CSV, JSON, and .docx. pypdf is optional, for PDFs. Scanned PDFs and images fall back to the filename.&lt;br&gt;
Dependencies: there are none beyond Ollama. The folder watcher is a simple polling loop with a “has the file stopped growing?” check, so there is nothing to install or break.&lt;br&gt;
Cleanup layer: the model’s suggested name is sanitized in code (safe characters only, 60-character cap, original extension kept), so a bad model answer can’t produce an invalid filename.&lt;br&gt;
Why Does Open Innovation Matter?&lt;/p&gt;

&lt;p&gt;Downloads folders hold invoices, bank statements, ID scans, and medical reports. Sending those to a cloud API just to rename them is a bad trade.&lt;/p&gt;

&lt;p&gt;Privacy: the contents never leave the machine. With a closed API, the tool would have to upload your most sensitive documents.&lt;br&gt;
Cost: it costs nothing to run. Sorting thousands of old files would be a per-token bill on a hosted API. Here it only uses electricity.&lt;br&gt;
Offline: it works with no internet at all.&lt;br&gt;
Swappable models: I can pick the model that handles my own files best instead of whatever one vendor offers.&lt;br&gt;
Control: the categories, the naming style, and the prompt are all editable, so the behavior is yours to change.&lt;/p&gt;

&lt;p&gt;My Agent Session&lt;/p&gt;

&lt;p&gt;The Lazy Payoff&lt;/p&gt;

&lt;p&gt;Prize Categories&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>I Built an Offline “Sales Analyst” for Small Shops with Ollama and DuckDB</title>
      <dc:creator>RAGUL S</dc:creator>
      <pubDate>Sat, 17 Oct 2026 12:35:32 +0000</pubDate>
      <link>https://dev.to/kannan6300bike/i-built-an-offline-sales-analyst-for-small-shops-with-ollama-and-duckdb-2e1n</link>
      <guid>https://dev.to/kannan6300bike/i-built-an-offline-sales-analyst-for-small-shops-with-ollama-and-duckdb-2e1n</guid>
      <description>&lt;p&gt;This is a submission for the Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle&lt;/p&gt;

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

&lt;p&gt;AskMyShop is a local app that lets a small shop or restaurant owner ask questions about their sales in plain language and get a chart plus a one-line answer.&lt;/p&gt;

&lt;p&gt;Many small businesses keep sales in Excel or CSV exports from a billing app, but can’t afford an analyst. They’re left asking questions like “which dish is not selling?” or “which day is my busiest?” and guessing the answers.&lt;/p&gt;

&lt;p&gt;With AskMyShop, the owner uploads their sheet, types a question (e.g. “Which items sold least last month?”), and gets:&lt;/p&gt;

&lt;p&gt;a chart&lt;br&gt;
a one-line insight in simple words&lt;br&gt;
the SQL used, so they can see how the answer was found&lt;/p&gt;

&lt;p&gt;Who would pay: small restaurants, tiffin shops and grocery stores. Pricing idea: [₹499 one-time setup, or ₹199/month for monthly report templates].&lt;/p&gt;

&lt;p&gt;Demo&lt;/p&gt;

&lt;p&gt;Tip: Show the Wi-Fi turned off in the video. It proves the “private and offline” claim in two seconds.&lt;/p&gt;

&lt;p&gt;Code&lt;/p&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/AWT-SRIRAM" rel="noopener noreferrer"&gt;
        AWT-SRIRAM
      &lt;/a&gt; / &lt;a href="https://github.com/AWT-SRIRAM/SRM_AUTOSUB_BOT" rel="noopener noreferrer"&gt;
        SRM_AUTOSUB_BOT
      &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;
  🎬 SRM AUTOSUB BOT
&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/32e877cf7dd186864ea6401c40fe6db3b73ea0d1d278803ebff3c3d5f7bc186e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f446576656c6f7065722d53524952414d253230532d626c75653f7374796c653d666f722d7468652d6261646765266c6f676f3d676974687562266c6f676f436f6c6f723d7768697465"&gt;&lt;img src="https://camo.githubusercontent.com/32e877cf7dd186864ea6401c40fe6db3b73ea0d1d278803ebff3c3d5f7bc186e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f446576656c6f7065722d53524952414d253230532d626c75653f7374796c653d666f722d7468652d6261646765266c6f676f3d676974687562266c6f676f436f6c6f723d7768697465" alt="Developer"&gt;&lt;/a&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/81a8a816ea3838a0dbae7e84abf187a136268e52342dece17bbc60c02f024bce/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f507974686f6e2d332e31322532422d626c75653f7374796c653d666f722d7468652d6261646765266c6f676f3d707974686f6e266c6f676f436f6c6f723d7768697465"&gt;&lt;img src="https://camo.githubusercontent.com/81a8a816ea3838a0dbae7e84abf187a136268e52342dece17bbc60c02f024bce/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f507974686f6e2d332e31322532422d626c75653f7374796c653d666f722d7468652d6261646765266c6f676f3d707974686f6e266c6f676f436f6c6f723d7768697465" alt="Python Version"&gt;&lt;/a&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/19296567c09d84e5ea0833bea126e529eae6a4cb035d2716604b7705be0e1870/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6962726172792d5079726f6772616d2d79656c6c6f773f7374796c653d666f722d7468652d6261646765266c6f676f3d74656c656772616d266c6f676f436f6c6f723d7768697465"&gt;&lt;img src="https://camo.githubusercontent.com/19296567c09d84e5ea0833bea126e529eae6a4cb035d2716604b7705be0e1870/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6962726172792d5079726f6772616d2d79656c6c6f773f7374796c653d666f722d7468652d6261646765266c6f676f3d74656c656772616d266c6f676f436f6c6f723d7768697465" alt="Pyrogram"&gt;&lt;/a&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/ff2e78793c0ba68a17278b08107ac1fad4d2e39bce95061cffe83c4e2dc1ab0e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f456e67696e652d6661737465722d2d776869737065722d6f72616e67653f7374796c653d666f722d7468652d6261646765"&gt;&lt;img src="https://camo.githubusercontent.com/ff2e78793c0ba68a17278b08107ac1fad4d2e39bce95061cffe83c4e2dc1ab0e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f456e67696e652d6661737465722d2d776869737065722d6f72616e67653f7374796c653d666f722d7468652d6261646765" alt="Whisper"&gt;&lt;/a&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/3ef1082ed4e998c4377573ac24abacf58f4b13de32ff47c92d1a3ee302b5eef4/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f466f726d61742d2e4153532d627269676874677265656e3f7374796c653d666f722d7468652d6261646765"&gt;&lt;img src="https://camo.githubusercontent.com/3ef1082ed4e998c4377573ac24abacf58f4b13de32ff47c92d1a3ee302b5eef4/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f466f726d61742d2e4153532d627269676874677265656e3f7374796c653d666f722d7468652d6261646765" alt="Format"&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
  &lt;b&gt;An asynchronous, GPU-accelerated Telegram Bot engineered using Pyrogram and faster-whisper (&lt;code&gt;distil-large-v3&lt;/code&gt;). Automatically extracts English audio streams, transcribes multi-channel media, and generates mobile-optimized, styled Advanced SubStation Alpha (&lt;code&gt;.ass&lt;/code&gt;) English subtitles.&lt;/b&gt;
&lt;/p&gt;

&lt;p&gt;
  &lt;a href="https://github.com/AWT-SRIRAM/SRM_AUTOSUB_BOT#-features" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/999aa523ec64085f0827e65cb8f7ad990381d78d4ec1a232cbafbb62a86b454b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f46656174757265732d566965772d626c75653f7374796c653d666f722d7468652d6261646765"&gt;&lt;/a&gt;
  &lt;a href="https://github.com/AWT-SRIRAM/SRM_AUTOSUB_BOT#-deployment--setup" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/51e72f61617e314b32bd1c3c94d7c19bf8431b5ab5856f257a2224cd5b6120d4/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4465706c6f796d656e742d53657475702d627269676874677265656e3f7374796c653d666f722d7468652d6261646765"&gt;&lt;/a&gt;
  &lt;a href="https://github.com/AWT-SRIRAM/SRM_AUTOSUB_BOT#-bot-commands--interactive-menu" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/c6dd251832caf24387276cc8e23ea77c0f7675ef3050faf9a75139794fb42935/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f436f6d6d616e64732d4c6973742d6f72616e67653f7374796c653d666f722d7468652d6261646765"&gt;&lt;/a&gt;
  &lt;a href="https://t.me/your_telegram_username" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/a22f9e97845bc5eaa1ae394cef54ef14728214c0f4ea52f0c19b02060b5bec56/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f537570706f72742d54656c656772616d2d3030383863633f7374796c653d666f722d7468652d6261646765266c6f676f3d74656c656772616d266c6f676f436f6c6f723d7768697465"&gt;&lt;/a&gt;
&lt;/p&gt;




&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🔗 Quick Links&lt;/h2&gt;
&lt;/div&gt;

&lt;p&gt;
  &lt;a href="https://github.com/AWT-SRIRAM/SRM_AUTOSUB_BOT#-key-features" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/6cfcaf49db0af3210750962afbf70a4acc5e9733e3b58bbd2e7b73d7064a3285/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f486967686c69676874732d496e666f2d696e666f726d6174696f6e616c3f7374796c653d666c61742d737175617265"&gt;&lt;/a&gt;
  &lt;a href="https://github.com/AWT-SRIRAM/SRM_AUTOSUB_BOT#-subtitle-formatting-rules" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/e14374f2fc09e5149513ba3e4b7d2159462f9022f1f2db4f5dc37f02260844a0/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f466f726d617474696e672d52756c65732d707572706c653f7374796c653d666c61742d737175617265"&gt;&lt;/a&gt;
  &lt;a href="https://github.com/AWT-SRIRAM/SRM_AUTOSUB_BOT#-repository-structure" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/043509a77ece4f7c1f0cfd5e593912bdf3c3e7199c93497670205d8aa7f6370d/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5374727563747572652d46696c65732d626c756576696f6c65743f7374796c653d666c61742d737175617265"&gt;&lt;/a&gt;
  &lt;a href="https://github.com/AWT-SRIRAM/SRM_AUTOSUB_BOT#-deployment--setup" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/6be6aea0969966301950b043f0f807b5074917a43a53792ab7129b6daa3afcdf/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4465706c6f796d656e742d47756964652d737563636573733f7374796c653d666c61742d737175617265"&gt;&lt;/a&gt;
  &lt;a href="https://github.com/AWT-SRIRAM/SRM_AUTOSUB_BOT#-bot-commands--interactive-menu" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/5b6e175d8bf29d47eb77912c1eef317f05c405da686b53f0d59b18a4feaafe88/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f436f6d6d616e64732d4d656e752d6f72616e67653f7374796c653d666c61742d737175617265"&gt;&lt;/a&gt;
  &lt;a href="https://github.com/AWT-SRIRAM/SRM_AUTOSUB_BOT#-license" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/152aa2a37725b9fd554b28ff24d270f6071c67927a63e6d635a55c8e188e20c7/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d677265656e3f7374796c653d666c61742d737175617265"&gt;&lt;/a&gt;
&lt;/p&gt;




&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🚀 Key Features&lt;/h2&gt;
&lt;/div&gt;


&lt;b&gt;⚡ High-Performance ASR Engine&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;distil-large-v3 Architecture&lt;/strong&gt;: Utilises quantized &lt;code&gt;distil-large-v3&lt;/code&gt; running on CUDA &lt;code&gt;float16&lt;/code&gt; hardware acceleration, achieving &lt;strong&gt;5x–12x real-time transcription performance&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Word-Level Timestamping&lt;/strong&gt;: Generates exact word‑level timestamp alignments and applies &lt;strong&gt;centisecond rounding&lt;/strong&gt; (&lt;code&gt;round()&lt;/code&gt;‑based) to eliminate IEEE 754 drift on long files.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;FFmpeg Audio Extraction&lt;/strong&gt;: Automatically probes multi‑track containers (&lt;code&gt;.mkv&lt;/code&gt;, &lt;code&gt;.mp4&lt;/code&gt;, &lt;code&gt;.avi&lt;/code&gt;), prefers explicit English streams, and converts raw Audio to 16kHz mono PCM WAV with a &lt;strong&gt;3x volume boost&lt;/strong&gt; to capture quiet dialogue.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;

&lt;b&gt;🎨 Styled .ASS Output (Custom Look)&lt;/b&gt;


&lt;ul&gt;

&lt;li&gt;

&lt;strong&gt;Embedded Styling&lt;/strong&gt;: Outputs Advanced SubStation Alpha (&lt;code&gt;.ass&lt;/code&gt;) files with a &lt;strong&gt;pre‑defined style&lt;/strong&gt; – Trebuchet MS Italic…&lt;/li&gt;

&lt;/ul&gt;&lt;/div&gt;
&lt;br&gt;
  &lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/AWT-SRIRAM/SRM_AUTOSUB_BOT" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;


&lt;p&gt;How I Built It&lt;br&gt;
Model: [Qwen2.5 7B / Qwen2.5-Coder] running locally through Ollama&lt;br&gt;
Query engine: DuckDB, which queries the uploaded CSV/Excel directly with no database setup&lt;br&gt;
Structured output: Instructor with a schema, so the model returns the SQL and the chart type in a predictable format&lt;br&gt;
UI and charts: Streamlit with Plotly&lt;br&gt;
Safety layer: only read-only SELECT queries are allowed, and if the SQL fails, the error is sent back to the model for one retry&lt;br&gt;
Prompt design: the prompt includes the table schema, sample rows, and a few example questions with correct SQL, tuned to the shop’s own column names&lt;br&gt;
(Optional) faster-whisper for asking questions by voice&lt;/p&gt;

&lt;p&gt;What I learned: [e.g. small models sometimes write wrong SQL, so showing the query under every answer built trust, and schema plus examples in the prompt improved accuracy.]&lt;/p&gt;

&lt;p&gt;Why Does Open Innovation Matter?&lt;br&gt;
Privacy: sales and customer data never leave the owner’s laptop. For a small shop, that data is the business.&lt;br&gt;
Cost: there’s no per-question API fee, so a low flat price still leaves a margin. With a paid API, every question the owner asks would eat into a ₹199/month plan.&lt;br&gt;
Works offline: many small shops have unreliable internet, and this works without it.&lt;br&gt;
Customization: I could tune the prompt with the shop’s own column names and item names (including Tamil names), which a generic tool handles poorly.&lt;br&gt;
No lock-in: if a better open model comes out, or the shop has an older laptop, I can swap the model without rewriting the app.&lt;/p&gt;

&lt;p&gt;[Add one honest comparison here, e.g. “I tried the same questions on a hosted model: accuracy was [X], but it required uploading the data and costs [Y] per query.”]&lt;/p&gt;

&lt;p&gt;My First User&lt;/p&gt;

&lt;p&gt;[Who they are: a shop owner, a relative who runs a business, a tea stall, a hotel.]&lt;/p&gt;

&lt;p&gt;What they asked first:&lt;br&gt;
What worked / what confused them:&lt;br&gt;
Would they pay, and how much:&lt;br&gt;
What they asked for next:&lt;/p&gt;

&lt;p&gt;If you haven’t shown it to anyone by the deadline, delete this section.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>ourgrass</title>
      <dc:creator>RAGUL S</dc:creator>
      <pubDate>Sat, 10 Oct 2026 17:19:14 +0000</pubDate>
      <link>https://dev.to/kannan6300bike/ourgrass-3ko</link>
      <guid>https://dev.to/kannan6300bike/ourgrass-3ko</guid>
      <description>&lt;p&gt;the BirdNET*This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week1-2026-10-05"&gt;Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass&lt;/a&gt;*&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;TrailCall&lt;/strong&gt; is an offline bird-call companion for walks. You record a short clip on the trail, and it identifies the birds singing around you, then turns the detections into a short field note and adds them to your personal life list.&lt;/p&gt;

&lt;p&gt;The screen is the shortest part of the experience: tap record, put the device away, and keep walking. The detail only appears once you're back or at a rest stop. The goal is to make people look up and listen instead of scrolling.&lt;/p&gt;

&lt;p&gt;It's for beginner birders, students, and anyone who hears a call and wonders "what is that?", especially in places with weak or no signal.&lt;/p&gt;

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

&lt;p&gt;[TODO: video link or screenshots]&lt;/p&gt;

&lt;p&gt;Field test: [TODO: where you went, how long, how many species it identified, what it got wrong. Write this from your real outing.]&lt;/p&gt;

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

&lt;p&gt;[TODO: embed your GitHub repo]&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Detection:&lt;/strong&gt; BirdNET-Analyzer, an open-source bird sound classifier, runs fully locally on audio clips in Python.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Field notes:&lt;/strong&gt; a small open-weight model (e.g. Qwen2.5 or Llama 3.2 via &lt;strong&gt;Ollama&lt;/strong&gt;) turns the raw detections (species, confidence, time) into a readable note with a short, plain-language fact about each bird.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Storage:&lt;/strong&gt; a local &lt;strong&gt;SQLite&lt;/strong&gt; life list with date, species, and confidence.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Interface:&lt;/strong&gt; a minimal &lt;strong&gt;Streamlit&lt;/strong&gt; page (or CLI) with a record/upload button and a life-list view.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Flow:&lt;/strong&gt; record clip → BirdNET detections → confidence filter → local LLM writes the note → save to SQLite.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Everything runs on a laptop with no internet connection.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Works where there's no signal.&lt;/strong&gt; A cloud API is useless on a trail. Local models mean it works exactly where birds are.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Your recordings and locations stay with you.&lt;/strong&gt; Sightings and GPS context are sensitive, and nothing is uploaded to a server you don't control.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zero running cost.&lt;/strong&gt; There's no per-call fee, so people can use it on every walk.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Swappable and tunable.&lt;/strong&gt; I can swap the language model, change the note style, or later fine-tune on local species without waiting on a vendor.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Licensing note:&lt;/strong&gt; BirdNET's model weights are released under a non-commercial license, so this is a learning and community tool, not a commercial product.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  My Agent Session
&lt;/h2&gt;

&lt;p&gt;[TODO: DevRelay link or embed, or remove this section]&lt;/p&gt;

&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

&lt;p&gt;[TODO: list the partner categories you're entering, or remove this section]&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>Grandpa's Ledger (Voice-to-Recipe Archiver)</title>
      <dc:creator>RAGUL S</dc:creator>
      <pubDate>Sun, 04 Oct 2026 15:05:56 +0000</pubDate>
      <link>https://dev.to/kannan6300bike/grandpas-ledger-voice-to-recipe-archiver-ijb</link>
      <guid>https://dev.to/kannan6300bike/grandpas-ledger-voice-to-recipe-archiver-ijb</guid>
      <description>&lt;p&gt;What I Built&lt;br&gt;
I built Grandpa's Ledger, an offline audio processing workstation designed for my grandfather. He has cooked regional family dishes for decades without written recipes, relying entirely on intuition, memory, and spoken stories.&lt;/p&gt;

&lt;p&gt;Commercial cooking apps expect precise grams and milliliters, while my grandfather speaks in conversational dialect and qualitative steps (e.g., "a fistful of crushed mustard seeds until it pops"). Grandpa's Ledger lets him record raw voice memos at his own pace. The application transcribes his audio locally, extracts the implicit culinary workflow, and converts oral storytelling into structured, printable family recipe cards with estimated culinary ratios.&lt;/p&gt;

&lt;p&gt;Demo&lt;br&gt;
Live Demo / Screen Recording Link&lt;/p&gt;

&lt;p&gt;Code&lt;br&gt;
github.com/AWT-SRIRAM/SRM_TAMIL_SUB&lt;/p&gt;

&lt;p&gt;How I Built It&lt;br&gt;
The application runs as a fully local pipeline orchestrated with Python and Streamlit:&lt;/p&gt;

&lt;p&gt;Audio Ingestion &amp;amp; Transcription: Whisper.cpp (quantized medium.en model) executes directly on CPU using SIMD vector instructions, allowing reliable offline speech-to-text without dropped frames.&lt;/p&gt;

&lt;p&gt;Structuring &amp;amp; Semantic Parsing: The raw transcription is dispatched via Ollama running Llama 3.1 (8B-Instruct, 4-bit GGUF).&lt;/p&gt;

&lt;p&gt;Structured Output Enforcement: Using Instructor and Pydantic, the open-weight LLM is constrained to output strict JSON schemas containing ingredient arrays, estimated quantities, and chronological preparation steps.&lt;/p&gt;

&lt;p&gt;Storage: Extracted recipes are saved locally into Markdown files organized into an Obsidian-compatible vault.&lt;/p&gt;

&lt;p&gt;Why Does Open Innovation Matter?&lt;br&gt;
Data Sovereignty &amp;amp; Privacy: Family oral history, informal voice notes, and private memories remain strictly on the local machine rather than being fed into cloud training pipelines or stored on third-party servers.&lt;/p&gt;

&lt;p&gt;Zero Operational Cost: Relying on commercial multi-modal APIs for long-form audio transcripts quickly accumulates recurring billing costs. Open weights run indefinitely at zero marginal inference cost.&lt;/p&gt;

&lt;p&gt;Deterministic Structured Extraction: Open-source harnesses allow tight steering via constrained grammar sampling (such as llama.cpp GBNF grammars), eliminating JSON formatting failures that frequently occur with closed APIs.&lt;/p&gt;

&lt;p&gt;Prize Categories&lt;br&gt;
Open Source AI / Local Inference&lt;/p&gt;

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