{"id":31913961,"url":"https://github.com/the-developer-306/contextual_ai_presentation_orchestrator","last_synced_at":"2025-10-13T18:57:43.129Z","repository":{"id":314578898,"uuid":"1051611466","full_name":"the-developer-306/contextual_ai_presentation_orchestrator","owner":"the-developer-306","description":null,"archived":false,"fork":false,"pushed_at":"2025-09-13T11:40:10.000Z","size":403,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-13T12:27:59.657Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","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/the-developer-306.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-06T11:08:22.000Z","updated_at":"2025-09-13T11:40:13.000Z","dependencies_parsed_at":"2025-09-13T12:28:02.724Z","dependency_job_id":"c1935139-d673-4ea0-a050-823d772e8244","html_url":"https://github.com/the-developer-306/contextual_ai_presentation_orchestrator","commit_stats":null,"previous_names":["the-developer-306/contextual_ai_presentation_orchestrator"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/the-developer-306/contextual_ai_presentation_orchestrator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/the-developer-306%2Fcontextual_ai_presentation_orchestrator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/the-developer-306%2Fcontextual_ai_presentation_orchestrator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/the-developer-306%2Fcontextual_ai_presentation_orchestrator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/the-developer-306%2Fcontextual_ai_presentation_orchestrator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/the-developer-306","download_url":"https://codeload.github.com/the-developer-306/contextual_ai_presentation_orchestrator/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/the-developer-306%2Fcontextual_ai_presentation_orchestrator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279016628,"owners_count":26085853,"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","status":"online","status_checked_at":"2025-10-13T02:00:06.723Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2025-10-13T18:57:41.309Z","updated_at":"2025-10-13T18:57:43.122Z","avatar_url":"https://github.com/the-developer-306.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Contextual AI Presentation Orchestrator\n=======================================\n\nOverview\n--------\n\nThe Contextual AI Presentation Orchestrator is a multi-agent system designed to automatically transform raw documents and topics into professional, structured PowerPoint presentations. It leverages Retrieval-Augmented Generation (RAG), specialized content agents, and role-based access control (RBAC) to ensure accurate, fact-checked, and presentation-ready outputs.\n\nThis project demonstrates a production-grade AI system with end-to-end functionality, from ingestion to orchestration, validation, and final PPTX generation.\n\n* * * * *\n\nKey Features\n------------\n\n-   **Multi-Agent Orchestration**: Five specialized agents (Document Analysis, Outline Generator, Content Expansion, QA, and Format Optimizer).\n\n-   **RAG Pipeline**: FAISS/ChromaDB-based vector store with hybrid retrieval, citation tracking, and contradiction detection.\n\n-   **Context Management**: Memory modules and session persistence for multi-turn workflows.\n\n-   **Security**: JWT authentication and RBAC for four roles (Executive, Senior Manager, Analyst, Junior Staff).\n\n-   **Deployment**: Fully containerized using Docker and orchestrated with Docker Compose.\n\n-   **API + CLI + Frontend**: REST endpoints via FastAPI, CLI via Typer, and user interface via Streamlit.\n\n-   **Production Readiness**: Logging, observability, and pytest-based validation.\n\n* * * * *\n\nSystem Architecture Diagram\n---------------------------\n\n![alt text](Sys_arch_diagram.png)\n\n* * * * *\n\nDevelopment Workflow\n--------------------\n\n**Phase 1 -- Architecture \u0026 Planning**\n\n-   Defined multi-agent orchestration, RAG pipeline, memory, and security model.\n\n**Phase 2 -- Core Implementation**\n\n-   Built preprocessing and hybrid retrieval.\n\n-   Developed 5 custom agents and integrated via LangChain.\n\n-   Exposed via FastAPI and CLI.\n\n**Phase 3 -- Production Readiness**\n\n-   Implemented JWT-based authentication and RBAC.\n\n-   Added observability and pytest coverage.\n\n-   Dockerized backend and frontend for containerized deployment.\n\n**Phase 4 -- Final Polish**\n\n-   Executed end-to-end testing.\n\n-   Prepared system diagram, documentation, and demo.\n\n* * * * *\n\nFuture Enhancements\n-------------------\n\n-   **Professional PPT Design**: Integrate advanced design hints into python-pptx for visually consistent, branded presentations.\n\n-   **Real-Time Multi-User Collaboration**: Enable live co-editing of outlines and expansions through WebSocket/Socket.io integration.\n\n-   **Database-Backed Authentication**: Migrate from hardcoded role mapping to a persistent database-driven authentication and role management system (e.g., PostgreSQL).\n\n-   **Scalability**: Deploy on Kubernetes with horizontal scaling of orchestrator pods.\n\n* * * * *\n\nTech Stack\n----------\n\n-   **Core**: Python 3.11\n\n-   **LLM Orchestration**: LangChain + ChatGroq\n\n-   **Vector Search**: FAISS / ChromaDB\n\n-   **Embeddings**: Sentence Transformers (all-MiniLM-L6-v2)\n\n-   **API Framework**: FastAPI\n\n-   **Frontend**: Streamlit\n\n-   **Auth**: JWT with RBAC\n\n-   **PPT Generation**: python-pptx\n\n-   **Deployment**: Docker + Docker Compose\n\n\n* * * * *\n\nDeveloper Setup Guide\n=====================\n\nThis guide explains how to set up, run, and test the **Contextual AI Presentation Orchestrator** locally and via Docker.\n\n* * * * *\n\n1\\. Prerequisites\n-----------------\n\n-   Python 3.11+\n\n-   Docker \u0026 Docker Compose\n\n-   Git\n\n* * * * *\n\n2\\. Clone the Repository\n------------------------\n\n`git clone https://github.com/yourusername/contextual_ai_presentation_orchestrator.git\ncd contextual_ai_presentation_orchestrator`\n\n* * * * *\n\n3\\. Environment Setup (Local)\n-----------------------------\n\n### Create Virtual Environment\n\n`python3 -m venv venv\nsource venv/bin/activate   # On Windows: venv\\Scripts\\activate`\n\n### Install Dependencies\n\n`pip install --upgrade pip\npip install -r requirements.txt`\n\n* * * * *\n\n4\\. Running Backend (Local)\n---------------------------\n\nNavigate to the **api** folder:\n\n`cd api\nuvicorn main:app --reload --port 8000`\n\nBackend will start at:\n\n`http://127.0.0.1:8000`\n\nDocs available at:\n\n`http://127.0.0.1:8000/docs`\n\n* * * * *\n\n5\\. Running Frontend (Local)\n----------------------------\n\nGo back to root and run Streamlit app:\n\n`cd ..\nstreamlit run frontend/app.py --server.port=8501`\n\nFrontend available at:\n\n`http://127.0.0.1:8501`\n\n* * * * *\n\n6\\. Docker Setup (Recommended)\n------------------------------\n\n### Build and Run Containers\n\nFrom project root:\n\n`docker-compose build\ndocker-compose up`\n\n-   Frontend runs on **\u003chttp://localhost:8501\u003e**\n\n-   Backend runs on **\u003chttp://localhost:8000\u003e**\n\nLogs for each service:\n\n`docker-compose logs backend\ndocker-compose logs frontend`\n\n### Stop Containers\n\n`docker-compose down`\n\n* * * * *\n\n7\\. Project Structure\n---------------------\n\ncontextual_ai_presentation_orchestrator/\n\n│── agents/                # Multi-agent orchestration logic\n\n│   ├── orchestration.py\n\n│   ├── document_analysis_agent.py\n\n│   ├── outline_generator_agent.py\n\n│   ├── content_expansion_agent.py\n\n│   ├── qa_agent.py\n\n│   └── format_optimizer_agent.py\n\n│\n\n│── rag_pipeline/          # RAG (Retrieval-Augmented Generation) pipeline\n\n│   ├── preprocess.py\n\n│   ├── embeddings.py\n\n│   ├── vector_store.py\n\n│   └── retriever.py\n\n│\n\n│── api/                   # Backend (FastAPI)\n\n│   ├── routes/\n\n│   │   ├── memory.py\n\n│   │   ├── auth.py\n\n│   │   ├── upload.py\n\n│   │   ├── generate.py\n\n│   │   └── download.py\n\n│   └── main.py\n\n│\n\n│── cli/                   # CLI interface\n\n│   └── cli_interface.py\n\n│\n\n│── utils/                 # Utilities (security, PPTX, logging, config, etc.)\n\n│   ├── security.py\n\n│   ├── ppt_generator.py\n\n│   ├── middleware.py\n\n│   ├── memory.py\n\n│   ├── config.py\n\n│   └── logger.py\n\n│\n\n│── tests/                 # Pytest unit tests\n\n│── Dockerfile             # Backend Dockerfile\n\n│── Dockerfile.frontend    # Frontend Dockerfile\n\n│── docker-compose.yml     # Orchestration of backend + frontend\n\n│── requirements.txt       # Dependencies\n\n│── README.md              # Documentation\n\n* * * * *","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthe-developer-306%2Fcontextual_ai_presentation_orchestrator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthe-developer-306%2Fcontextual_ai_presentation_orchestrator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthe-developer-306%2Fcontextual_ai_presentation_orchestrator/lists"}