Skip to content

salik702/Nexus-AI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

12 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation


🎯 What Is Nexus AI?

Nexus AI is a premium meeting intelligence platform that transforms video and audio into structured, actionable knowledge. Drop in a YouTube link or local recording β€” the system transcribes speech with Groq Whisper, summarizes with Mistral, extracts decisions and action items, and lets you chat with the meeting through a retrieval-augmented pipeline.

Hybrid by design: cloud speech-to-text through Groq keeps transcription fast, while Mistral AI powers summarization, extraction, embeddings, and conversational Q&A.


⚑ Six-Stage Intelligence Pipeline

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  1. Audio   β”‚ β†’ β”‚ 2. Groq STT   β”‚ β†’ β”‚ 3. Title    β”‚ β†’ β”‚ 4. Summary   β”‚ β†’ β”‚ 5. Extract  β”‚ β†’ β”‚ 6. RAG   β”‚
β”‚  Ingestion  β”‚   β”‚ Transcriptionβ”‚   β”‚ Generation  β”‚   β”‚  (Map-Reduce)β”‚   β”‚  Insights   β”‚   β”‚  Engine  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
 yt-dlp / pydub    Groq Whisper API     Mistral LLM        Mistral LLM         Mistral LLM      ChromaDB
 FFmpeg chunking   cloud transcription  8-word title       bullet summary      3 extractors     + Mistral

🧠 Architecture

flowchart TB
    subgraph Input["πŸ“₯ Input Layer"]
        YT["YouTube URL"]
        LF["Local Video / Audio"]
    end

    subgraph Audio["πŸŽ™οΈ Audio Processing"]
        DL["yt-dlp Download"]
        CV["pydub β†’ 16kHz WAV"]
        CH["10-min Chunks"]
    end

    subgraph STT["πŸ”Š Speech-to-Text β€” Cloud"]
      GW["Groq Whisper API"]
    end

    subgraph LLM["πŸ€– Mistral AI + LangChain LCEL"]
        TI["Title Generator"]
        SU["Map-Reduce Summarizer"]
        EX["Action Items Β· Decisions Β· Questions"]
    end

    subgraph RAG["πŸ’¬ RAG Chat"]
        EM["mistral-embed"]
        VS["ChromaDB Vector Store"]
        QA["Context-Aware Q&A"]
    end

    subgraph UI["πŸ–₯️ Streamlit Dashboard"]
        ST["Studio"]
        IN["Insights"]
        CHAT["Ask AI"]
    end

    YT --> DL
    LF --> CV
    DL --> CV
    CV --> CH
    CH --> GW
    GW --> TI & SU & EX
    GW --> EM
    EM --> VS
    VS --> QA
    TI & SU & EX & QA --> ST & IN & CHAT
Loading

✨ Capabilities

Module What You Get
Smart Transcription Groq Whisper API β€” fast cloud-based transcription & translation
Executive Summary Map-reduce summarization across long transcripts
Auto Title Professional meeting title generated from content
Action Items Tasks with owner and deadline when mentioned
Key Decisions Numbered list of decisions made during the meeting
Open Questions Unresolved topics flagged for follow-up
RAG Chat Ask natural-language questions grounded in the transcript
Exports Download transcript, actions, decisions, and questions as .txt
Session History Timeline of analyses within the current browser session

πŸ–₯️ Dashboard

🏠 Home
Feature overview & recent activity
⚑ Studio
Source input & pipeline launcher
πŸ“Š Insights
Summary, metrics & extractions
πŸ’¬ Ask AI
RAG-powered meeting chat
πŸ• History
Session timeline (last 20 runs)
βš™οΈ Settings
Language defaults & session reset
❓ Help
Quick start & FAQs
πŸ“ˆ Live Stepper
Real-time pipeline progress

πŸ› οΈ Tech Stack

Full stack breakdown
Layer Technology Role
UI Streamlit, custom CSS Multi-page dashboard with glass-morphism theme
Ingestion yt-dlp, pydub, FFmpeg YouTube download, format conversion, chunking
STT Groq Whisper API (whisper-large-v3-turbo) Cloud transcription & translation
LLM Mistral AI (mistral-small-2506) Summaries, titles, extractions, chat
Orchestration LangChain LCEL Prompt chains, map-reduce, RAG pipeline
Embeddings Mistral Embed Semantic indexing of transcript chunks
Vector DB ChromaDB Persistent retrieval store (vector_db/)
Config python-dotenv API keys and model settings via .env

πŸ“ Project Structure

Video Agent/
β”œβ”€β”€ app.py                  # Streamlit dashboard entry point
β”œβ”€β”€ main.py                 # CLI pipeline + interactive chat loop
β”œβ”€β”€ requirements.txt
β”œβ”€β”€ .env.example
β”œβ”€β”€ cookies.txt             # Optional β€” YouTube auth cookies
β”‚
β”œβ”€β”€ core/
β”‚   β”œβ”€β”€ transcriber.py      # Groq Whisper API transcribe & translate
β”‚   β”œβ”€β”€ summarizer.py       # Map-reduce summary + title generation
β”‚   β”œβ”€β”€ extractor.py        # Action items, decisions, questions
β”‚   β”œβ”€β”€ rag_engine.py       # LCEL RAG chain + ask_question()
β”‚   └── vector_store.py     # ChromaDB build / load / retriever
β”‚
β”œβ”€β”€ services/
β”‚   β”œβ”€β”€ pipeline.py         # Streamlit pipeline orchestration
β”‚   └── session.py          # Session state, pages, history
β”‚
β”œβ”€β”€ ui/
β”‚   β”œβ”€β”€ navigation.py       # Sidebar shell & routing
β”‚   β”œβ”€β”€ components.py       # Reusable UI blocks
β”‚   β”œβ”€β”€ styles.py           # Global CSS injection
β”‚   └── pages/              # home Β· studio Β· insights Β· chat Β· history Β· settings Β· help
β”‚
β”œβ”€β”€ utils/
β”‚   └── audio_processor.py  # Download, convert, chunk audio
β”‚
└── downloads/              # YouTube audio cache (runtime)

πŸš€ Quick Start

Prerequisites

  • Python 3.10+
  • FFmpeg installed and available on PATH
  • Mistral API key β€” console.mistral.ai

Install

git clone https://github.com/SalikAhmad702/Video-Agent.git
cd Video-Agent

# Using uv (recommended)
uv venv
uv pip install -r requirements.txt

# Or standard pip
python -m venv .venv
.venv\Scripts\activate        # Windows
pip install -r requirements.txt

Configure

Copy .env.example to .env and set your keys:

MISTRAL_API_KEY=your_mistral_api_key_here
WHISPER_MODEL=base
Variable Default Description
MISTRAL_API_KEY β€” Required for LLM, embeddings, and chat
WHISPER_MODEL base Whisper size: tiny, base, small, medium, large-v3
YTDLP_COOKIE_FILE cookies.txt Optional path to YouTube cookies for restricted videos

Run

Web dashboard (recommended):

streamlit run app.py

CLI mode:

python main.py

πŸ“– Usage Guide

Web UI

  1. Open Studio from the sidebar
  2. Paste a YouTube URL or absolute local file path (C:/videos/meeting.mp4)
  3. Select your transcription language
  4. Click Run Analysis β€” watch the live pipeline stepper
  5. Review output in Insights β€” summary, transcript, extractions, downloads
  6. Switch to Ask AI β€” chat with suggested prompts or custom questions

CLI

python main.py
# Enter YouTube URL or local file path when prompted
# Chat loop starts automatically after analysis β€” type 'exit' to quit

Supported Sources

Source Formats Notes
YouTube Any URL Uses yt-dlp; optional cookies.txt for sign-in videos
Local files MP4, MP3, WAV, etc. Converted via pydub β†’ 16 kHz mono WAV

πŸ”¬ How It Works

Transcription β€” Groq Whisper API

Audio is split into 10-minute chunks and sent to the Groq Whisper API (whisper-large-v3-turbo) for fast cloud-based transcription. The translation endpoint is used for non-English audio to produce English output.

Summarization β€” map-reduce pattern

Long transcripts are split into 3 000-character segments. Each chunk is summarized independently, then a final Mistral pass merges partial summaries into one cohesive bullet-point executive summary.

Extraction β€” specialized prompts

Three dedicated LangChain chains run against the full transcript:

  • Action items β€” task, owner, deadline
  • Key decisions β€” numbered decision log
  • Open questions β€” unresolved follow-ups
RAG Chat β€” grounded answers only

The transcript is chunked (500 chars, 50 overlap), embedded with mistral-embed, and stored in ChromaDB. At query time, the top-4 similar chunks are retrieved and passed as context to Mistral β€” answers stay tied to the meeting content.


βš™οΈ Configuration Reference

# Required
MISTRAL_API_KEY=sk-...

# Optional β€” Whisper model size (larger = more accurate, slower)
WHISPER_MODEL=small

# Optional β€” custom cookie file for YouTube
YTDLP_COOKIE_FILE=C:/path/to/cookies.txt

Whisper model trade-offs:

Model Speed Accuracy RAM
tiny ⚑⚑⚑ β˜…β˜… ~1 GB
base ⚑⚑ β˜…β˜…β˜… ~1 GB
small ⚑ β˜…β˜…β˜…β˜… ~2 GB
medium 🐒 β˜…β˜…β˜…β˜…β˜… ~5 GB

πŸ—ΊοΈ Roadmap

  • YouTube + local file ingestion
  • Groq Whisper API transcription & translation
  • Map-reduce summarization with Mistral
  • Action items, decisions, and questions extraction
  • ChromaDB RAG chat with mistral-embed
  • Streamlit dashboard with live pipeline stepper
  • Transcript & extraction .txt downloads
  • PDF export (reportlab / fpdf2 β€” deps ready)
  • Hindi β†’ English translation layer (deep-translator β€” dep ready)
  • Persistent analysis history across sessions
  • Speaker diarization (who said what)
  • Docker & Streamlit Cloud deployment guide

🀝 Contributing

Contributions welcome β€” especially PDF export, speaker diarization, and deployment configs.

git checkout -b feature/your-improvement
git commit -m "feat: describe your change"
git push origin feature/your-improvement

Open a pull request when ready.


πŸ“„ License

Free and open source β€” use, modify, and distribute freely.

  • βœ… Personal, academic, and commercial use
  • ⚠️ Provided as-is without warranty

πŸ“§ Let's Connect

Built with obsession by Salik Ahmad πŸ€–


Footer Typing



About

An AI-powered productivity platform that transforms URLs into actionable insights using LLMs, RAG, and AI agents. Analyze YouTube videos, web pages, PDFs, and meetings with intelligent automation

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages