{"id":31767689,"url":"https://github.com/amritendunath/appointmate_1.0","last_synced_at":"2026-04-07T07:46:47.273Z","repository":{"id":316947426,"uuid":"1065361295","full_name":"amritendunath/Appointmate_1.0","owner":"amritendunath","description":"A LangGraph-powered multi-agent/supervisor system for appointment scheduling. It enables users to interact in natural language to check doctor availability, book, reschedule, or cancel appointments.","archived":false,"fork":false,"pushed_at":"2025-09-27T18:58:24.000Z","size":58,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-27T20:28:01.134Z","etag":null,"topics":["fastapi","langchain","langgraph","nltk","numpy","pandas","psycopg2","python","sqlalchemy","uvicorn","websocket"],"latest_commit_sha":null,"homepage":"","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/amritendunath.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-27T15:13:18.000Z","updated_at":"2025-09-27T18:58:27.000Z","dependencies_parsed_at":"2025-09-27T20:28:38.783Z","dependency_job_id":"63c2830d-e413-4cb2-90bd-95b337743e54","html_url":"https://github.com/amritendunath/Appointmate_1.0","commit_stats":null,"previous_names":["amritendunath/appointmate_1.0"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/amritendunath/Appointmate_1.0","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amritendunath%2FAppointmate_1.0","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amritendunath%2FAppointmate_1.0/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amritendunath%2FAppointmate_1.0/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amritendunath%2FAppointmate_1.0/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/amritendunath","download_url":"https://codeload.github.com/amritendunath/Appointmate_1.0/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amritendunath%2FAppointmate_1.0/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279002397,"owners_count":26083373,"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-09T02:00:07.460Z","response_time":59,"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":["fastapi","langchain","langgraph","nltk","numpy","pandas","psycopg2","python","sqlalchemy","uvicorn","websocket"],"created_at":"2025-10-10T01:18:59.595Z","updated_at":"2025-10-10T01:19:02.111Z","avatar_url":"https://github.com/amritendunath.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Appointmate_1.0: A Multi-Agent Appointment Booking System\n\nAppointmate implements a **multi-agent system** for appointment booking using **LangGraph**. The system allows users to interact in **natural language** to inquire about doctor availability, set, reschedule, or cancel appointments while maintaining conversational context.\n\n\u003c!-- ## 🎥 Video Demo  \n[![Watch the demo](https://img.youtube.com/vi/YOUR_VIDEO_ID/maxresdefault.jpg)](https://www.youtube.com/watch?v=ySkK4nvvNJE)   --\u003e\n\n\u003c!-- Click the image above to watch the demo on YouTube. --\u003e\n\n## ✨ Key Features\n\n- **Natural Language Interaction**: Users can ask about doctor availability and book/reschedule/cancel appointments.\n- **Multi-Agent System**: Separate AI agents handle information retrieval, scheduling, and rescheduling.\n- **Context Awareness**: The system maintains conversation context per session.\n- **Efficient Query Handling**: Queries are efficiently processed using LangGraph and multiple AI agents.\n\n## 🏗 Architecture\n\nThe system consists of:\n\n- **Front-End Server**: Interacts with users.\n- **FastAPI Backend**: Handles API requests at `/generate-stream`.\n- **LangGraph Agents**:\n  - **Supervisor Agent**: Coordinates tasks.\n  - **Information Agent**: Retrieves doctor availability details.\n  - **Appointment Agent**: Manages appointment scheduling, rescheduling, and cancellation.\n- **SQLite Database**: Stores session-based chat conversations.\n- **LangSmith Monitoring**: Observes agent activity and flow execution.\n\n\u003c!-- ![Architecture Overview](architecture/e2e_flow.png) --\u003e\n\n## 🔄 Multi-Agent Flow in LangGraph\n\nThe **LangGraph**-powered agentic workflow includes:\n\n- **Primary Assistant**: Guides users through appointment-related tasks.\n- **Appointment Agent**: Handles new appointment details.\n- **Update Appointment Tools**: Tools to set, reschedule or cancel an appointment.\n- **Information Agent**: Handle Availbility related query based on specialization or name.\n- **Update Information Tools**: Tools to fetch doctor's availability.\n- **Exit \u0026 Context Management**: Manages session flow and conversation termination.\n\n\u003c!-- ![LangGraph Flow](architecture/langgraph.png) --\u003e\n\n\n## 🚀 Getting Started\n\n### 1️⃣ Clone the Repository\n```bash\ngit clone https://github.com/amritendunath/Appointmate_1.0.git\ncd Appointmate_1.0\n```\n\n### 2️⃣ Install Dependencies\n```bash\npip install -r requirements.txt\n```\n\n### 3️⃣ Start the FastAPI Server\n```bash\nuvicorn main:app --host 0.0.0.0 --port 8000 --workers 2 --reload\n```\n\n### 4️⃣ Start the Streamlit UI\n```bash\nstreamlit run front-end/chat_ui.py\n```\n\n\n## 📌 Future Enhancements\n\n- Extend AI capabilities for multi-specialty clinic bookings.\n- Integrate additional external databases for real-time availability.\n- Implement authentication and user management.\n- Implement More Skills/tools and Agents\n\n## 🛠 Tech Stack\n\n- **FastAPI**: Backend API Framework\n- **LangGraph**: Multi-Agent Workflow\n- **SQLite**: Database\n- **LangSmith**: Agent Monitoring\n- **Uvicorn**: ASGI Server\n\n## 📧 Contact\n\nFor issues or contributions, create a pull request or open an issue. 🚀  \n\nConnect with me on **[LinkedIn (Amritendu Nath)](https://www.linkedin.com/in/amritendunath/)**.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famritendunath%2Fappointmate_1.0","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Famritendunath%2Fappointmate_1.0","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famritendunath%2Fappointmate_1.0/lists"}