<?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: Rishabh Kumar</title>
    <description>The latest articles on DEV Community by Rishabh Kumar (@rishabh_dev).</description>
    <link>https://dev.to/rishabh_dev</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%2F4079254%2F34a9b203-5122-4729-8ca6-690e3365b012.png</url>
      <title>DEV Community: Rishabh Kumar</title>
      <link>https://dev.to/rishabh_dev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/rishabh_dev"/>
    <language>en</language>
    <item>
      <title>YaadVault AI 🕯️ — Bringing Lost Memories Back to Life with Open-Source AI</title>
      <dc:creator>Rishabh Kumar</dc:creator>
      <pubDate>Sat, 31 Oct 2026 14:40:22 +0000</pubDate>
      <link>https://dev.to/rishabh_dev/yaadvault-ai-bringing-lost-memories-back-to-life-with-open-source-ai-2b5o</link>
      <guid>https://dev.to/rishabh_dev/yaadvault-ai-bringing-lost-memories-back-to-life-with-open-source-ai-2b5o</guid>
      <description>&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;YaadVault AI&lt;/strong&gt; is an AI-powered digital memory vault designed to preserve family stories, personal experiences, and memories before they disappear.&lt;/p&gt;

&lt;p&gt;We all have stories worth remembering. Our grandparents have childhood memories, our parents have life experiences, and our families have stories that are often passed down through conversations.&lt;/p&gt;

&lt;p&gt;But what happens when those stories are forgotten?&lt;/p&gt;

&lt;p&gt;That's the problem I wanted to solve.&lt;/p&gt;

&lt;p&gt;YaadVault AI transforms spoken memories into searchable digital records using open-source AI.&lt;/p&gt;

&lt;p&gt;Users can record a family member sharing a story, convert that recording into text, generate an AI-powered summary, and save it permanently in their personal memory vault.&lt;/p&gt;

&lt;p&gt;The idea behind the project is simple:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Technology should not only help us build the future; it should also help us preserve our past.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;🎙️ &lt;strong&gt;Voice Memory Recorder:&lt;/strong&gt; Record personal stories and family conversations.&lt;/li&gt;
&lt;li&gt;📝 &lt;strong&gt;AI Transcription:&lt;/strong&gt; Convert spoken memories into readable text.&lt;/li&gt;
&lt;li&gt;🧠 &lt;strong&gt;Smart Summarization:&lt;/strong&gt; Generate meaningful summaries of long recordings.&lt;/li&gt;
&lt;li&gt;📅 &lt;strong&gt;Memory Timeline:&lt;/strong&gt; Organize memories chronologically.&lt;/li&gt;
&lt;li&gt;💬 &lt;strong&gt;Ask Your Memories:&lt;/strong&gt; Ask questions about saved stories using AI.&lt;/li&gt;
&lt;li&gt;🔍 &lt;strong&gt;Semantic Memory Search:&lt;/strong&gt; Find memories based on their meaning, not just exact keywords.&lt;/li&gt;
&lt;li&gt;🔒 &lt;strong&gt;Privacy-First Architecture:&lt;/strong&gt; Keep personal memories and AI processing local.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;📸 &lt;strong&gt;Screenshots:&lt;/strong&gt; &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fsv2e0x8j5kklbw48r80e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fsv2e0x8j5kklbw48r80e.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The demo will showcase the complete journey: recording a memory, transcribing it, saving it, and asking questions about it&lt;/p&gt;

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

&lt;p&gt;I wanted YaadVault AI to be more than another application that simply sends user data to a third-party AI API.&lt;/p&gt;

&lt;p&gt;That's why I chose an open-source, local-first AI architecture.&lt;/p&gt;

&lt;h3&gt;
  
  
  Technology Stack
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Component&lt;/th&gt;
&lt;th&gt;Technology&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Frontend&lt;/td&gt;
&lt;td&gt;Next.js&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Styling&lt;/td&gt;
&lt;td&gt;Tailwind CSS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Backend&lt;/td&gt;
&lt;td&gt;Python + FastAPI&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AI Model&lt;/td&gt;
&lt;td&gt;Gemma&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Local AI Runtime&lt;/td&gt;
&lt;td&gt;Ollama&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Speech Recognition&lt;/td&gt;
&lt;td&gt;Whisper&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Database&lt;/td&gt;
&lt;td&gt;SQLite&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  How the AI Works
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;A user records a personal story.&lt;/li&gt;
&lt;li&gt;Whisper converts the audio into text.&lt;/li&gt;
&lt;li&gt;The transcribed text is passed to Gemma.&lt;/li&gt;
&lt;li&gt;Gemma generates a summary and extracts useful information.&lt;/li&gt;
&lt;li&gt;The memory is stored in the local database.&lt;/li&gt;
&lt;li&gt;Users can later ask questions about their saved memories.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For question answering, the application retrieves relevant saved memories and provides them as context to the language model.&lt;/p&gt;

&lt;p&gt;This helps keep answers grounded in the user's actual recordings rather than generating fictional family history.&lt;/p&gt;

&lt;p&gt;The goal is to make the entire experience work locally, without depending on a closed AI API for its core intelligence.&lt;/p&gt;

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

&lt;p&gt;Open innovation is especially important when building applications that deal with personal memories and sensitive information.&lt;/p&gt;

&lt;p&gt;Using open-weight models and local inference makes several things possible:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Privacy and Control&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Personal stories and family recordings are valuable. Local AI processing gives users more control over where their data goes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Freedom to Experiment&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Open-weight models allow developers to experiment with different models, prompts, and inference configurations without being locked into a single provider.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Accessibility&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;With tools like Ollama, developers can experiment with local AI without needing to build an entire AI infrastructure from scratch.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Community Collaboration&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Open-source development allows other developers to improve the application, suggest features, fix bugs, and make memory preservation accessible to more people.&lt;/p&gt;

&lt;p&gt;For me, open innovation means that powerful AI technology should not be limited to companies with expensive infrastructure.&lt;/p&gt;

&lt;p&gt;It should be available to everyone who has an idea worth building.&lt;/p&gt;

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

&lt;p&gt;Imagine sitting with your grandmother and asking her:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"What was your childhood like?"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;She starts telling you stories about her village, her school days, festivals, and people she once knew.&lt;/p&gt;

&lt;p&gt;You record that conversation.&lt;/p&gt;

&lt;p&gt;Years later, someone in your family opens YaadVault AI and asks:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"What was Grandma's childhood like?"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Instead of searching through old notebooks or trying to remember conversations, they can explore those memories again.&lt;/p&gt;

&lt;p&gt;That is what inspired YaadVault AI.&lt;/p&gt;

&lt;p&gt;I believe memories are more than old photographs or recordings. They are pieces of our identity, our family history, and our connection to the people we love.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;People may leave, but their stories don't have to disappear.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That's the little piece of the future I wanted to build. ❤️&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Building YaadVault AI has been an opportunity to explore how open-source AI can solve a problem that is deeply personal.&lt;/p&gt;

&lt;p&gt;The project is built around one simple belief:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Every memory deserves a place to live.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you like this idea, feel free to explore the repository, contribute, or share your feedback.&lt;/p&gt;

&lt;p&gt;Let's build technology that keeps our memories alive! 🕯️&lt;/p&gt;

&lt;h1&gt;
  
  
  Hacktoberfest #OpenSourceAI #Gemma #Ollama #Whisper #ArtificialIntelligence #OpenSource #DevRelay
&lt;/h1&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title># TidyAI 🦥 — Let AI Organize Your Files While You Relax</title>
      <dc:creator>Rishabh Kumar</dc:creator>
      <pubDate>Sat, 24 Oct 2026 19:10:12 +0000</pubDate>
      <link>https://dev.to/rishabh_dev/-tidyai-let-ai-organize-your-files-while-you-relax-4kp6</link>
      <guid>https://dev.to/rishabh_dev/-tidyai-let-ai-organize-your-files-while-you-relax-4kp6</guid>
      <description>&lt;p&gt;Have you ever opened your Downloads folder and found hundreds of files scattered everywhere?&lt;/p&gt;

&lt;p&gt;PDF documents, screenshots, college notes, images, ZIP archives, code files, certificates, and random documents — all mixed together in one place.&lt;/p&gt;

&lt;p&gt;You tell yourself, "I'll organize these files later." But later never comes!&lt;/p&gt;

&lt;p&gt;Manually sorting files is not difficult, but it is repetitive, time-consuming, and easy to postpone. As developers and students, we should spend more time learning, building, and creating rather than organizing files one by one.&lt;/p&gt;

&lt;p&gt;That's the idea behind &lt;strong&gt;TidyAI — a privacy-focused, AI-powered file organization assistant designed to make everyday file management easier.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Instead of spending time sorting files manually, imagine having an assistant that helps you understand your files, suggests where they belong, and handles repetitive organization tasks with minimal effort.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Work smarter, automate the boring stuff, and let AI handle the repetitive tasks.&lt;/strong&gt; 🦥&lt;/p&gt;

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

&lt;p&gt;TidyAI is designed to turn a messy collection of files into a structured and organized workspace.&lt;/p&gt;

&lt;p&gt;The project combines regular file-system automation with an open-weight AI model. Traditional file organizers usually depend on file extensions or predefined rules. TidyAI aims to go further by using AI to help interpret file context and recommend meaningful categories when simple rules are not enough.&lt;/p&gt;

&lt;p&gt;For example, a folder might contain:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;python_notes.pdf&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;IMG_20261020.png&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;resume_final_v3.pdf&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;certificate_cloud_computing.pdf&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;project_backup.zip&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;lecture_recording.mp4&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Instead of manually reviewing every file, users could receive organization suggestions such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Documents:&lt;/strong&gt; PDFs, Word files, and text documents&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Images:&lt;/strong&gt; Screenshots, photographs, and graphics&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Study Materials:&lt;/strong&gt; Notes, assignments, and learning resources&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Certificates:&lt;/strong&gt; Course certificates and achievements&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Archives:&lt;/strong&gt; ZIP files and compressed folders&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Videos:&lt;/strong&gt; Recordings, tutorials, and other video files&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These categories are examples of the intended experience. More specific classifications, such as distinguishing a certificate from ordinary study material, may require inspecting document content rather than relying only on filenames or extensions.&lt;/p&gt;

&lt;p&gt;The goal is to make file organization more intelligent, transparent, and convenient without taking control away from the user.&lt;/p&gt;

&lt;h2&gt;
  
  
  😫 The Problem: Digital Clutter Is Real
&lt;/h2&gt;

&lt;p&gt;Our computers gradually become storage spaces for files we no longer organize.&lt;/p&gt;

&lt;p&gt;This creates several everyday problems:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Finding files takes longer than expected.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You remember downloading a document, but you cannot remember its exact filename or location.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Downloads folders become overwhelming.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Every new download adds another file to an already disorganized collection.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Manual organization is repetitive.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Creating folders, checking extensions, renaming files, and moving them individually wastes time that could be spent on more valuable work.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Existing automation can be too basic.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Rules based only on file extensions cannot always identify what a document is actually about. Two PDF files might represent completely different things — a college assignment and a course certificate, for example.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Privacy matters.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Personal documents can contain sensitive information. Uploading every file to an external AI service just to organize a folder may not be desirable.&lt;/p&gt;

&lt;p&gt;TidyAI explores how local AI and ordinary automation can work together to address these challenges.&lt;/p&gt;

&lt;h2&gt;
  
  
  ✨ Key Features
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Smart File Categorization
&lt;/h3&gt;

&lt;p&gt;TidyAI is designed to use file information to recommend meaningful categories.&lt;/p&gt;

&lt;p&gt;Basic classification can use filenames, extensions, and metadata. When a file's purpose is unclear, an AI model can help interpret available context, subject to the information provided to it.&lt;/p&gt;

&lt;p&gt;The objective is to reduce the need to inspect every file manually.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Automatic Folder Organization
&lt;/h3&gt;

&lt;p&gt;Once categories have been suggested, the application can help organize files into appropriate folders.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Downloads/ → Documents/&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Downloads/ → Images/&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Downloads/ → Study Materials/&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;A safe workflow should let users review proposed changes before applying them. This helps prevent accidental moves, duplicate filenames, and unexpected changes to existing files.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Local AI Processing
&lt;/h3&gt;

&lt;p&gt;One of the main ideas behind TidyAI is to explore running an open-weight model locally rather than depending entirely on a hosted AI API.&lt;/p&gt;

&lt;p&gt;With a compatible local model and runtime, AI inference can take place on the user's computer. This can reduce the need to send file information to external services.&lt;/p&gt;

&lt;p&gt;Local processing still depends on the actual implementation: file operations, telemetry, downloads, or optional integrations must also be considered when evaluating privacy.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Simple and Beginner-Friendly Interface
&lt;/h3&gt;

&lt;p&gt;File management tools should not require users to understand complicated commands.&lt;/p&gt;

&lt;p&gt;A simple interface can make it easier to select a folder, preview suggested categories, review proposed actions, and organize files.&lt;/p&gt;

&lt;p&gt;The focus is on making the workflow understandable for students, developers, professionals, and everyday computer users.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. User-Controlled File Operations
&lt;/h3&gt;

&lt;p&gt;Automation should not mean losing control.&lt;/p&gt;

&lt;p&gt;A responsible file organizer should provide a preview of proposed changes, allow users to confirm them, and handle filename conflicts safely.&lt;/p&gt;

&lt;p&gt;The intention is to make organization convenient without silently moving or overwriting important files.&lt;/p&gt;

&lt;h2&gt;
  
  
  ⚙️ How It Works
&lt;/h2&gt;

&lt;p&gt;The proposed workflow combines deterministic file handling with AI-assisted classification.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1: Select a folder&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The user chooses a directory they want to organize, such as Downloads or a project folder.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2: Scan the files&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Python inspects supported files and collects relevant information, such as filenames, extensions, and available metadata.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3: Analyze and categorize&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The application applies straightforward rules first. When additional context is useful, a locally running open-weight model can suggest a category based on the available information.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4: Preview the results&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The user reviews the proposed categories and destination folders before any changes are made.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 5: Organize the files&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;After confirmation, the application moves supported files into their destination folders while checking for conflicts and handling errors.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 6: Review the outcome&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The application can display a summary of completed operations and any files that could not be organized.&lt;/p&gt;

&lt;p&gt;This hybrid approach is important. AI is useful for interpreting ambiguous information, but predictable operations such as checking file extensions and moving files should remain under explicit programmatic control.&lt;/p&gt;

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

&lt;p&gt;The project is planned around Python-based automation, an open-weight AI model, local inference, and a lightweight user interface.&lt;/p&gt;

&lt;h3&gt;
  
  
  Technology Stack
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Python:&lt;/strong&gt; Core application logic, file scanning, categorization rules, and file operations.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gemma:&lt;/strong&gt; An open-weight model option for AI-assisted categorization and interpretation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ollama:&lt;/strong&gt; A local model runtime for running a compatible Gemma model.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Streamlit:&lt;/strong&gt; A lightweight interface for interacting with the file organizer.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The final model version and configuration should be selected according to the computer's available memory, performance requirements, and the capabilities of the chosen model.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why Combine AI with Traditional Programming?
&lt;/h3&gt;

&lt;p&gt;Not every task needs a language model.&lt;/p&gt;

&lt;p&gt;Identifying a &lt;code&gt;.png&lt;/code&gt; file as an image is a straightforward programming task. Moving a file into a folder is also something Python can handle reliably.&lt;/p&gt;

&lt;p&gt;However, understanding that &lt;code&gt;semester3_os_notes.pdf&lt;/code&gt; is probably related to operating systems or that a document might be a course certificate requires more contextual interpretation.&lt;/p&gt;

&lt;p&gt;TidyAI's approach is to use ordinary code for predictable tasks and AI where contextual assistance can add value.&lt;/p&gt;

&lt;p&gt;This keeps the workflow easier to understand and avoids using AI unnecessarily for simple operations.&lt;/p&gt;

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

&lt;p&gt;Open innovation is particularly valuable when building tools that people may want to customize, inspect, and run on their own machines.&lt;/p&gt;

&lt;p&gt;For TidyAI, the choice of an open-weight model is not just about adding AI to an application. It is about exploring a different way to build and use AI-powered software.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. More Control Over the AI Workflow
&lt;/h3&gt;

&lt;p&gt;A locally available model gives developers the opportunity to experiment with prompts, supported model versions, and inference configurations without depending entirely on a proprietary hosted inference endpoint.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Privacy-Focused Design
&lt;/h3&gt;

&lt;p&gt;A local model can process the information supplied to it without requiring that information to be sent to an external model provider.&lt;/p&gt;

&lt;p&gt;For a file organizer, this is an important design advantage. However, local inference alone does not guarantee complete privacy; the rest of the application must be designed accordingly.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Reduced Dependence on Paid APIs
&lt;/h3&gt;

&lt;p&gt;Local inference can reduce usage-based API costs for supported workloads. Users still need compatible hardware, storage, and electricity, and some models may require substantial system resources.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Accessibility for Developers
&lt;/h3&gt;

&lt;p&gt;Open-weight models make it easier for developers and students to experiment with AI-powered applications, learn how inference works, and customize their tools.&lt;/p&gt;

&lt;p&gt;They also create opportunities for contributors to improve categorization, usability, error handling, and documentation.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Learning Through Building
&lt;/h3&gt;

&lt;p&gt;For me, this project is also an opportunity to explore the practical side of AI engineering: choosing a model, integrating it with a Python application, combining AI with deterministic logic, and designing a workflow that people can actually use.&lt;/p&gt;

&lt;p&gt;A closed API can be a useful choice for many applications, but open-weight models offer an alternative when local execution, customization, and greater control over deployment are priorities.&lt;/p&gt;

&lt;h2&gt;
  
  
  🔐 Privacy and Safety Considerations
&lt;/h2&gt;

&lt;p&gt;Because TidyAI is intended to work with users' personal files, safety should be part of the design rather than an afterthought.&lt;/p&gt;

&lt;p&gt;The application should aim to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Process files locally when using the local inference configuration.&lt;/li&gt;
&lt;li&gt;Avoid sending full document contents to the model when filenames or metadata are sufficient.&lt;/li&gt;
&lt;li&gt;Ask for confirmation before moving files.&lt;/li&gt;
&lt;li&gt;Avoid overwriting existing files without explicit permission.&lt;/li&gt;
&lt;li&gt;Handle inaccessible files and unsupported formats gracefully.&lt;/li&gt;
&lt;li&gt;Exclude sensitive system directories from automatic organization by default.&lt;/li&gt;
&lt;li&gt;Provide clear feedback about what was changed.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These safeguards can help make automation more predictable and give users confidence in the process.&lt;/p&gt;

&lt;h2&gt;
  
  
  🚀 Future Improvements
&lt;/h2&gt;

&lt;p&gt;There are several directions in which TidyAI could evolve.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Duplicate File Detection:&lt;/strong&gt; Identify possible duplicate files to help users reclaim storage space.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Custom Categories:&lt;/strong&gt; Allow users to define categories and organization rules that match their own workflow.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Content-Aware Organization:&lt;/strong&gt; Explore supported document text extraction so the model can classify files using their contents when necessary.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Undo and Recovery:&lt;/strong&gt; Maintain an operation history and support safe reversal of file moves.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Batch Processing:&lt;/strong&gt; Organize larger folders efficiently while reporting progress and errors.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Custom Naming Suggestions:&lt;/strong&gt; Suggest more descriptive filenames while preserving the original files until users approve the changes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cross-Platform Support:&lt;/strong&gt; Improve compatibility across macOS, Windows, and Linux.&lt;/p&gt;

&lt;p&gt;These are potential improvements, not claims that every feature is already implemented.&lt;/p&gt;

&lt;h2&gt;
  
  
  🎯 Who Can Benefit from TidyAI?
&lt;/h2&gt;

&lt;p&gt;TidyAI is intended for people who regularly download, create, or manage large numbers of files.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Students&lt;/strong&gt; can keep assignments, notes, and learning resources organized.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Developers&lt;/strong&gt; can reduce clutter in folders containing documentation, screenshots, and downloaded tools.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Content creators&lt;/strong&gt; can organize images, recordings, and project assets.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Professionals&lt;/strong&gt; can manage documents and downloads more systematically.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Everyday computer users&lt;/strong&gt; can spend less time sorting files manually.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The underlying idea is simple: small repetitive tasks add up, and automating them can make everyday computer use more convenient.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Screenshots:&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fouco8qzxztizdka8kq33.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fouco8qzxztizdka8kq33.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The demo should show the folder selection process, categorization suggestions, preview of proposed changes, and the final organization result.&lt;/p&gt;

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

&lt;p&gt;Building TidyAI is an opportunity to explore a practical question: how can open-weight AI make an ordinary, repetitive computer task easier?&lt;/p&gt;

&lt;p&gt;It also highlights an important lesson about AI development. A useful AI application does not always need a complicated agent or a large collection of tools. Sometimes, combining a suitable model with simple, reliable programming is enough to create a valuable experience.&lt;/p&gt;

&lt;p&gt;The challenge is to use AI where it genuinely helps, keep important operations predictable, and make the final tool easy to use.&lt;/p&gt;

&lt;h2&gt;
  
  
  🦥 Final Thoughts
&lt;/h2&gt;

&lt;p&gt;We often spend too much time doing small tasks that could be automated.&lt;/p&gt;

&lt;p&gt;Organizing files is one of them.&lt;/p&gt;

&lt;p&gt;TidyAI explores how open-weight AI, local inference, and simple automation can help people spend less time managing digital clutter and more time doing what matters to them.&lt;/p&gt;

&lt;p&gt;Because productivity is not always about working harder. Sometimes, it is about making repetitive work disappear.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Less sorting. Less effort. More time to create.&lt;/strong&gt; 🚀&lt;/p&gt;

&lt;p&gt;If you are interested in open-source AI, local models, or practical automation, I'd love to hear your thoughts and suggestions.&lt;/p&gt;

&lt;p&gt;What repetitive task would you automate with an open-weight AI model?&lt;/p&gt;

&lt;h1&gt;
  
  
  devchallenge #hf26challenge #Hacktoberfest #OpenSource #AI #Gemma #Python #Ollama #Automation
&lt;/h1&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>TutorSaathi AI: An Open-Source AI Teaching Assistant for English Tutors 🇮🇳</title>
      <dc:creator>Rishabh Kumar</dc:creator>
      <pubDate>Sun, 18 Oct 2026 19:47:04 +0000</pubDate>
      <link>https://dev.to/rishabh_dev/tutorsaathi-ai-an-open-source-ai-teaching-assistant-for-english-tutors-28h8</link>
      <guid>https://dev.to/rishabh_dev/tutorsaathi-ai-an-open-source-ai-teaching-assistant-for-english-tutors-28h8</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fue9g6exb8c88r3n9x8pl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fue9g6exb8c88r3n9x8pl.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;TutorSaathi AI&lt;/strong&gt; is an AI-powered teaching assistant designed to help English tutors and coaching centers create personalized learning materials for Hindi-speaking students.&lt;/p&gt;

&lt;p&gt;Many students understand English grammar rules but struggle to use English in everyday conversations. At the same time, tutors spend hours preparing worksheets, quizzes, translations, and practice exercises for their students.&lt;/p&gt;

&lt;p&gt;TutorSaathi AI aims to make this process faster and more accessible.&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Hindi-to-English Learning:&lt;/strong&gt; Translate Hindi sentences into natural English with simple explanations and examples.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI Worksheet Generator:&lt;/strong&gt; Generate grammar exercises, vocabulary activities, quizzes, and answer keys.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Personalized Practice:&lt;/strong&gt; Create exercises based on a student's learning level and common mistakes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Speaking Practice:&lt;/strong&gt; Provide daily English conversation prompts to help learners build confidence.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Progress Tracking:&lt;/strong&gt; Help tutors review quiz results and identify areas where students need more practice.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Who Would Pay for It?
&lt;/h3&gt;

&lt;p&gt;Independent English tutors, small coaching centers, and online educators could use TutorSaathi AI to save preparation time and offer more personalized learning experiences.&lt;/p&gt;

&lt;p&gt;The long-term goal is to provide a useful free learning experience alongside affordable premium features for tutors who need more worksheets, student management, and progress reports.&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0t9hq7c322dxhys1brtz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0t9hq7c322dxhys1brtz.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The demo will showcase how a tutor can generate an English worksheet, explain Hindi sentences in English, and prepare practice activities for students.&lt;/p&gt;

&lt;p&gt;The project source code, setup instructions, and documentation will be available in the repository.&lt;/p&gt;

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

&lt;p&gt;TutorSaathi AI is planned as a full-stack web application with an interface designed for students and teachers.&lt;/p&gt;

&lt;h3&gt;
  
  
  Technology Stack
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Frontend:&lt;/strong&gt; Next.js and TypeScript&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;UI:&lt;/strong&gt; Tailwind CSS and shadcn/ui&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI Model:&lt;/strong&gt; Gemma, an open-weight model family from Google&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Inference:&lt;/strong&gt; A compatible inference runtime for generating educational content&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Database:&lt;/strong&gt; MongoDB Atlas, if persistent user accounts and progress tracking are implemented&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deployment:&lt;/strong&gt; Vercel for the web application&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The core AI workflow will use Gemma to generate translations, grammar explanations, worksheets, and practice questions from user-provided topics and sentences.&lt;/p&gt;

&lt;p&gt;The application will guide the model using structured prompts and validate generated output before displaying it to learners. Educational content should be reviewed carefully because AI-generated explanations can sometimes be incorrect.&lt;/p&gt;

&lt;p&gt;The implementation and final technology choices will be documented in the GitHub repository.&lt;/p&gt;

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

&lt;p&gt;Open innovation matters because educational tools should be accessible to learners and teachers regardless of their budget.&lt;/p&gt;

&lt;p&gt;Using an open-weight model such as Gemma offers several potential advantages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Greater flexibility:&lt;/strong&gt; Developers can experiment with different model sizes and inference setups.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deployment choices:&lt;/strong&gt; Depending on hardware and model requirements, inference may run locally or on infrastructure chosen by the developer.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Transparency and experimentation:&lt;/strong&gt; Developers can inspect available model documentation, evaluate outputs, and improve their application around the model's strengths and limitations.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cost control:&lt;/strong&gt; Self-hosting or selecting an appropriate inference provider can offer different cost trade-offs compared with relying entirely on a closed AI API.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Privacy-conscious design:&lt;/strong&gt; A suitable deployment can reduce the need to send educational content to an external model provider, although the complete application must also handle logs, databases, and user data responsibly.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A closed API can also be useful, but an open-weight approach gives developers more control over how they experiment, deploy, and adapt their AI-powered products.&lt;/p&gt;

&lt;p&gt;For TutorSaathi AI, the goal is to explore how open-source AI can help make personalized English learning more affordable and practical.&lt;/p&gt;

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

&lt;p&gt;&lt;em&gt;[Optional — complete this section after a real person has tested the application.]&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I plan to share TutorSaathi AI with an English tutor or a small coaching center and collect feedback on worksheet quality, usefulness, and time saved during lesson preparation.&lt;/p&gt;

&lt;p&gt;The feedback will help me identify which features are genuinely useful and what needs improvement.&lt;/p&gt;

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

&lt;p&gt;&lt;em&gt;[Add the exact partner categories you are eligible for, as listed on the official challenge page. Remove this section if no category applies.]&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What's Next?
&lt;/h2&gt;

&lt;p&gt;My next priorities are to test the generated educational content, improve personalization, gather feedback from real tutors, and explore an affordable pricing model.&lt;/p&gt;

&lt;p&gt;I want TutorSaathi AI to become more than another AI wrapper. The goal is to build a practical teaching tool that solves a real problem for educators and their students.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Open-source AI + practical education + real user feedback = a product worth building.&lt;/strong&gt; 🚀&lt;/p&gt;

&lt;p&gt;Thanks for checking out TutorSaathi AI!&lt;br&gt;
&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week2-2026-10-12"&gt;Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

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

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

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

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

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>🌿 NatureQuest AI: Turn Screen Time into Green Time with Open-Source AI</title>
      <dc:creator>Rishabh Kumar</dc:creator>
      <pubDate>Mon, 12 Oct 2026 04:40:18 +0000</pubDate>
      <link>https://dev.to/rishabh_dev/naturequest-ai-turn-screen-time-into-green-time-with-open-source-ai-job</link>
      <guid>https://dev.to/rishabh_dev/naturequest-ai-turn-screen-time-into-green-time-with-open-source-ai-job</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;What if AI didn't ask you to spend more time on your screen—but inspired you to step outside?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;NatureQuest AI&lt;/strong&gt; is an AI-powered outdoor adventure application that transforms everyday nature exploration into fun, interactive missions. It encourages users to put their devices down, explore the world around them, observe nature, and build healthier digital habits.&lt;/p&gt;

&lt;p&gt;This is my submission for the &lt;strong&gt;&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;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  🌱 1. The Problem: We Spend Too Much Time on Screens
&lt;/h2&gt;

&lt;p&gt;We use technology for almost everything—learning, communication, entertainment, and work. But sometimes, scrolling through a screen replaces the simple experiences that make life interesting.&lt;/p&gt;

&lt;p&gt;We might spend hours indoors without noticing the birds outside, the plants around us, or the small details of our environment.&lt;/p&gt;

&lt;p&gt;I wanted to explore a different question:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can we use AI to encourage people to spend more time in the real world instead of keeping them glued to a screen?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That question inspired me to build NatureQuest AI.&lt;/p&gt;

&lt;h2&gt;
  
  
  🚀 2. What I Built
&lt;/h2&gt;

&lt;p&gt;NatureQuest AI turns outdoor exploration into a mission-based experience.&lt;/p&gt;

&lt;p&gt;Instead of simply opening another app to scroll, users can discover a challenge, go outdoors, complete the activity, and track their progress.&lt;/p&gt;

&lt;h3&gt;
  
  
  ✨ Key Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;🤖 AI-Powered Outdoor Missions:&lt;/strong&gt; Generate nature-related activities and real-world challenges using an open-weight AI model.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🌳 Explore Your Surroundings:&lt;/strong&gt; Discover activities involving plants, birds, trees, outdoor observation, and environmental awareness.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;📸 Photo Evidence Verification:&lt;/strong&gt; For missions that require visual evidence, users can submit a photo for verification.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🐦 Bird Sound Verification:&lt;/strong&gt; Bird-observation missions can use recorded audio as supporting evidence.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🏆 XP and Rewards:&lt;/strong&gt; Earn experience points, build streaks, and unlock badges through mission completion.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;📔 Nature Journal:&lt;/strong&gt; Keep track of discoveries and outdoor experiences.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;📶 Offline-Friendly Missions:&lt;/strong&gt; Use predefined missions when AI generation is unavailable.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🎮 Gamified Progress:&lt;/strong&gt; Turn small outdoor activities into an engaging journey.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Feature note: Keep the photo and bird-audio features described as available only if their verification flow has been implemented and tested. Otherwise, label them as work in progress.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🔄 3. How NatureQuest AI Works
&lt;/h2&gt;

&lt;p&gt;Here is the high-level user journey.&lt;br&gt;
&lt;/p&gt;

&lt;pre data-lang="mermaid"&gt;&lt;code&gt;flowchart TD
    A["🌿 Open NatureQuest AI"] --&amp;gt; B["Choose or Generate a Mission"]
    B --&amp;gt; C["🤖 AI Suggests an Outdoor Challenge"]
    C --&amp;gt; D["🌳 Go Outside and Explore"]
    D --&amp;gt; E{"Does the Mission Require Evidence?"}
    E -- "Yes" --&amp;gt; F["📸 Photo or 🐦 Audio Evidence"]
    F --&amp;gt; G["🔍 Verify Evidence"]
    G --&amp;gt; H{"Evidence Accepted?"}
    H -- "No" --&amp;gt; I["Try Again"]
    I --&amp;gt; F
    H -- "Yes" --&amp;gt; J["Complete Mission"]
    E -- "No" --&amp;gt; J
    J --&amp;gt; K["🏆 Earn XP and Update Progress"]
    K --&amp;gt; L["📔 Record the Experience"]
    L --&amp;gt; M["Explore the Next Mission"]&lt;/code&gt;&lt;/pre&gt;



&lt;p&gt;The important idea is that &lt;strong&gt;AI creates the opportunity, but the real experience happens outside the application&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Evidence verification should be used only for relevant missions. Activities that do not require evidence should continue through the normal completion flow.&lt;/p&gt;

&lt;h2&gt;
  
  
  🧠 4. AI and System Architecture
&lt;/h2&gt;

&lt;p&gt;NatureQuest AI is designed around an open-weight AI workflow for mission generation, with a separate application layer for mission management and progress tracking.&lt;br&gt;
&lt;/p&gt;

&lt;pre data-lang="mermaid"&gt;&lt;code&gt;flowchart TB
    U["👤 User"] --&amp;gt; FE["Next.js + TypeScript Frontend"]
    FE --&amp;gt; API["FastAPI Backend"]
    API --&amp;gt; MS["Mission Service"]
    MS --&amp;gt; AI["Open-Weight AI Model"]
    AI --&amp;gt; MS
    MS --&amp;gt; VAL["Validate Mission Structure"]
    VAL --&amp;gt; FE
    FE --&amp;gt; OUT["Outdoor Activity"]
    OUT --&amp;gt; EV["Optional Evidence Submission"]
    EV --&amp;gt; VER["Evidence Verification"]
    VER --&amp;gt; COMPLETE["Mission Completion Logic"]
    COMPLETE --&amp;gt; XP["XP, Streaks and Badges"]
    XP --&amp;gt; JOURNAL["Nature Journal and Progress"]&lt;/code&gt;&lt;/pre&gt;



&lt;h3&gt;
  
  
  What each layer does
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Component&lt;/th&gt;
&lt;th&gt;Responsibility&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Frontend&lt;/td&gt;
&lt;td&gt;Displays missions, progress, and the user interface&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Backend API&lt;/td&gt;
&lt;td&gt;Handles requests and application logic&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mission service&lt;/td&gt;
&lt;td&gt;Organizes mission generation and mission data&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Open-weight model&lt;/td&gt;
&lt;td&gt;Generates outdoor mission ideas&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Evidence verification&lt;/td&gt;
&lt;td&gt;Evaluates relevant photo or audio submissions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Progress system&lt;/td&gt;
&lt;td&gt;Tracks completion, XP, streaks, and badges&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Nature Journal&lt;/td&gt;
&lt;td&gt;Records the user's outdoor experiences&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The exact inference provider and verification models depend on the implementation used in the final application.&lt;/p&gt;

&lt;h2&gt;
  
  
  🛠️ 5. Tech Stack
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Technology&lt;/th&gt;
&lt;th&gt;Purpose&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Next.js&lt;/td&gt;
&lt;td&gt;Frontend application&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TypeScript&lt;/td&gt;
&lt;td&gt;Type-safe application development&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tailwind CSS&lt;/td&gt;
&lt;td&gt;Styling and responsive layouts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Python&lt;/td&gt;
&lt;td&gt;Backend development&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;FastAPI&lt;/td&gt;
&lt;td&gt;Backend API framework&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pydantic&lt;/td&gt;
&lt;td&gt;Data validation and structured schemas&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gemma / another suitable open-weight model&lt;/td&gt;
&lt;td&gt;AI mission generation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ollama, if configured&lt;/td&gt;
&lt;td&gt;Local model inference&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Git and GitHub&lt;/td&gt;
&lt;td&gt;Version control and collaboration&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Important:&lt;/strong&gt; Keep only the technologies and AI models actually used in your project. If you use a different model or inference setup, update this table accordingly.&lt;/p&gt;

&lt;h2&gt;
  
  
  🔓 6. Why Open Innovation Matters
&lt;/h2&gt;

&lt;p&gt;Open innovation is important because developers should have choices in how they build and deploy AI-powered applications.&lt;/p&gt;

&lt;p&gt;For NatureQuest AI, open-weight models create opportunities to experiment with mission generation, test different models, and explore local inference where the model and hardware support it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why I care about open-source AI
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Flexibility:&lt;/strong&gt; Choose a model based on quality, speed, resource requirements, and licensing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Experimentation:&lt;/strong&gt; Compare different models for generating practical outdoor missions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deployment choices:&lt;/strong&gt; Explore local inference or hosted deployment according to project requirements.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Community contributions:&lt;/strong&gt; Allow other developers to suggest missions, improve code, fix bugs, and extend the application.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Greater control:&lt;/strong&gt; Reduce dependence on one proprietary AI provider, depending on the chosen architecture.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Open-weight models do not automatically make an application free, completely private, or fully offline. Those properties depend on the model licence, deployment, hardware, data handling, and external services.&lt;/p&gt;

&lt;p&gt;For me, the most interesting part is using open AI for something beyond another chatbot: encouraging people to reconnect with nature.&lt;/p&gt;

&lt;h2&gt;
  
  
  🌳 7. A Real-World Example
&lt;/h2&gt;

&lt;p&gt;Imagine a user opens NatureQuest AI on a Saturday morning.&lt;/p&gt;

&lt;p&gt;The application suggests a mission:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mission: Become a Bird Observer 🐦&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Go outside to a safe, accessible place.&lt;/li&gt;
&lt;li&gt;Spend a few minutes quietly observing your surroundings.&lt;/li&gt;
&lt;li&gt;Notice the birds and listen to the sounds around you.&lt;/li&gt;
&lt;li&gt;If the mission requires it, record a short audio sample.&lt;/li&gt;
&lt;li&gt;Submit the evidence for verification.&lt;/li&gt;
&lt;li&gt;Complete the mission and earn XP if it passes the required checks.&lt;/li&gt;
&lt;li&gt;Record the experience in your Nature Journal.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The activity is simple, but it encourages observation, curiosity, and time away from endless scrolling.&lt;/p&gt;

&lt;p&gt;Evidence verification can help discourage unsupported completion claims, although an AI classifier cannot guarantee that every submission is genuine or correctly identified.&lt;/p&gt;

&lt;h2&gt;
  
  
  🎨 8. Design Philosophy
&lt;/h2&gt;

&lt;p&gt;I wanted the interface to feel calm, natural, friendly, and inviting—not like a corporate dashboard.&lt;/p&gt;

&lt;p&gt;The visual direction uses:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sage green and earthy colors&lt;/li&gt;
&lt;li&gt;Warm cream backgrounds&lt;/li&gt;
&lt;li&gt;Rounded cards and approachable layouts&lt;/li&gt;
&lt;li&gt;Clear mission instructions&lt;/li&gt;
&lt;li&gt;Visible progress and rewards&lt;/li&gt;
&lt;li&gt;Nature-inspired visual elements&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The design supports the purpose of the application: make outdoor exploration feel accessible and enjoyable.&lt;/p&gt;

&lt;h2&gt;
  
  
  🧩 9. Challenges and What I Learned
&lt;/h2&gt;

&lt;p&gt;Building NatureQuest AI helped me think about AI as part of a complete product, rather than just a model that generates text.&lt;/p&gt;

&lt;p&gt;Some important engineering considerations include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Structured AI output:&lt;/strong&gt; Generated missions need a predictable format that the application can validate.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reliable fallback behavior:&lt;/strong&gt; Users should still have missions available if AI generation fails.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Evidence quality:&lt;/strong&gt; A photo or audio clip may be unclear, irrelevant, or insufficient for verification.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Responsible gamification:&lt;/strong&gt; Rewards should encourage outdoor exploration without making users feel pressured to stay in the app.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Privacy:&lt;/strong&gt; Camera and microphone access should be requested only when needed, with clear controls for reviewing and deleting evidence.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hardware limitations:&lt;/strong&gt; Running an open-weight model locally depends on its size, quantization, and available system resources.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One lesson stands out: &lt;strong&gt;AI features are only useful when they support a meaningful user experience and work reliably within the limits of the system.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Before publishing, add one or two challenges you personally encountered and solved during development. Real examples make this section stronger.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🔮 10. What's Next?
&lt;/h2&gt;

&lt;p&gt;NatureQuest AI can grow in several directions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🌼 More mission categories for different ages and interests&lt;/li&gt;
&lt;li&gt;🐦 Improved bird-sound recognition and clearer verification feedback&lt;/li&gt;
&lt;li&gt;📷 Better image relevance checking&lt;/li&gt;
&lt;li&gt;🌍 Optional location-aware missions with explicit permission&lt;/li&gt;
&lt;li&gt;♿ Accessibility improvements for different users&lt;/li&gt;
&lt;li&gt;🌱 Community-created mission packs&lt;/li&gt;
&lt;li&gt;📊 Personal outdoor activity history and progress insights&lt;/li&gt;
&lt;li&gt;🔋 Improved performance and offline support&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These are potential improvements, not claims that all of them are already implemented.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Keep a record of outdoor experiences.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Replace these placeholders with real, publicly accessible image URLs. You can also embed a short demo video.&lt;/p&gt;

&lt;h2&gt;
  
  
  🎬 11. Live Demo
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Try NatureQuest AI:&lt;/strong&gt; &lt;a href="https://drive.google.com/file/d/1E4YNQP3uqlSZSev_cjVn-vvIMQ2dOOsF/view?usp=sharing" rel="noopener noreferrer"&gt;https://drive.google.com/file/d/1E4YNQP3uqlSZSev_cjVn-vvIMQ2dOOsF/view?usp=sharing&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If the application is not deployed yet, replace this section with a short video demonstration or remove it until the demo is available.&lt;/p&gt;

&lt;h2&gt;
  
  
  💻 12. Source Code
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;GitHub Repository:&lt;/strong&gt; &lt;a href="https://github.com/Rishabh-KSingh/NatureQuest-AI" rel="noopener noreferrer"&gt;https://github.com/Rishabh-KSingh/NatureQuest-AI&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The repository contains the project source code and implementation details.&lt;/p&gt;

&lt;p&gt;If you are interested in open-source AI, nature-based applications, or creative uses of technology, feel free to explore the project and share feedback.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to Contribute
&lt;/h3&gt;

&lt;p&gt;Potential contributions include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Adding new outdoor missions&lt;/li&gt;
&lt;li&gt;Improving mission generation and validation&lt;/li&gt;
&lt;li&gt;Testing evidence verification&lt;/li&gt;
&lt;li&gt;Improving accessibility and mobile usability&lt;/li&gt;
&lt;li&gt;Reporting bugs or suggesting new features&lt;/li&gt;
&lt;li&gt;Improving documentation and setup instructions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Please follow the contribution instructions in the repository before submitting changes.&lt;/p&gt;

&lt;h2&gt;
  
  
  ⚙️ 13. Run Locally
&lt;/h2&gt;

&lt;p&gt;Use the repository's actual installation instructions if they differ from this example.&lt;/p&gt;

&lt;h3&gt;
  
  
  Prerequisites
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Node.js and the package manager used by the project&lt;/li&gt;
&lt;li&gt;Python and the project's required version&lt;/li&gt;
&lt;li&gt;Git&lt;/li&gt;
&lt;li&gt;Access to the configured AI model or inference service&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Setup
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Clone the repository&lt;/span&gt;
git clone YOUR_GITHUB_REPOSITORY_URL

&lt;span class="c"&gt;# Enter the project directory&lt;/span&gt;
&lt;span class="nb"&gt;cd &lt;/span&gt;YOUR_PROJECT_DIRECTORY
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Install frontend and backend dependencies using the instructions and dependency files included in the repository.&lt;/p&gt;

&lt;p&gt;Configure the required environment variables, then start the frontend and backend using the project's documented development commands.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; The commands above are a starting point, not a complete verified setup guide. Add the exact install, environment configuration, and run commands from your working repository before publishing.&lt;/p&gt;

&lt;h2&gt;
  
  
  💚 14. Final Thoughts
&lt;/h2&gt;

&lt;p&gt;NatureQuest AI began with a simple idea:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What if we built AI that encouraged people to spend less time looking at screens and more time looking at the world?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I wanted to explore a positive use of technology—one that inspires curiosity, supports outdoor activities, and makes reconnecting with nature more engaging.&lt;/p&gt;

&lt;p&gt;This project is my contribution to the Touch Grass challenge, and I hope it inspires other developers to experiment with open-source AI in creative, human-centered ways.&lt;/p&gt;

&lt;p&gt;Technology doesn't always have to keep us online. Sometimes, it can give us a reason to step outside.&lt;/p&gt;

&lt;p&gt;🌿 &lt;strong&gt;Build with AI. Explore with curiosity. Reconnect with nature.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I'd love to hear your feedback and ideas!&lt;/p&gt;

&lt;h1&gt;
  
  
  Hacktoberfest #OpenSourceAI #TouchGrass #NatureQuestAI #ArtificialIntelligence #OpenSource #NextJS #Gemma
&lt;/h1&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>I built my friend an AI speaking partner because knowing English isn't the same as speaking it.</title>
      <dc:creator>Rishabh Kumar</dc:creator>
      <pubDate>Mon, 05 Oct 2026 05:59:07 +0000</pubDate>
      <link>https://dev.to/rishabh_dev/i-built-my-friend-an-ai-speaking-partner-because-knowing-english-isnt-the-same-as-speaking-it-142</link>
      <guid>https://dev.to/rishabh_dev/i-built-my-friend-an-ai-speaking-partner-because-knowing-english-isnt-the-same-as-speaking-it-142</guid>
      <description>&lt;p&gt;My friend understands English.&lt;/p&gt;

&lt;p&gt;They can read it.&lt;br&gt;&lt;br&gt;
They can watch English videos.&lt;br&gt;&lt;br&gt;
They know a decent number of English words.&lt;/p&gt;

&lt;p&gt;But ask them to speak.&lt;/p&gt;

&lt;p&gt;There is a pause.&lt;/p&gt;

&lt;p&gt;They first think in Hindi, then translate the sentence into English, then worry whether the grammar is correct, and sometimes the sentence never comes out.&lt;/p&gt;

&lt;p&gt;And when they do make a mistake, they often don't know &lt;strong&gt;why&lt;/strong&gt; it was wrong.&lt;/p&gt;

&lt;p&gt;I noticed something else too.&lt;/p&gt;

&lt;p&gt;The problem wasn't a lack of English content.&lt;/p&gt;

&lt;p&gt;There are thousands of videos, grammar lessons, vocabulary apps and courses available.&lt;/p&gt;

&lt;p&gt;The problem was &lt;strong&gt;practice&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;There wasn't someone available every day who would patiently listen, correct the important mistakes, explain them, and then say:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Okay. Now say it again."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So I decided to build that person as an AI.&lt;/p&gt;

&lt;p&gt;That's how &lt;strong&gt;TalkSaathi AI&lt;/strong&gt; started.&lt;/p&gt;


&lt;h2&gt;
  
  
  What TalkSaathi does
&lt;/h2&gt;

&lt;p&gt;TalkSaathi AI is an English-speaking companion designed for someone who understands English but struggles to speak confidently.&lt;/p&gt;

&lt;p&gt;Its core idea is simple:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Listen → Understand → Recall → Speak → Correct → Repeat → Converse → Track → Adapt&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Instead of completing a grammar exercise and moving on, TalkSaathi turns a mistake into the next practice opportunity.&lt;/p&gt;

&lt;p&gt;For example, imagine my friend says:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"I take breakfast at 8 and I go college."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;TalkSaathi doesn't just say "wrong."&lt;/p&gt;
&lt;h3&gt;
  
  
  You said
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;I take breakfast at 8 and I go college.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;
  
  
  A better version
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;I have breakfast at 8 and I go to college.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;
  
  
  Why?
&lt;/h3&gt;

&lt;p&gt;We usually say &lt;strong&gt;"have breakfast"&lt;/strong&gt; in natural English.&lt;/p&gt;

&lt;p&gt;We also use &lt;strong&gt;"to"&lt;/strong&gt; before a destination.&lt;/p&gt;
&lt;h3&gt;
  
  
  More natural
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;I usually have breakfast at 8 and then go to college.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And then comes the important part:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;🎤 &lt;strong&gt;Now say it again.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The learner repeats the sentence.&lt;/p&gt;

&lt;p&gt;The AI checks the new attempt.&lt;/p&gt;

&lt;p&gt;That creates a much more useful loop:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌─────────────┐
│   Mistake   │
└──────┬──────┘
       │
       ▼
┌─────────────┐
│ Correction  │
└──────┬──────┘
       │
       ▼
┌─────────────┐
│ Explanation │
└──────┬──────┘
       │
       ▼
┌─────────────┐
│   Repeat    │
└──────┬──────┘
       │
       ▼
┌─────────────┐
│  Re-check   │
└──────┬──────┘
       │
       ▼
┌─────────────┐
│ Improvement │
└─────────────┘
       │
       └──────────────► 🔄 Next Practice
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  The problem I actually wanted to solve
&lt;/h2&gt;

&lt;p&gt;While building this, I kept coming back to one question:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why can someone understand English but still struggle to speak it?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For my friend, several things were connected.&lt;/p&gt;

&lt;p&gt;They were:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;translating from Hindi before speaking;&lt;/li&gt;
&lt;li&gt;afraid of making grammar mistakes;&lt;/li&gt;
&lt;li&gt;unsure how to form sentences naturally;&lt;/li&gt;
&lt;li&gt;using the same simple vocabulary repeatedly;&lt;/li&gt;
&lt;li&gt;not getting enough speaking practice;&lt;/li&gt;
&lt;li&gt;lacking a conversation partner.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So TalkSaathi isn't designed to make someone memorize thousands of words.&lt;/p&gt;

&lt;p&gt;It's designed to give them a place where they can &lt;strong&gt;actually speak&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  The first practice session
&lt;/h2&gt;

&lt;p&gt;When a learner opens TalkSaathi for the first time, there is no complicated registration.&lt;/p&gt;

&lt;p&gt;They create a small profile:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;English level;&lt;/li&gt;
&lt;li&gt;learning goal;&lt;/li&gt;
&lt;li&gt;interests;&lt;/li&gt;
&lt;li&gt;preferred topics;&lt;/li&gt;
&lt;li&gt;daily practice time;&lt;/li&gt;
&lt;li&gt;speaking goal.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;They can choose:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;10, 15, 20 or 30 minutes.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;TalkSaathi then creates a practice session based on their level and previous performance.&lt;/p&gt;

&lt;p&gt;A typical session might look like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;        ┌────────────┐
        │   Listen   │
        └─────┬──────┘
              ↓
        ┌────────────┐
        │ Understand │
        └─────┬──────┘
              ↓
        ┌────────────┐
        │   Recall   │
        └─────┬──────┘
              ↓
        ┌────────────┐
        │    Speak   │
        └─────┬──────┘
              ↓
        ┌────────────┐
        │   Correct  │
        └─────┬──────┘
              ↓
        ┌────────────┐
        │   Repeat   │
        └─────┬──────┘
              ↓
        ┌────────────┐
        │Conversation │
        └────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The important part is that the practice doesn't end after the first answer.&lt;/p&gt;

&lt;p&gt;The learner gets another chance.&lt;/p&gt;




&lt;h2&gt;
  
  
  I didn't want Hindi to become a dependency
&lt;/h2&gt;

&lt;p&gt;One feature I particularly wanted was a &lt;strong&gt;Hindi → English speaking bridge&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Because when someone is learning English, sometimes they know exactly what they want to say—but they don't know how to say it in English.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"मुझे कल कॉलेज जाना है।"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;TalkSaathi can turn that into:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;I have to go to college tomorrow.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Then it explains the sentence and asks:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;🎤 &lt;strong&gt;Now say it in English.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;After the learner repeats it, TalkSaathi doesn't stop at the translation.&lt;/p&gt;

&lt;p&gt;It continues:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;What do you usually do at college?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is important.&lt;/p&gt;

&lt;p&gt;Hindi is not supposed to become the final destination.&lt;/p&gt;

&lt;p&gt;The goal is to gradually move from:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Hindi thought
     ↓
English translation
     ↓
English speaking
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;towards:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;English thought
     ↓
English speaking
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  It also remembers mistakes
&lt;/h2&gt;

&lt;p&gt;Another problem with normal practice is that the same mistake can happen again tomorrow.&lt;/p&gt;

&lt;p&gt;And again next week.&lt;/p&gt;

&lt;p&gt;TalkSaathi keeps a lightweight local history of recurring mistakes.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Past tense       8 mistakes
Prepositions     6 mistakes
Articles         4 mistakes
Vocabulary       3 mistakes
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If the learner repeatedly says:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"I didn't went."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;TalkSaathi can recognize that as a recurring pattern.&lt;/p&gt;

&lt;p&gt;The next practice can then include:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Past Tense Challenge&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So the system isn't only asking:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"What did you say?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It's also asking:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"What does this learner need to practice next?"&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That's where the personalization comes from.&lt;/p&gt;




&lt;h2&gt;
  
  
  Conversation mode
&lt;/h2&gt;

&lt;p&gt;Sometimes you don't want a lesson.&lt;/p&gt;

&lt;p&gt;You just want to talk.&lt;/p&gt;

&lt;p&gt;TalkSaathi has a free conversation mode with topics such as:&lt;/p&gt;

&lt;h3&gt;
  
  
  Daily life
&lt;/h3&gt;

&lt;p&gt;Family, food, college, hobbies, friends.&lt;/p&gt;

&lt;h3&gt;
  
  
  Professional
&lt;/h3&gt;

&lt;p&gt;Job interviews, meetings, presentations and workplace situations.&lt;/p&gt;

&lt;h3&gt;
  
  
  Social
&lt;/h3&gt;

&lt;p&gt;Shopping, restaurants, travel and asking directions.&lt;/p&gt;

&lt;h3&gt;
  
  
  Education &amp;amp; Technology
&lt;/h3&gt;

&lt;p&gt;Programming, AI, college and learning.&lt;/p&gt;

&lt;p&gt;Or you can simply enter your own topic.&lt;/p&gt;

&lt;p&gt;The AI doesn't try to correct every single word while you're talking.&lt;/p&gt;

&lt;p&gt;That would make the conversation feel like an exam.&lt;/p&gt;

&lt;p&gt;Instead, it keeps the conversation natural and saves deeper feedback for the end.&lt;/p&gt;

&lt;p&gt;A conversation report can show:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Grammar       78%
Fluency       81%
Vocabulary    74%

Important corrections: 4

Focus next:
1. Past tense
2. Articles
3. Prepositions
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  I wanted the AI to feel different in different moments
&lt;/h2&gt;

&lt;p&gt;TalkSaathi has four personalities, depending on what the learner is doing.&lt;/p&gt;

&lt;p&gt;During learning:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Friendly teacher&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;During conversation:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Natural friend&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;During correction:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Supportive tutor&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;During speaking practice:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Encouraging coach&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The AI should never make the learner feel embarrassed about making mistakes.&lt;/p&gt;

&lt;p&gt;A mistake is not a failure.&lt;/p&gt;

&lt;p&gt;It's the next thing to practice.&lt;/p&gt;




&lt;h2&gt;
  
  
  What happens when you don't know the sentence at all?
&lt;/h2&gt;

&lt;p&gt;I also wanted TalkSaathi to work outside a normal lesson.&lt;/p&gt;

&lt;p&gt;So I added a photo-based grammar feature.&lt;/p&gt;

&lt;p&gt;A learner can upload a photo containing English text.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"I am going market yesterday."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;TalkSaathi extracts the text and analyzes it.&lt;/p&gt;

&lt;p&gt;It returns:&lt;/p&gt;

&lt;h3&gt;
  
  
  Original
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;I am going market yesterday.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Correct
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;I went to the market yesterday.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Why?
&lt;/h3&gt;

&lt;p&gt;"Yesterday" tells us that the action happened in the past, so we use &lt;strong&gt;went&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Natural version
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;I went to the market yesterday.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And then:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;🎤 &lt;strong&gt;Try saying the corrected sentence.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So even a photo becomes a speaking exercise.&lt;/p&gt;




&lt;h1&gt;
  
  
  How I built it
&lt;/h1&gt;

&lt;p&gt;The architecture is intentionally split into two important layers:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The open-weight model is the brain.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ElevenLabs is the voice interface.&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;╭─────────────────────────────────────────────────────────────╮
│                    🗣️  TALKSAATHI AI                       │
│              Your AI Saathi for English Speaking           │
╰─────────────────────────────┬───────────────────────────────╯
                              │
                              ▼
                    ┌───────────────────┐
                    │  Next.js Frontend │
                    └─────────┬─────────┘
                              │
              ┌───────────────┼────────────────┐
              │               │                │
              ▼               ▼                ▼
        🎤 VOICE INPUT    ⌨️ TEXT INPUT    🖼️ IMAGE INPUT
              │               │                │
              ▼               │                ▼
       ┌─────────────┐        │         ┌─────────────┐
       │ ElevenLabs  │        │         │     OCR     │
       │     STT     │        │         └──────┬──────┘
       └──────┬──────┘        │                │
              └───────────────┼────────────────┘
                              ▼
                    ┌───────────────────┐
                    │      🧠 GEMMA     │
                    │  Open-weight AI   │
                    │       Brain       │
                    └─────────┬─────────┘
                              │
             ┌────────────────┼────────────────┐
             │                │                │
             ▼                ▼                ▼
      ✨ Correction     💬 Conversation   🎯 Personalization
             │                │                │
             └────────────────┼────────────────┘
                              ▼
                    ┌───────────────────┐
                    │  ElevenLabs TTS   │
                    │   AI Voice Output │
                    └─────────┬─────────┘
                              │
                              ▼
                    🔊 SPEAK • PRACTICE
                              │
                              ▼
                       👤 THE LEARNER
                              │
                              └───────────────┐
                                              │
                                  🔄 Repeat &amp;amp; Improve
                                              │
                                              └───► 🧠 Gemma
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The application is built with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Next.js&lt;/li&gt;
&lt;li&gt;TypeScript&lt;/li&gt;
&lt;li&gt;Tailwind CSS&lt;/li&gt;
&lt;li&gt;shadcn/ui&lt;/li&gt;
&lt;li&gt;Gemma / compatible open-weight inference&lt;/li&gt;
&lt;li&gt;Hugging Face / compatible inference provider&lt;/li&gt;
&lt;li&gt;ElevenLabs Speech-to-Text&lt;/li&gt;
&lt;li&gt;ElevenLabs Text-to-Speech&lt;/li&gt;
&lt;li&gt;OCR&lt;/li&gt;
&lt;li&gt;LocalStorage&lt;/li&gt;
&lt;li&gt;Vercel&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The backend uses Next.js API routes, so API credentials stay on the server.&lt;/p&gt;

&lt;p&gt;For the MVP, I deliberately avoided forcing users to create an account.&lt;/p&gt;

&lt;p&gt;Learning data such as progress, mistakes, phrases and preferences can be stored locally.&lt;/p&gt;

&lt;p&gt;Raw voice recordings and uploaded photos don't need to be permanently stored.&lt;/p&gt;




&lt;h1&gt;
  
  
  Why an open-weight model?
&lt;/h1&gt;

&lt;p&gt;This was an important choice for me.&lt;/p&gt;

&lt;p&gt;I didn't want to build:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Frontend → closed AI API → response&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;and call that the whole product.&lt;/p&gt;

&lt;p&gt;The open-weight model is responsible for the actual language-learning intelligence:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;grammar correction;&lt;/li&gt;
&lt;li&gt;explanations;&lt;/li&gt;
&lt;li&gt;Hindi → English conversion;&lt;/li&gt;
&lt;li&gt;conversation;&lt;/li&gt;
&lt;li&gt;lesson generation;&lt;/li&gt;
&lt;li&gt;mistake analysis;&lt;/li&gt;
&lt;li&gt;personalized exercises;&lt;/li&gt;
&lt;li&gt;phrase suggestions;&lt;/li&gt;
&lt;li&gt;image-text language analysis.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That gives TalkSaathi a separate &lt;strong&gt;reasoning layer&lt;/strong&gt; from its voice layer.&lt;/p&gt;

&lt;p&gt;The architecture becomes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                 🧠 GEMMA
                    │
                    ▼
              ┌───────────┐
              │   BRAIN   │
              └─────┬─────┘
                    │
                    │ Understand
                    │ Correct
                    │ Explain
                    │ Personalize
                    │ Converse
                    │ Generate
                    ▼
           ┌─────────────────┐
           │   ElevenLabs    │
           │      VOICE      │
           └────────┬────────┘
                    │
                    ▼
              🎤 Listen &amp;amp; Speak
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This also means the AI layer can evolve independently.&lt;/p&gt;

&lt;p&gt;A different open model can be tested later without rebuilding the entire product.&lt;/p&gt;




&lt;h1&gt;
  
  
  Why not just use Hindi → English translation?
&lt;/h1&gt;

&lt;p&gt;Because translation isn't the goal.&lt;/p&gt;

&lt;p&gt;If the app simply translated everything for the learner, the learner could become dependent on translation.&lt;/p&gt;

&lt;p&gt;That's why TalkSaathi uses translation as a temporary bridge.&lt;/p&gt;

&lt;p&gt;The sequence is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"I’m stuck"
      ↓
   Hindi
      ↓
English sentence
      ↓
Understand why
      ↓
Say it yourself
      ↓
Continue in English
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The final goal is not better translation.&lt;/p&gt;

&lt;p&gt;It's &lt;strong&gt;less need for translation&lt;/strong&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  What building this taught me
&lt;/h1&gt;

&lt;p&gt;One thing became obvious while designing the product:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The hardest part isn't getting an AI model to generate a correction.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The harder question is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What should happen after the correction?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If the app simply says:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Correct sentence: ..."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;the learning moment is over.&lt;/p&gt;

&lt;p&gt;But if it says:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Now you try."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;the mistake becomes practice.&lt;/p&gt;

&lt;p&gt;Then another question appears:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What if the learner makes the same mistake tomorrow?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That's why TalkSaathi has mistake memory.&lt;/p&gt;

&lt;p&gt;And then:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What should they practice tomorrow?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That's why the system uses the learner's history to recommend the next activity.&lt;/p&gt;

&lt;p&gt;The product became much more interesting once I stopped thinking about individual AI responses and started thinking about the &lt;strong&gt;learning loop&lt;/strong&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  The part I'm most excited about
&lt;/h1&gt;

&lt;p&gt;It's not the dashboard.&lt;/p&gt;

&lt;p&gt;It's not the number of features.&lt;/p&gt;

&lt;p&gt;It's this tiny interaction:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"Now say it again."&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Because that's the difference between an AI that answers questions and an AI that actually helps someone practice a skill.&lt;/p&gt;

&lt;p&gt;TalkSaathi is designed around that idea.&lt;/p&gt;




&lt;h1&gt;
  
  
  Handing it to my friend
&lt;/h1&gt;

&lt;p&gt;The real test isn't whether I can make the demo work.&lt;/p&gt;

&lt;p&gt;The real test is whether my friend can open it tomorrow, press &lt;strong&gt;Start Practice&lt;/strong&gt;, speak without feeling embarrassed, make mistakes, and want to come back again.&lt;/p&gt;

&lt;p&gt;That's what I wanted to build.&lt;/p&gt;

&lt;p&gt;Not another English course.&lt;/p&gt;

&lt;p&gt;Not another chatbot.&lt;/p&gt;

&lt;p&gt;A &lt;strong&gt;speaking companion&lt;/strong&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  What's next?
&lt;/h1&gt;

&lt;p&gt;The current version focuses on the core speaking experience.&lt;/p&gt;

&lt;p&gt;There are still things I want to improve:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;more advanced pronunciation analysis;&lt;/li&gt;
&lt;li&gt;better adaptive lesson generation;&lt;/li&gt;
&lt;li&gt;cloud sync;&lt;/li&gt;
&lt;li&gt;user accounts;&lt;/li&gt;
&lt;li&gt;PostgreSQL + Prisma;&lt;/li&gt;
&lt;li&gt;mobile support;&lt;/li&gt;
&lt;li&gt;more languages;&lt;/li&gt;
&lt;li&gt;teacher dashboards;&lt;/li&gt;
&lt;li&gt;community speaking challenges.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But I want to validate the most important thing first:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Does regular speaking practice with TalkSaathi actually make my friend more confident?&lt;/strong&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  Prize Category
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Best Use of ElevenLabs&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;TalkSaathi uses ElevenLabs for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Speech-to-Text;&lt;/li&gt;
&lt;li&gt;Text-to-Speech;&lt;/li&gt;
&lt;li&gt;spoken learning content;&lt;/li&gt;
&lt;li&gt;AI conversation voice.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The reasoning layer remains an open-weight model, while ElevenLabs handles the voice interaction.&lt;/p&gt;




&lt;h1&gt;
  
  
  Try TalkSaathi
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Source Code:&lt;/strong&gt; &lt;a href="https://github.com/Rishabh-KSingh/TalkSaathi-AI" rel="noopener noreferrer"&gt;https://github.com/Rishabh-KSingh/TalkSaathi-AI&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Demo Video:&lt;/strong&gt; &lt;a href="https://drive.google.com/file/d/17Pd4YNAB7QNAFNTbSCoJyoxhqDwOKSQ3/view?usp=sharing" rel="noopener noreferrer"&gt;https://drive.google.com/file/d/17Pd4YNAB7QNAFNTbSCoJyoxhqDwOKSQ3/view?usp=sharing&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;I started with a simple observation:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Knowing English and speaking English are two different skills.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So I built something for someone who needed more opportunities to speak.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;TalkSaathi AI — Your AI Saathi for English Speaking.&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Don't just learn English. Practice speaking it.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>Building KisanMitra AI: A Full-Stack Voice Agent for Indian Farmers 🌾🎙️</title>
      <dc:creator>Rishabh Kumar</dc:creator>
      <pubDate>Sat, 15 Aug 2026 17:00:11 +0000</pubDate>
      <link>https://dev.to/rishabh_dev/-building-kisanmitra-ai-empowering-indian-farmers-with-a-full-stack-voice-agent-15f</link>
      <guid>https://dev.to/rishabh_dev/-building-kisanmitra-ai-empowering-indian-farmers-with-a-full-stack-voice-agent-15f</guid>
      <description>&lt;p&gt;&lt;em&gt;Day 10 of the **10 Days of Voice Agents – VoiceForBharat Edition&lt;/em&gt;* Challenge | Farm &amp;amp; Field Track*&lt;/p&gt;

&lt;p&gt;Imagine holding a smartphone in the middle of a mustard field in rural India.&lt;/p&gt;

&lt;p&gt;Your hands are covered in soil. The sun makes the screen difficult to read. You need an answer about your crop, weather, or mandi prices — but typing a long query or navigating through complicated portals isn't practical.&lt;/p&gt;

&lt;p&gt;Now imagine simply pressing a button and saying:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"भैया, कल बारिश होगी क्या? और धान में भूरा धब्बा रोग लगा है, क्या करें?"&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Instead of searching through menus, you can simply talk.&lt;/p&gt;

&lt;p&gt;That's the idea behind &lt;strong&gt;KisanMitra AI (किसान मित्र AI)&lt;/strong&gt; — a full-stack, real-time bilingual voice agent designed specifically around agricultural assistance.&lt;/p&gt;

&lt;p&gt;The project combines:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🎙️ &lt;strong&gt;Murf Falcon TTS&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;⚡ &lt;strong&gt;LiveKit Agents&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;📝 &lt;strong&gt;Deepgram STT&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;🧠 &lt;strong&gt;Google Gemini&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;🌐 &lt;strong&gt;Next.js 15&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;🗄️ &lt;strong&gt;SQLite&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;📞 &lt;strong&gt;SIP-based calling&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;🚨 &lt;strong&gt;Human escalation&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;🤝 &lt;strong&gt;Specialist agent handoff&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This article is the complete story of how I built KisanMitra AI during the &lt;strong&gt;10 Days of Voice Agents – VoiceForBharat Edition&lt;/strong&gt; challenge.&lt;/p&gt;




&lt;h1&gt;
  
  
  🇮🇳 1. Why Voice for Indian Farmers?
&lt;/h1&gt;

&lt;p&gt;Voice assistants are often treated as convenience tools.&lt;/p&gt;

&lt;p&gt;But in agriculture, voice can solve a much more practical problem: &lt;strong&gt;accessibility&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Farmers may be working outdoors, using their hands, dealing with sunlight, speaking in Hindi or regional languages, and needing information quickly.&lt;/p&gt;

&lt;p&gt;The interaction shouldn't look like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Open App
   ↓
Find Menu
   ↓
Select Category
   ↓
Fill Form
   ↓
Type Question
   ↓
Wait for Result
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It should feel more like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;👨‍🌾 Farmer
    ↓
🎙️ "मेरी फसल में ये समस्या हो रही है..."
    ↓
🤖 KisanMitra AI
    ↓
🔊 Natural Voice Response
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For the &lt;strong&gt;Farm &amp;amp; Field track&lt;/strong&gt;, my objective was simple:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Make agricultural assistance as conversational and accessible as possible.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h1&gt;
  
  
  🏗️ 2. End-to-End System Architecture
&lt;/h1&gt;

&lt;p&gt;KisanMitra AI connects a real-time voice pipeline with AI reasoning, tools, memory, analytics, telephony and human escalation.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                         👨‍🌾 FARMER
                             │
                 ┌───────────┴───────────┐
                 │                       │
          🌐 Web Browser            📞 Phone / SIP
                 │                       │
                 └───────────┬───────────┘
                             ▼
                       ⚡ LIVEKIT
                    Real-Time Audio
                             │
                             ▼
                    🎙️ Silero VAD
                  Turn Detection
                             │
                             ▼
                    📝 Deepgram STT
                    Hindi / Hinglish
                             │
                             ▼
                   🧠 KISANMITRA AGENT
                             │
                ┌────────────┼────────────┐
                ▼            ▼            ▼
             Gemini       Memory        Tools
                │            │            │
                │            ▼            ├── Weather
                │         SQLite           ├── Farmer Profile
                │                           └── Escalation
                │
                ▼
             Decision
                │
        ┌───────┴────────┐
        ▼                ▼
   Normal Answer    Complex Problem
        │                │
        │                ▼
        │          🌾 FASAL DOCTOR
        │          Specialist Agent
        │
        └────────┬───────────────┘
                 ▼
            🔊 MURF FALCON
             Text-to-Speech
                 │
                 ▼
              LIVEKIT
                 │
                 ▼
           👨‍🌾 FARMER HEARS
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The architecture and integration layers are based on the project structure documented during the build.&lt;/p&gt;




&lt;h1&gt;
  
  
  🔄 3. How a Voice Conversation Works
&lt;/h1&gt;

&lt;p&gt;Let's follow one conversation from beginning to end.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 1 — Farmer speaks
&lt;/h3&gt;

&lt;p&gt;The farmer speaks through the browser microphone or a supported phone/SIP connection.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 2 — LiveKit transports audio
&lt;/h3&gt;

&lt;p&gt;LiveKit handles the real-time audio communication.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 3 — Voice Activity Detection
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Silero VAD&lt;/strong&gt; detects when the farmer starts and stops speaking.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 4 — Speech-to-Text
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Deepgram Nova-3 STT&lt;/strong&gt; converts the audio into text.&lt;/p&gt;

&lt;p&gt;It is designed to handle Hindi/Hinglish conversations and code-switching.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"सरसों का Mandi Bhav क्या है?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Step 5 — Gemini processes the request
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Google Gemini&lt;/strong&gt; receives the transcript and relevant context.&lt;/p&gt;

&lt;p&gt;The agent decides whether it needs to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Answer directly&lt;/li&gt;
&lt;li&gt;Access memory&lt;/li&gt;
&lt;li&gt;Call a tool&lt;/li&gt;
&lt;li&gt;Escalate the issue&lt;/li&gt;
&lt;li&gt;Hand the conversation to a specialist&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Step 6 — Murf Falcon generates the voice
&lt;/h3&gt;

&lt;p&gt;The generated response is sent to &lt;strong&gt;Murf Falcon TTS&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The response is then streamed back as audio.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 7 — Farmer hears the response
&lt;/h3&gt;

&lt;p&gt;The audio travels through LiveKit back to the user.&lt;/p&gt;

&lt;p&gt;So the complete pipeline is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;🎙️ Speech
   ↓
LiveKit
   ↓
Silero VAD
   ↓
Deepgram STT
   ↓
Google Gemini
   ↓
Tools / Memory
   ↓
Murf Falcon
   ↓
LiveKit
   ↓
🔊 Speech
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  ⚡ 4. Why Low Latency Matters
&lt;/h1&gt;

&lt;p&gt;Voice conversations feel very different from text conversations.&lt;/p&gt;

&lt;p&gt;If an AI takes several seconds before responding, users may think:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Call cut gaya kya?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That's why latency became an important part of this project.&lt;/p&gt;

&lt;p&gt;With streaming TTS, the project targeted approximately &lt;strong&gt;114–135 ms TTFB&lt;/strong&gt; for the Murf Falcon voice layer in the tested setup.&lt;/p&gt;

&lt;p&gt;The goal was to make the response feel immediate rather than waiting for the entire response to be generated first.&lt;/p&gt;




&lt;h1&gt;
  
  
  🎨 5. Building the Frontend
&lt;/h1&gt;

&lt;p&gt;I didn't want KisanMitra AI to look like a basic chatbot.&lt;/p&gt;

&lt;p&gt;I built a custom &lt;strong&gt;Next.js 15 + Tailwind CSS + shadcn/ui&lt;/strong&gt; interface with an agriculture-inspired emerald/green theme.&lt;/p&gt;

&lt;h2&gt;
  
  
  🌿 Main UI Features
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Glassmorphism
&lt;/h3&gt;

&lt;p&gt;Frosted glass cards and layered panels give the interface a modern look.&lt;/p&gt;

&lt;h3&gt;
  
  
  🎙️ Listening State
&lt;/h3&gt;

&lt;p&gt;The UI visually indicates when the agent is listening.&lt;/p&gt;

&lt;h3&gt;
  
  
  🌱 Thinking State
&lt;/h3&gt;

&lt;p&gt;A separate state indicates that the AI is processing the request.&lt;/p&gt;

&lt;h3&gt;
  
  
  🔊 Speaking State
&lt;/h3&gt;

&lt;p&gt;Audio visualizations show when the agent is responding.&lt;/p&gt;

&lt;h3&gt;
  
  
  💬 Live Transcript
&lt;/h3&gt;

&lt;p&gt;The user can see the conversation while speaking with the agent.&lt;/p&gt;




&lt;h1&gt;
  
  
  📦 6. Six Agricultural Modules
&lt;/h1&gt;

&lt;p&gt;The main dashboard contains six smart agricultural modules.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Module&lt;/th&gt;
&lt;th&gt;Purpose&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;⛅ &lt;strong&gt;Weather Forecast&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Weather, rain and temperature information&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🌱 &lt;strong&gt;Crop Advisory&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Crop and farming guidance&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;📈 &lt;strong&gt;Mandi Bhav&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Market-related information&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🐛 &lt;strong&gt;Disease Control&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Crop disease and pest assistance&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🐄 &lt;strong&gt;Livestock Care&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Animal and dairy-related assistance&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🏛️ &lt;strong&gt;Government Schemes&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Agricultural scheme information&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Example voice prompts:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"क्या कल मेरे खेत में बारिश होगी?"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"गेहूं की पहली सिंचाई कब करनी चाहिए?"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"धान की पत्तियों में धब्बे आ गए हैं, क्या करूं?"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"आज मंडी में सरसों का भाव क्या है?"&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;These modules are part of the frontend experience documented in the project.&lt;/p&gt;




&lt;h1&gt;
  
  
  🚀 7. The 9-Day Technical Journey
&lt;/h1&gt;

&lt;p&gt;KisanMitra AI wasn't built in one day.&lt;/p&gt;

&lt;p&gt;It evolved throughout the challenge.&lt;/p&gt;

&lt;h2&gt;
  
  
  Day 1 — Give the Agent a Voice 🎙️
&lt;/h2&gt;

&lt;p&gt;The first step was creating the basic real-time voice agent.&lt;/p&gt;

&lt;p&gt;I connected the voice pipeline and integrated &lt;strong&gt;Murf Falcon TTS&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This transformed the project from a text-based concept into a conversational assistant.&lt;/p&gt;




&lt;h2&gt;
  
  
  Day 2 — Build the User Interface 🎨
&lt;/h2&gt;

&lt;p&gt;I moved beyond the backend and created a proper frontend.&lt;/p&gt;

&lt;p&gt;The goal was to give users a simple way to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Start a conversation&lt;/li&gt;
&lt;li&gt;See the agent state&lt;/li&gt;
&lt;li&gt;View transcripts&lt;/li&gt;
&lt;li&gt;Interact with agricultural modules&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Day 3 — Add Memory 🧠
&lt;/h2&gt;

&lt;p&gt;A useful assistant shouldn't forget everything after every call.&lt;/p&gt;

&lt;p&gt;I introduced persistent storage using SQLite so that useful farmer information and interaction data could be retained.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User
 ├── Name
 ├── Language
 ├── District
 ├── Crop
 └── Previous Interaction
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Day 4 — Connect Real-World Tools 🔧
&lt;/h2&gt;

&lt;p&gt;The agent needed access to information outside the LLM.&lt;/p&gt;

&lt;p&gt;I added domain tools that allow KisanMitra AI to perform actions such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Farmer profile lookup&lt;/li&gt;
&lt;li&gt;Profile updates&lt;/li&gt;
&lt;li&gt;Weather lookup&lt;/li&gt;
&lt;li&gt;Escalation&lt;/li&gt;
&lt;li&gt;Call status logging&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The core tools are documented around the &lt;code&gt;FarmerTools&lt;/code&gt; layer in the project.&lt;/p&gt;




&lt;h2&gt;
  
  
  Day 5 — Make the Agent Proactive 📞
&lt;/h2&gt;

&lt;p&gt;Instead of always waiting for a farmer to start a conversation, I explored outbound SIP calling.&lt;/p&gt;

&lt;p&gt;This opens the possibility of proactive alerts.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Weather API
     ↓
Severe Weather Detected
     ↓
KisanMitra AI
     ↓
📞 Outbound Voice Call
     ↓
👨‍🌾 Farmer
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Day 6 — Human Escalation 🚨
&lt;/h2&gt;

&lt;p&gt;AI shouldn't pretend to know everything.&lt;/p&gt;

&lt;p&gt;For complex or serious cases, KisanMitra AI can escalate the issue.&lt;/p&gt;

&lt;p&gt;The system can create a unique reference such as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;KISAN-7842
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;and send the relevant escalation information through a Discord webhook.&lt;/p&gt;

&lt;p&gt;This creates a human-in-the-loop workflow.&lt;/p&gt;




&lt;h2&gt;
  
  
  Day 7 — Analytics Dashboard 📊
&lt;/h2&gt;

&lt;p&gt;Once the agent could handle conversations, I needed to understand how it was performing.&lt;/p&gt;

&lt;p&gt;So I built an analytics dashboard using:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Next.js + SQLite&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The dashboard can track:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Total calls&lt;/li&gt;
&lt;li&gt;Successful calls&lt;/li&gt;
&lt;li&gt;Failed calls&lt;/li&gt;
&lt;li&gt;Call logs&lt;/li&gt;
&lt;li&gt;Session information&lt;/li&gt;
&lt;li&gt;Conversation data&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Day 8 — Specialist Agent Handoff 🤝
&lt;/h2&gt;

&lt;p&gt;One of the most interesting additions was the &lt;strong&gt;Fasal Doctor&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Instead of forcing one agent to handle every agricultural problem:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                    KisanMitra AI
                         │
             ┌───────────┴───────────┐
             │                       │
       General Query          Complex Crop Issue
             │                       │
             ▼                       ▼
         Response              🌾 Fasal Doctor
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The specialist-agent concept allows complex crop-related conversations to be routed to a dedicated agent.&lt;/p&gt;




&lt;h2&gt;
  
  
  Day 9 — Bring Everything Together 🚀
&lt;/h2&gt;

&lt;p&gt;By this stage, KisanMitra AI combined:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Voice + Memory + Tools + Calling + Human Escalation + Analytics + Specialist Handoff&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The project had evolved from a basic voice assistant into a much more complete voice-agent architecture.&lt;/p&gt;




&lt;h1&gt;
  
  
  📂 8. Project Folder Structure
&lt;/h1&gt;

&lt;p&gt;The project follows a monorepo-style structure separating the Python voice-agent backend from the Next.js frontend.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;murf-livekit-starter/
│
├── backend/
│   ├── src/
│   │   ├── agent.py
│   │   └── db.py
│   │
│   ├── tests/
│   │   ├── test_agent.py
│   │   ├── test_day5.py
│   │   └── test_day8.py
│   │
│   ├── .env.example
│   ├── .env.local
│   ├── pyproject.toml
│   └── kisan_mitra.db
│
├── frontend/
│   ├── app/
│   │   ├── api/
│   │   │   ├── token/
│   │   │   │   └── route.ts
│   │   │   └── analytics/
│   │   │       └── route.ts
│   │   │
│   │   ├── dashboard/
│   │   │   └── page.tsx
│   │   │
│   │   ├── layout.tsx
│   │   ├── page.tsx
│   │   └── globals.css
│   │
│   ├── components/
│   │   ├── app/
│   │   ├── agents-ui/
│   │   └── ui/
│   │
│   ├── app-config.ts
│   ├── package.json
│   └── .env.local
│
├── start_app.sh
├── start_app.ps1
├── AGENTS.md
├── README.md
└── BLOG_DEV_COMMUNITY.md
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This structure follows the backend/frontend separation documented in the source project.&lt;/p&gt;




&lt;h1&gt;
  
  
  🧠 9. Important Backend Components
&lt;/h1&gt;

&lt;h2&gt;
  
  
  &lt;code&gt;backend/src/agent.py&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;This is the core of the voice agent.&lt;/p&gt;

&lt;p&gt;It connects:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;STT
 ↓
LLM
 ↓
Tools
 ↓
TTS
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It also contains the agent instructions and farmer-specific tools.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;code&gt;backend/src/db.py&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;This manages SQLite persistence.&lt;/p&gt;

&lt;p&gt;The project uses tables such as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;users
call_logs
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;users&lt;/code&gt; table can store useful profile information, while &lt;code&gt;call_logs&lt;/code&gt; stores session-related information.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;code&gt;frontend/app/api/token/route.ts&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;This API route generates LiveKit access tokens and handles agent dispatch configuration.&lt;/p&gt;

&lt;p&gt;This is important because the frontend needs a secure way to establish a LiveKit session.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;code&gt;frontend/app/dashboard/page.tsx&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;This page provides the analytics dashboard.&lt;/p&gt;

&lt;p&gt;It displays information such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Total calls&lt;/li&gt;
&lt;li&gt;Success rate&lt;/li&gt;
&lt;li&gt;Active sessions&lt;/li&gt;
&lt;li&gt;Call logs&lt;/li&gt;
&lt;li&gt;Transcripts&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  🚧 10. The Developer Struggles
&lt;/h1&gt;

&lt;p&gt;No real project is complete without debugging.&lt;/p&gt;

&lt;p&gt;These were two of my biggest lessons.&lt;/p&gt;




&lt;h2&gt;
  
  
  💥 Struggle #1 — The Silent Agent
&lt;/h2&gt;

&lt;p&gt;On Day 1, everything appeared to be running.&lt;/p&gt;

&lt;p&gt;The backend was active.&lt;/p&gt;

&lt;p&gt;The frontend connected.&lt;/p&gt;

&lt;p&gt;The microphone worked.&lt;/p&gt;

&lt;p&gt;But the agent was completely silent.&lt;/p&gt;

&lt;p&gt;After hours of debugging, I found the issue.&lt;/p&gt;

&lt;p&gt;My &lt;code&gt;.env.local&lt;/code&gt; contained:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# ❌ Wrong
AGENT_NAME=
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The agent name was empty.&lt;/p&gt;

&lt;p&gt;I changed it to:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# ✅ Fixed
AGENT_NAME=my-agent
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After that, the correct agent dispatch was triggered and the voice agent finally started speaking.&lt;/p&gt;

&lt;h3&gt;
  
  
  Lesson learned:
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Always check environment variables before assuming the entire voice pipeline is broken.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The project documentation specifically identifies explicit agent routing through &lt;code&gt;AGENT_NAME&lt;/code&gt; as part of the LiveKit token/dispatch setup.&lt;/p&gt;




&lt;h1&gt;
  
  
  💥 Struggle #2 — The Beautiful but Useless Mic Button 😅
&lt;/h1&gt;

&lt;p&gt;I created a beautiful animated microphone button.&lt;/p&gt;

&lt;p&gt;It looked amazing.&lt;/p&gt;

&lt;p&gt;But when I clicked it...&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Nothing happened.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The problem?&lt;/p&gt;

&lt;p&gt;I had designed the UI but hadn't connected the button to the actual LiveKit session lifecycle.&lt;/p&gt;

&lt;p&gt;The fix was connecting it with &lt;code&gt;useSessionContext()&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tsx"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;useSessionContext&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@livekit/components-react&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;ActiveMicButton&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;session&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;useSessionContext&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;handleToggle&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;async &lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;session&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;state&lt;/span&gt; &lt;span class="o"&gt;!==&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;connected&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;session&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;start&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;session&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;end&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="p"&gt;};&lt;/span&gt;

  &lt;span class="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;button&lt;/span&gt; &lt;span class="na"&gt;onClick&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;handleToggle&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
      Start Conversation
    &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;button&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Once connected to:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tsx"&gt;&lt;code&gt;&lt;span class="nx"&gt;session&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;start&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;the button actually started the voice session.&lt;/p&gt;

&lt;h3&gt;
  
  
  Lesson learned:
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;A beautiful UI is useless if it isn't connected to the actual application logic.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h1&gt;
  
  
  🛠️ 11. How You Can Build Your Own Voice Agent
&lt;/h1&gt;

&lt;p&gt;If you're new to voice AI, start with four major components.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌──────────────┐
│     STT      │
│  Deepgram    │
└──────┬───────┘
       ↓
┌──────────────┐
│     LLM      │
│ Gemini / GPT │
└──────┬───────┘
       ↓
┌──────────────┐
│     TTS      │
│ Murf Falcon  │
└──────┬───────┘
       ↓
┌──────────────┐
│  LiveKit     │
│  WebRTC      │
└──────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  1. Speech-to-Text
&lt;/h3&gt;

&lt;p&gt;Convert the user's voice into text.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; Deepgram&lt;/p&gt;

&lt;h3&gt;
  
  
  2. LLM
&lt;/h3&gt;

&lt;p&gt;The brain of the agent.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; Google Gemini&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Text-to-Speech
&lt;/h3&gt;

&lt;p&gt;Convert the generated answer back into speech.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; Murf Falcon&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Real-Time Transport
&lt;/h3&gt;

&lt;p&gt;Move audio between the user and agent.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; LiveKit&lt;/p&gt;

&lt;p&gt;The project uses this four-part STT → LLM → TTS → real-time transport architecture.&lt;/p&gt;




&lt;h1&gt;
  
  
  🔐 12. Security: Don't Leak Your API Keys
&lt;/h1&gt;

&lt;p&gt;This is extremely important when building AI applications.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Never commit:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.env
.env.local
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;to GitHub.&lt;/p&gt;

&lt;p&gt;Instead:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.env.example
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;should contain only the required variable names.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;MURF_API_KEY=
LIVEKIT_API_KEY=
LIVEKIT_API_SECRET=
DEEPGRAM_API_KEY=
GOOGLE_API_KEY=
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And the real values should remain in your local environment.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;🚨 &lt;strong&gt;Never publish real API keys in a public GitHub repository.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h1&gt;
  
  
  🔮 13. What's Next for KisanMitra AI?
&lt;/h1&gt;

&lt;p&gt;KisanMitra AI is only the beginning.&lt;/p&gt;

&lt;h2&gt;
  
  
  📱 WhatsApp Voice Notes
&lt;/h2&gt;

&lt;p&gt;The next step is making the assistant accessible through WhatsApp voice messages.&lt;/p&gt;

&lt;p&gt;A farmer could simply send:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;🎙️ Voice Note&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;and receive:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;🔊 Voice Answer&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  🗣️ Regional Indian Languages
&lt;/h2&gt;

&lt;p&gt;I want to expand beyond Hindi/Hinglish into languages and dialects such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Bhojpuri&lt;/li&gt;
&lt;li&gt;Maithili&lt;/li&gt;
&lt;li&gt;Haryanvi&lt;/li&gt;
&lt;li&gt;Bundelkhandi&lt;/li&gt;
&lt;li&gt;Marathi&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The long-term goal is to make voice AI feel natural across different parts of India.&lt;/p&gt;




&lt;h2&gt;
  
  
  📸 Multimodal Crop Diagnosis
&lt;/h2&gt;

&lt;p&gt;Imagine combining:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;📸 Crop Image
     +
🎙️ Farmer's Voice
     +
🧠 AI
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A farmer could show an infected leaf while explaining the symptoms verbally.&lt;/p&gt;




&lt;h2&gt;
  
  
  🛰️ Smarter Agricultural Data
&lt;/h2&gt;

&lt;p&gt;Another future direction is integrating richer agricultural and environmental data sources to make recommendations more context-aware.&lt;/p&gt;




&lt;h1&gt;
  
  
  📚 14. What I Learned From This Challenge
&lt;/h1&gt;

&lt;p&gt;The biggest lesson from these 10 days is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Building a voice agent is much more than connecting an LLM to a microphone.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A useful voice agent needs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🎙️ Natural voice interaction&lt;/li&gt;
&lt;li&gt;🧠 Memory&lt;/li&gt;
&lt;li&gt;🔧 Real-world tools&lt;/li&gt;
&lt;li&gt;📞 Communication capabilities&lt;/li&gt;
&lt;li&gt;🚨 Human fallback&lt;/li&gt;
&lt;li&gt;📊 Analytics&lt;/li&gt;
&lt;li&gt;🤝 Specialist agents&lt;/li&gt;
&lt;li&gt;🎨 Good UX&lt;/li&gt;
&lt;li&gt;🔐 Secure configuration&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But above everything else:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;It needs to solve a real problem.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;For KisanMitra AI, that problem is making agricultural assistance easier to access through voice.&lt;/p&gt;




&lt;h1&gt;
  
  
  🔗 15. Project Links
&lt;/h1&gt;

&lt;h3&gt;
  
  
  💻 GitHub Repository
&lt;/h3&gt;

&lt;p&gt;👉 &lt;strong&gt;[PASTE YOUR ACTUAL GITHUB LINK HERE]&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🌐 Live Demo
&lt;/h3&gt;

&lt;p&gt;👉 &lt;strong&gt;[PASTE YOUR ACTUAL LIVE DEMO LINK HERE]&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🎥 Demo Video
&lt;/h3&gt;

&lt;p&gt;👉 &lt;strong&gt;[PASTE YOUR YOUTUBE / LOOM VIDEO LINK HERE]&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Don't forget to replace all three placeholders before publishing.&lt;/strong&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  🙏 16. Final Thoughts
&lt;/h1&gt;

&lt;p&gt;Building KisanMitra AI has been one of my most rewarding experiences with voice AI.&lt;/p&gt;

&lt;p&gt;In these 10 days, I went from a basic voice interaction to building a system combining:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🎙️ Voice&lt;/strong&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;🧠 Memory&lt;/strong&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;🔧 Tools&lt;/strong&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;📞 Outbound Calls&lt;/strong&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;🚨 Human Escalation&lt;/strong&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;📊 Analytics&lt;/strong&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;🤝 Specialist Agent Handoff&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This challenge taught me that the most exciting part of AI isn't just making models smarter.&lt;/p&gt;

&lt;p&gt;It's making technology &lt;strong&gt;easier for people to use&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;For a farmer, technology shouldn't feel complicated.&lt;/p&gt;

&lt;p&gt;Sometimes the best interface is simply:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"भैया, मेरी फसल में ये समस्या हो रही है..."&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And the AI should be ready to listen.&lt;/p&gt;

&lt;p&gt;🌾 &lt;strong&gt;That's the idea behind KisanMitra AI.&lt;/strong&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  ❤️ Special Thanks
&lt;/h1&gt;

&lt;p&gt;A huge thank you to &lt;strong&gt;Murf AI&lt;/strong&gt; and &lt;strong&gt;LiveKit&lt;/strong&gt; for organizing the &lt;strong&gt;10 Days of Voice Agents – VoiceForBharat Edition&lt;/strong&gt; challenge.&lt;/p&gt;

&lt;p&gt;The challenge gave me an opportunity to learn, experiment, break things, debug them, and build a voice AI system around a real-world Indian use case.&lt;/p&gt;

&lt;p&gt;If you're also building with voice AI, I'd love to hear what you're creating.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What kind of voice agent are you building?&lt;/strong&gt; 👇&lt;/p&gt;

&lt;p&gt;Let's connect and build the future of voice AI together.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;#10DaysofAIVoiceAgents #MurfFalcon #VoiceForBharat #VoiceAI #AI #GenerativeAI #IndianAI #Agriculture #KisanMitraAI #LiveKit&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>agents</category>
      <category>agriculture</category>
      <category>ai</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
