{"id":26123220,"url":"https://github.com/abm1499/ml-powered-research-assistant","last_synced_at":"2026-04-13T14:31:39.072Z","repository":{"id":281510967,"uuid":"945496028","full_name":"abm1499/ML-Powered-Research-Assistant","owner":"abm1499","description":"ML-Powered Research Assistant: A web application that processes PDF research documents, providing individual summaries, a comparative final summary, sentiment analysis, keyword extraction, and a RAG-powered chatbot for querying content. Built with a FastAPI backend and Next.js frontend, it leverages LLaMA and DistilBERT for NLP adv. capabilities.","archived":false,"fork":false,"pushed_at":"2025-03-09T15:38:51.000Z","size":110,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-09T16:24:57.955Z","etag":null,"topics":["fastapi","llama","llama-index","llama3","llm","ml","nextjs","nlp","nlp-keywords-extraction","nlp-machine-learning","pypdf2","rag","rag-chatbot","rag-pipeline","react-hooks","spacy-nlp","tailwindcss","transformers"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/abm1499.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-03-09T15:05:40.000Z","updated_at":"2025-03-09T15:42:40.000Z","dependencies_parsed_at":"2025-03-09T16:25:26.472Z","dependency_job_id":"0f0b29f6-9d67-49bb-b4a8-063e101d3e4c","html_url":"https://github.com/abm1499/ML-Powered-Research-Assistant","commit_stats":null,"previous_names":["abm1499/ml-powered-research-assistant"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abm1499%2FML-Powered-Research-Assistant","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abm1499%2FML-Powered-Research-Assistant/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abm1499%2FML-Powered-Research-Assistant/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abm1499%2FML-Powered-Research-Assistant/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/abm1499","download_url":"https://codeload.github.com/abm1499/ML-Powered-Research-Assistant/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242882802,"owners_count":20200974,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fastapi","llama","llama-index","llama3","llm","ml","nextjs","nlp","nlp-keywords-extraction","nlp-machine-learning","pypdf2","rag","rag-chatbot","rag-pipeline","react-hooks","spacy-nlp","tailwindcss","transformers"],"created_at":"2025-03-10T15:45:59.812Z","updated_at":"2026-04-13T14:31:39.065Z","avatar_url":"https://github.com/abm1499.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ML-Powered Research Assistant\n\nThe **ML-Powered Research Assistant** is a web application designed to assist researchers by analyzing indiviual and multiple PDF research documents. It provides individual summaries, a comparative final summary, sentiment analysis, keyword extraction, and a RAG-powered chatbot to answer questions about the documents. The backend is built with FastAPI and leverages machine learning models for natural language processing, while the frontend is developed using Next.js with TypeScript and Tailwind CSS for a modern, responsive UI.\n\n## Features\n![features](3.png)\n- **Upload Multiple PDFs**: Upload multiple research documents (PDFs) for analysis.\n- **Individual Summaries**: Generate concise summaries for each uploaded document.\n- **Final Summary**: Compare key themes and findings across all documents in a comparative summary.\n- **Sentiment Analysis**: Analyze the sentiment of the summaries using a pre-trained DistilBERT model.\n- **Keyword Extraction**: Extract relevant keywords from each document using spaCy.\n- **RAG-Powered Chatbot**: Chat with a Retrieval-Augmented Generation (RAG) chatbot to ask questions about the documents, powered by LLMs and embeddings.\n\n![landing](1.png)\n![analysis](2.png)\n\n## Tech Stack\n### Backend\n- **Framework**: FastAPI (Python)\n- **LLM**: Ollama (LLaMA 3.3 for text generation, Nomic Embed for embeddings)\n- **NLP Libraries**:\n  - `llama-index`: For document indexing, summarization, and querying.\n  - `spaCy`: For keyword extraction.\n  - `transformers`: For sentiment analysis using DistilBERT.\n- **PDF Processing**: PyPDF2\n- **Environment Management**: `python-dotenv` for environment variables\n\n### Frontend\n- **Framework**: Next.js (React with TypeScript)\n- **Styling**: Tailwind CSS\n- **Components**: Custom React components (`chat-interface.tsx`, `document-uploader.tsx`, `summary-panel.tsx`, `theme-provider.tsx`)\n- **State Management**: React hooks\n- **Build Tools**: TypeScript, PostCSS, ESLint\n\n## Prerequisites\n- **Python**: 3.8+ (for the backend)\n- **Node.js**: 18+ (for the frontend)\n- **Git**: For cloning the repository\n- **Ollama Server**: Access to an Ollama server for LLM and embedding models (or a local setup)\n\n## Setup Instructions\n\n### 1. Clone the Repository\n```bash\ngit clone https://github.com/abm1499/ML-Powered-Research-Assistant.git\ncd ML-Powered-Research-Assistant\n```\n### 2. Backend Setup\nNavigate to the backend directory:\n```bash\ncd backend\n```\n\nCreate a virtual environment and activate it:\n```bash\npython -m venv venv\nsource venv/bin/activate  # On Windows: venv\\Scripts\\activate\n```\n\nInstall dependencies:\n```bash\npip install -r requirements.txt\n```\n\nIf requirements.txt is missing, install the required packages manually:\n```bash\npip install fastapi uvicorn llama-index langchain-community pypdf2 requests python-dotenv spacy transformers torch\npython -m spacy download en_core_web_sm\n```\n\nCreate a .env file in the backend directory with the following:\n```bash\nLLM_API_URL=\u003cyour-ollama-llm-api-url\u003e\nEMBEDDING_API_URL=\u003cyour-ollama-embedding-api-url\u003e\n```\n\nReplace \u003cyour-ollama-llm-api-url\u003e and \u003cyour-ollama-embedding-api-url\u003e with the URLs of your Ollama server (e.g., http://localhost:11434 if running locally).\n\nRun the backend server:\n```bash\nuvicorn main:app --host 0.0.0.0 --port 8000 --reload\n```\n\n### 2. Frontend Setup\nNavigate to the frontend directory:\n```bash\ncd frontend\n```\n\nInstall dependencies:\n```bash\nnpm install\n```\n\nRun the frontend development server:\n```bash\nnpm run dev\n```\n\n## Usage\n\n#### 1. Open the frontend in your browser (http://localhost:3000).\n#### 2. Use the document uploader to upload one or more PDF research documents.\n#### 3. View the analysis results:\nSummaries: Individual summaries for each document.\n\nFinal Summary: A comparative summary highlighting key themes and differences.\n\nSentiment Analysis: Sentiment of the summaries (positive, negative, or neutral).\n\nKeywords: Extracted keywords from each document.\n#### 4. Use the chat interface to ask questions about the documents (e.g., \"What are the main findings?\").\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabm1499%2Fml-powered-research-assistant","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fabm1499%2Fml-powered-research-assistant","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabm1499%2Fml-powered-research-assistant/lists"}