diff --git a/.gitignore b/.gitignore index eee958b..ae5a165 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,6 @@ **/*.pyo **/*.pyd **/*.c +**/gpt2-* +**/*.env.* +**/llama* diff --git a/.jukit/.jukit_info.json b/.jukit/.jukit_info.json new file mode 100644 index 0000000..92c7342 --- /dev/null +++ b/.jukit/.jukit_info.json @@ -0,0 +1 @@ +{"terminal": "nvimterm"} \ No newline at end of file diff --git a/README.md b/README.md index e0b7a2e..601b506 100644 --- a/README.md +++ b/README.md @@ -27,27 +27,64 @@ We are proud to represent Lotus Valley International School in this interschool 1. **Clone the repository:** ```bash - git clone https://github.com/JayanAXHF/shiv-nadar-university.git - cd shiv-nadar-university + git clone https://github.com/JayanAXHF/shiv-nadar.git + cd shiv-nadar ``` -2. **Install requirements:** - - Make sure you have Python 3.8+ installed. - - Install dependencies: - ```bash - pip install -r requirements.txt - ``` -3. **Run the chatbot:** - ```bash - python chatbot.py - ``` - *(Update the above instructions based on your actual code structure and entry point.)* +2. **Install dependencies:** + The project uses `uv` package manager for the backend. Run + ```bash + uv sync + ``` + in the backend directory to install the dependencies. + + You can install the frontend dependencies by running + ```bash + pnpm i + ``` + in the frontend directory. +3. **Run the backend:** +Running the backend is a quirky process. Starting from the root directory, run +```bash +cd backend/llm +fastapi dev ../main.py +``` +Ensure that the `llm` folder contains the trained AI model. Please update your `llm/main.py` file with the path to your model. + +4. **Run the frontend:** +Run the frontend by running +```bash +pnpm dev +``` +in the frontend directory. You can spin up the database console by running +```bash +pnpm run db:studio +``` ## 📂 Structure -- `/src` - Source code for the chatbot -- `/data` - Event data (schedule, FAQs, etc.) -- `/docs` - Documentation -- `/notebooks` - Experimentation and demos +``` +. +├── backend/ # Python backend for LLM logic and datasets +│ ├── llm/ # Core LLM scripts, notebooks, data files +│ ├── logs/ # TensorBoard logs +│ ├── results/ # Model checkpoints +│ ├── testing/ # Test scripts and data +│ ├── main.py # Backend entry point +│ └── pyproject.toml # Backend dependencies +│ +├── front_end/ # Next.js frontend app +│ ├── src/ # App pages, components, styles +│ ├── public/ # Static assets (favicon, etc.) +│ ├── package.json # Frontend dependencies +│ └── drizzle.config.ts # DB config (Drizzle ORM) +│ +├── summary/ # LaTeX report with flowcharts & PDF output +│ └── src/ # Main .tex, custom class files, .bib +│ +├── README.md # Project overview +└── indent.log # Log file (optional/debug) +``` + ## 🤝 Contributing diff --git a/Timeline 1.mov b/Timeline 1.mov new file mode 100644 index 0000000..391b94f Binary files /dev/null and b/Timeline 1.mov differ diff --git a/backend/.jukit/.jukit_info.json b/backend/.jukit/.jukit_info.json new file mode 100644 index 0000000..92c7342 --- /dev/null +++ b/backend/.jukit/.jukit_info.json @@ -0,0 +1 @@ +{"terminal": "nvimterm"} \ No newline at end of file diff --git a/backend/llm/.jukit/.jukit_info.json b/backend/llm/.jukit/.jukit_info.json new file mode 100644 index 0000000..92c7342 --- /dev/null +++ b/backend/llm/.jukit/.jukit_info.json @@ -0,0 +1 @@ +{"terminal": "nvimterm"} \ No newline at end of file diff --git a/backend/llm/__init__.py b/backend/llm/__init__.py new file mode 100644 index 0000000..f0135a2 --- /dev/null +++ b/backend/llm/__init__.py @@ -0,0 +1 @@ +from .main import eval_ncert, eval_circular diff --git a/backend/llm/assignments.txt b/backend/llm/assignments.txt new file mode 100644 index 0000000..9580270 --- /dev/null +++ b/backend/llm/assignments.txt @@ -0,0 +1,76 @@ +Serial,Date,Subject,Title,Description,Summary +1,15/05/2025,ENGLISH,Wind,"Explanation completed Notebook work - SAQ1,2 and LAQ - 1","English: Wind chapter explanation and notebook work (SAQ1,2, LAQ-1) done." +2,15/05/2025,ARTIFICIAL INTELLIGENCE,AI- Evaluation Plan and Sample Paper for PA1,"Dear learners, PFA is the evaluation plan, sample paper, and answer key for the upcoming AI PA1. Regards, Richa Taneja","AI PA1: Evaluation plan, sample paper, and answer key provided (Richa Taneja)." +3,15/05/2025,BIOLOGY,LAB VISIT,"CW-Onion and cheek cell activity completed. HW-Submit practical file with index in next bio class.","Biology: Onion and cheek cell activity completed in class; practical file submission due next class." +4,15/05/2025,MATHEMATICS,WS OF POLYNOMIALS,"Worksheet of Polynomials was discussed in class. List doubts if any. Prepare PA-1 syllabus for test tomorrow.","Mathematics: Polynomials worksheet discussed; students to list doubts and prepare for PA-1 test." +5,14/05/2025,ENGLISH,ENGLISH PA1 - EVALUATION PLAN,"Dear Students, PFA the EVALUATION PLAN for Grade 9 PA1","English PA1: Evaluation plan for Grade 9 provided." +6,14/05/2025,SOCIAL SCIENCE,Political Science Chapter 1,"Dear Learners, Request you all to read pages 2-7 of chapter 1 today for an active discussion in the class. Thanks and regards, SSC FACILITATOR","Social Science: Students requested to read Political Science Chapter 1 (pages 2-7) for class discussion." +7,14/05/2025,SOCIAL SCIENCE,Political Science Chapter 1,"Dear Learners, Request you all to read pages 2-7 of chapter 1 today for an active discussion in the class. Thanks and regards, SSC FACILITATOR","Social Science: Students requested to read Political Science Chapter 1 (pages 2-7) for class discussion." +8,13/05/2025,MATHEMATICS,Revision Worksheet- Polynomials,"Dear Learners PFA the worksheet and do it in your notebook. Regards","Mathematics: Revision worksheet on Polynomials provided; to be completed in the notebook." +9,12/05/2025,CIRCULAR,Donation Drive Announcement,"Dear Learners, We're excited to launch a Donation Drive from *13th May to 30th May 2025* in support of *Spreading Smiles Gyan Kendra and the Lotus Petal Foundation* . This initiative aims to bring joy and learning to students in under-resourced schools. *We are collecting the following items* : -Educational material -Old textbooks -Work books -Activity books -Story books -Drawing books -Unused notebooks -Stationery items (pens, pencils, erasers, sharpeners, rulers etc.) -Basic art supplies (color pencils, crayons, drawing pads etc.) To make your contributions, kindly drop your donations in the *labeled boxes (Books | Stationery*) placed in both the *C Block foyer and A Block foyer* . Your small contribution can make a big difference in someone's learning journey. Let’s come together as a community to make that difference count. Warm regards, Community Service Committee","Circular: Donation drive for educational materials and stationery (May 13-30, 2025) to support Spreading Smiles Gyan Kendra and Lotus Petal Foundation. Drop donations in labeled boxes." +10,10/05/2025,MATHEMATICS,Revision Worksheet 1 (Number System),"Dear Learners PFA and do the worksheet in your notebook.","Mathematics: Revision worksheet on Number System provided; to be completed in the notebook." +11,10/05/2025,CIRCULAR,UPDATED_NAEST CIRCULAR 2025,"Dear Learners, PFA documents for reference. A gentle reminder. Thanks","Circular: Updated NAEST circular 2025 provided for reference." +12,08/05/2025,MATHEMATICS,Ch-2 Polynomials,"AB of ch- Polynomials completed today. Complete if not done. Prepare Ch-1 for test tomorrow. Bring notebooks for checking.","Mathematics: Activity Book (AB) for Polynomials (Ch-2) completed; students to complete if pending, prepare for Ch-1 test, and bring notebooks for checking." +13,08/05/2025,CIRCULAR,Adobe Summer Boot Camp: Session Link for 8th May'2025,"Dear Learners, Join us today for Session 2 of Summer Bootcamp and celebrate the timeless legacy of Rabindranath Tagore – poet, philosopher, and visionary. 🗓️ Date: May 8, 2025 ⏰ Time: 3:15 - 5:00 PM 📍 LINK: https://tinyurl.com/AEBootcamp2 Don’t miss it! Regards, Richa Taneja","Circular: Link provided for Adobe Summer Boot Camp Session 2 (May 8, 3:15-5:00 PM)." +14,08/05/2025,PHYSICS,Units & Measurements,"Dear learners, Deriving formula using dimensional analysis is covered in class. HW- Questions given as HW in class. Thank you","Physics: Derivation of formulas using dimensional analysis covered in class; homework assigned." +15,07/05/2025,ENGLISH,Sound of Music,"Reading and Explanation completed","English: Reading and explanation of ""Sound of Music"" completed." +16,07/05/2025,SOCIAL SCIENCE,economics update,"Dear Learners, As we have concluded chapter 1, we will start with AB from tomorrow. Please carry your Eco AB and notebook tomorrow. Thanks and regards, SSC FACILITATOR","Social Science (Economics): Chapter 1 concluded; Activity Book (AB) work starts tomorrow, students to bring Eco AB and notebook." +17,07/05/2025,BIOLOGY,Biology,"CW- Explained the cell organelles today in the class . HW- Write onion peel and Cheek cells experment in the practical file and bring it on wednesday . For practical class bring one icecrem stick.","Biology: Cell organelles explained in class; homework is to write onion peel and cheek cell experiment in practical file and bring it with an ice cream stick on Wednesday." +18,07/05/2025,CIRCULAR,WORLD TECHNOLOGY DAY _CANVA MAKING,"Dear Learners, Please note-You are required to design a poster on Canva on the topic ""Green technology and sustainability"" and email it to your Class Teacher by May 8, 2025. The submitted work will be screen-shared in class on May 9, 2025.","Circular: Students to design a Canva poster on ""Green technology and sustainability"" and email it to the class teacher by May 8th for sharing on May 9th." +19,06/05/2025,CIRCULAR,Adobe Summer Boot Camp: Login Video,"Dear Learners, PFA a short video on how to log in to the Adobe Express accounts. Regards, Richa Taneja","Circular: Login video for Adobe Express accounts provided (Richa Taneja)." +20,06/05/2025,MATHEMATICS,Ch-2 Polynomials,"Ch-2 Polynomials completed from Ncert. Bring AB and AB notebooks tomorrow. Submit Ncert notebooks for checking tomorrow.","Mathematics: Chapter 2 (Polynomials) from NCERT completed; students to bring Activity Book (AB) and AB notebooks, and submit NCERT notebooks for checking tomorrow." +21,05/05/2025,SOCIAL SCIENCE,SSC-PA-1_MS_5.5.25,"Dear Learners, PFA the MS of PA-1 for reference. Thanks SSC Team","Social Science PA-1: Marking scheme provided for reference (SSC Team)." +22,05/05/2025,CIRCULAR,Adobe Summer Bootcamp,"Dear Learners, Adobe is organising a summer bootcamp for students of grades V-X. The details for the camp is attached. Learners who are interested to enrol, please contact your respective computer teacher at the earliest. Regards, Richa Taneja","Circular: Adobe Summer Bootcamp for Grades V-X announced; interested students to contact their computer teacher for enrollment (Richa Taneja)." +23,05/05/2025,ENGLISH,Writing Skills,"Decriptive Paragraph ( person) completed Honework - Assignment Booklet - Q6","English: Descriptive paragraph (person) completed in class; homework is Q6 from the Assignment Booklet." +24,05/05/2025,CIRCULAR,Adobe Summer BootCamp : 5th May'2025 Session Link,"Dear Learners, PFA the link for 5th May'2025 session. All those who are interested may kindly login to the session. Join us Today for the first session of the Student Bootcamp. Time : 3:00-4:30. Link : https://tinyurl.com/AEBootcamp1 *Students reaching home by 3:15-3:30 can also join us and learn something new every Monday and Thursday. Regards, Richa Taneja","Circular: Link provided for the Adobe Summer BootCamp session on May 5th (3:00-4:30 PM)." +25,05/05/2025,FRENCH,REVISION TEST,"Revision test of past participles tomorrow","French: Revision test on past participles scheduled for tomorrow." +26,03/05/2025,CIRCULAR,Early Dispersal,"Dear Parents, Greetings! Since we are in receipt of multiple requests for early exit from the school today, we have taken a conscious decision of closing the school at 12:30 pm. Dispersal of the bus users - 12:30 pm and the walkers - 12:40 pm. We solicit your understanding and cooperation in this matter. Warm Regards, Anita Malhotra Director - Principal 03.05.2025","Circular: Early school dispersal at 12:30 PM for bus users and 12:40 PM for walkers (Anita Malhotra)." +27,02/05/2025,CIRCULAR,IMPORTANT ANNOUNCEMENT,"Dear Parent Please note Due to the inclement weather conditions , we are constrained to reschedule the *Investiture Ceremony to Saturday , 3rd May at 9.00 am* (Subject to weather conditions) Inconvenience regretted Warm Regards Anita Malhotra","Circular: Investiture Ceremony rescheduled to Saturday, May 3rd at 9:00 AM due to weather (Anita Malhotra)." +28,02/05/2025,CIRCULAR,"Open House for Grades IX-XII Saturday,10","Dear Parent Greetings ! Kindly note- *Saturday, 3rd May will be a regular working day for Grades I-XII*. *Open House for Grades IX-XII is rescheduled to Saturday,10th May.* Thank you for your understanding in this regard. Best Wishes Anita Malhotra","Circular: Saturday, May 3rd will be a regular working day for Grades I-XII; Open House for Grades IX-XII rescheduled to Saturday, May 10th (Anita Malhotra)." +29,02/05/2025,CIRCULAR,IMPORTANT,"Dear Parent Please note Due to the inclement weather conditions , we are constrained to reschedule the Investiture Ceremony to Saturday , 3rd May at 9.00 am (Subject to weather conditions) Inconvenience regretted Warm Regards Anita Malhotra","Circular: Investiture Ceremony rescheduled to Saturday, May 3rd at 9:00 AM due to weather (Anita Malhotra)." +30,02/05/2025,ALL,Cascade - Magazine Submissions,"Dear Learners, We are excited to invite your submissions for our annual school magazine, Cascade. Looking at the overwhelming response, the final date of submission has been extended to 10th May 2025. All students from Grades IV to XII are welcome to contribute articles, short essays, comic strips, jokes, riddles, and poems to be featured in this year’s edition. Please ensure the entries are original and free from plagiarism. You may email your entries at cascade.lvisg@lotusvalleygurgaon.com, latest by 10th May 2025. We look forward to your creative contributions! Editorial Team","All: Deadline for Cascade school magazine submissions (Grades IV-XII) extended to May 10th, 2025. Email entries to cascade.lvisg@lotusvalleygurgaon.com." +31,02/05/2025,CIRCULAR,IMPORTANT INFORMATION,"Dear Parent, Greetings! This is to inform you that due to the postponement of the Investiture Ceremony to Saturday, 3rd May,25 the Open House has been rescheduled to Saturday,17th May’25. Saturday,3rd May, will be observed as a working day for Grades IV-XII and Tuesday’s time table shall be followed. Thank you for your understanding in this regard. Warm regards, Anita Malhotra Director-Principal 02.05.2025","Circular: Open House rescheduled to May 17th due to Investiture Ceremony postponement; Saturday, May 3rd is a working day for Grades IV-XII (Tuesday's timetable to be followed) - Anita Malhotra." +32,02/05/2025,CIRCULAR,"Saturday, 3rd May will be a regular working day for Grades I","Dear Parent Greetings ! Kindly note- Saturday, 3rd May will be a regular working day for Grades I-XII. Open House for Grades IX-XII is rescheduled to Saturday,10th May. Thank you for your understanding in this regard. Best Wishes Anita Malhotra","Circular: Saturday, May 3rd is a regular working day for Grades I-XII; Open House for Grades IX-XII rescheduled to May 10th (Anita Malhotra)." +33,02/05/2025,ENGLISH,Adventures of Toto,"Q/A discussed","English: Questions and answers for ""Adventures of Toto"" discussed." +34,30/04/2025,SOCIAL SCIENCE,Tomorrow’s Schedule,"Dear Learners, After completion of revision for PA 1, we would commence Economics chapter 1 from tomorrow onwards. Please carry the books. Thanks and regards, SSC FACILITATOR","Social Science: Economics Chapter 1 will commence tomorrow after PA 1 revision; students to bring books." +35,30/04/2025,FRENCH,EVALUATION PLAN,PFA,"French: Evaluation plan attached." +36,29/04/2025,SCIENCE,Invitation to attend Popular Science Lecture “Science behind,"Dear Learners, PFA documents for reference. Please note-Last date is before or on 1st May 2025. Thanks","Science: Invitation and documents for a popular science lecture ""Science behind..."" provided; last date to register is May 1st, 2025." +37,29/04/2025,SOCIAL SCIENCE,Grade IX-SSC- PA-1 Revision Worksheets and Map work,"Dear Learners, PFA, the Revision Worksheets and Map work for your reference and practice. NOTE:BRING ONE POLITICAL MAP OF INDIA ON MONDAY (05.05.25) FOR PA1. Thanks Social Science Team","Social Science PA-1 (Grade IX): Revision worksheets and map work provided; students to bring a political map of India on Monday (05.05.25)." +38,28/04/2025,MATHEMATICS,Ch-2 Polynomials,"CW: Ex2.3 discussed till Q-3 HW : Complete HW parts Q-1,2,3","Mathematics: Exercise 2.3 (Polynomials) discussed up to Q-3 in class; homework is to complete remaining parts of Q-1, 2, and 3." +39,28/04/2025,SCIENCE,AK_PA-1_IX SCIENCE _2025-26,"Dear Learners, PFA documents for reference. Thanks","Science PA-1 (Grade IX): Documents provided for reference." +40,28/04/2025,CHEMISTRY,chemistry work,"CW - interconversion of state using temperaturw and pressure factors. HW-learners to draw representation of arrangement of molecules in in all three states of matter","Chemistry: Interconversion of states using temperature and pressure discussed; homework is to draw molecular arrangements in solid, liquid, and gas." +41,28/04/2025,CIRCULAR,"School will remain closed for students - Tuesday, 29th April","Dear Parent Please note - As per the Directives issued by the Government of Haryana , the School will remain closed for students tomorrow ie Tuesday, 29th April 2025 on account on Parshuram Jayanti. With Warm Regards Anita Malhotra","Circular: School closed for students on Tuesday, April 29th, 2025 due to Parshuram Jayanti (Anita Malhotra)." +42,25/04/2025,CHEMISTRY,chemistry work,"CW-characteristics of liquid and gas completed along with compressibility activity HW – learners to complete Intex question number three, a and b page 6 in notebook by Friday","Chemistry: Characteristics of liquid and gas, and compressibility activity completed; homework is to complete Intex Q3 (a & b, page 6) in notebook by Friday." +43,25/04/2025,FRENCH,updated grammar,PFS,"French: Updated grammar information provided (PFS)." +44,25/04/2025,FRENCH,GRAMAIRE,PFA,"French: Grammar information attached." +45,25/04/2025,SOCIAL SCIENCE,Schedule,"Dear Learners, We have concluded PA 1 syllabus and will Commence with revision from Monday. Please carry any one SSC NB and India/ world political maps for revision. Thanks and regards, SSC FACILITATOR","Social Science: PA 1 syllabus concluded, revision starts Monday. Bring SSC notebook and India/world maps." +46,24/04/2025,SOCIAL SCIENCE,GRADE IX-SSC-PA-1 EVALUATION PLAN,"Dear Learners, PFA the Evaluation plan for PA-1 SSC. Thanks, Social Science Team","Social Science PA-1 (Grade IX): Evaluation plan provided (Social Science Team)." +47,24/04/2025,ARTIFICIAL INTELLIGENCE,AI - Notebook Work and Activity Submission,"Dear Learners, You are requested to attempt questions 1-20 of the assignment booklet given on pages 29-30 in your notebook. AI Activity Submission: Create a 2D Smart Home Layout on an A4 sheet paper, mentioning/labelling the smart gadgets used in your homes. Please note the submission for both Notebook work and Smart Home Layout is 9th May'2025 Thanks & Regards Richa Taneja/Preety Bala","AI: Questions 1-20 from assignment booklet (pages 29-30) to be done in notebook; create a 2D Smart Home Layout (submission May 9th, 2025)." +48,24/04/2025,ENGLISH,Multiple Assessment,"Activity: ‘The Roads Within’ 1.On an A4 sheet, students illustrate the diverging roads from ‘The Road Not Taken’ and explain the extended metaphor in their own words. (30-40 words) 2.They expand it by comparing Frost’s roads to another metaphor (e.g., doors, rivers) and illustrate this connection. (30-40 words) 3.Finally, they add a short poem, quote, or phrase capturing the poem’s essence.","English: Multiple Assessment activity on 'The Road Not Taken' involving illustration, metaphor comparison, and adding a related poem/quote/phrase." +49,24/04/2025,ENGLISH,Classwork,The Lost Child - Discussed Multiple Assessment will be conducted on Friday 1st May .,English: ""The Lost Child"" discussed in class; Multiple Assessment on it will be on Friday May 1st." +50,24/04/2025,MATHEMATICS,Ch-2 Polynomials,"Ex-2.2 discussed till Q-3 , complete if not done. Bring AB notebooks for checking tomorrow.","Mathematics: Exercise 2.2 (Polynomials) discussed up to Q-3; students to complete if pending and bring Activity Book (AB) notebooks for checking tomorrow." +51,23/04/2025,FRENCH,WORKSHEET,PFA,"French: Worksheet attached." +52,23/04/2025,MATHEMATICS,Ch-2 Polynomials,Ex-2.1 Explained and discussed. Bring AB notebooks for checking tomorrow.,Mathematics: Exercise 2.1 (Polynomials) explained and discussed; students to bring Activity Book (AB) notebooks for checking tomorrow. +53,22/04/2025,CHEMISTRY,chemistry work,CW- Revision worksheet of PaI syllabus discussed. Learners to prepare class test of PaI syllabus and submit notebook and Ab for correction work.,Chemistry: Revision worksheet of PA-I syllabus discussed; students to prepare for class test and submit notebook and Activity Book (AB) for correction. +54,22/04/2025,FRENCH,lesson 4,PFA,"French: Lesson 4 material attached." +55,22/04/2025,SOCIAL SCIENCE,Geography,"Dear Learners, We have conculded the chapter India size and location. Please carry geography AB tomorrow. Completed History Notebook submission by tomorrow too. Thanks SSC FACILITATOR","Social Science (Geography): Chapter ""India size and location"" concluded; students to bring geography Activity Book (AB) and submit completed History notebooks tomorrow." +56,21/04/2025,CHEMISTRY,Revision worskheet,Dear leaders PFA REVSION WORKSHEET OF CHEMISTRY.,Chemistry: Revision worksheet provided. +57,21/04/2025,CHEMISTRY,reminder,Bring notebook for correction work tommorow with completion of PAI syllabus notes and question answers.,Chemistry: Reminder to bring notebooks tomorrow for correction with completed PA-I syllabus notes and question answers. +58,21/04/2025,CHEMISTRY,REVISION WORKSHEET CHEMISTRY,"Deal all PFA, revision worksheet of chemistry. Learners to get print of the same tommorow for discussion.","Chemistry: Revision worksheet provided; students to get a print for tomorrow's discussion." +59,21/04/2025,CHEMISTRY,REVISION WORKSHEET CHEMISTRY,"Deal all PFA, revision worksheet of chemistry. Learners to get print of the same tommorow for discussion.","Chemistry: Revision worksheet provided; students to get a print for tomorrow's discussion." +60,21/04/2025,ENGLISH,English Activity for the month of April,"Graphic Organiser (A4 Sheet) The Lost Child by Mulk Raj Anand Task: Based on your reading of The Lost Child, reflect on the vibrant fair the child visits with his parents. This fair is rooted in cultural celebration and community life. Now, think of a seasonal festival fair celebrated in any part of India that shares a similar sense of vibrancy, colour, and local tradition. Design a graphic organiser on an A4 sheet that showcases the festival fair of your choice. Ensure that the organiser includes the following elements: 1. Name and Region – What is the name of the festival and where is it celebrated? 2. Season – Which season does it fall in, and how does that influence the fair's activities and setting? 3. Key Attractions – Describe some visual, auditory, or sensory elements (like in The Lost Child – toys, sweets, snake charmers, rides, etc.) 4. Emotional/Personal Response – If you were the child in the story, how might your experience be similar or different at this fair? 5. Literary Parallel – Make a connection to the story – how does this fair reflect the themes of innocence, desire, or belonging seen in the text? Illustrations/Visuals – Add labelled images or drawings to bring your organiser to life. Bonus Element (Optional): Add a short quote from The Lost Child that resonates with the spirit of the fair you’ve chosen – you can paraphrase if needed.","English (April Activity): Create a graphic organizer comparing the fair in ""The Lost Child"" with a vibrant Indian festival fair, including details on name, region, season, attractions, emotional response, and literary parallel." +61,21/04/2025,MATHEMATICS,Number system,"AB of Number system discussed in Class. Complete if not done. Bring School live Magazine tomorrow with two A4 size",Mathematics: Activity Book (AB) of Number System discussed; students to complete if pending and bring School Live Magazine with two A4 size colored sheets tomorrow. +62,21/04/2025,ENGLISH,English April Activity,"Graphic Organiser (A4 Sheet) The Lost Child by Mulk Raj Anand Task: Based on your reading of The Lost Child, reflect on the vibrant fair the child visits with his parents. This fair is rooted in cultural celebration and community life. Now, think of a seasonal festival fair celebrated in any part of India that shares a similar sense of vibrancy, colour, and local tradition. Design a graphic organiser on an A4 sheet that showcases the festival fair of your choice. Ensure that the organiser includes the following elements: 1. Name and Region – What is the name of the festival and where is it celebrated? 2. Season – Which season does it fall in, and how does that influence the fair's activities and setting? 3. Key Attractions – Describe some visual, auditory, or sensory elements (like in The Lost Child – toys, sweets, snake charmers, rides, etc.) 4. Emotional/Personal Response – If you were the child in the story, how might your experience be similar or different at this fair? 5. Literary Parallel – Make a connection to the story – how does this fair reflect the themes of innocence, desire, or belonging seen in the text? Illustrations/Visuals – Add labelled images or drawings to bring your organiser to life. Bonus Element (Optional): Add a short quote from The Lost Child that resonates with the spirit of the fair you’ve chosen – you can paraphrase if needed.","English (April Activity): Create a graphic organizer comparing the fair in ""The Lost Child"" with a vibrant Indian festival fair, including details on name, region, season, attractions, emotional response, and literary parallel." +63,21/04/2025,PHYSICS,PHYSICS REVISION WORKSHEET,"Dear learners, PFA. Warm regards","Physics: Revision worksheet provided." +64,20/04/2025,CHEMISTRY,reminder,Bring NOTEBOOK and AB of chemistry for tomorrow 's class,Chemistry: Reminder to bring notebook and Activity Book (AB) for tomorrow's class. +65,19/04/2025,SCIENCE,GR IX _SCIENCE _EVALUATION PLAN_PA1(2025-26),"Dear Learners, PFA documents for reference. Thanks","Science PA-1 (Grade IX): Evaluation plan documents provided for reference." +66,18/04/2025,CIRCULAR,ATL,"Dear learners Inviting applications from interested participants for ROBORUSH 1.0 -a high-speed, high-energy Robot Race & Project Showcase 1) Robot Race – hit the track, and race to victory! Speed, control, and precision are all that matter! 2)Project Showcase – Flex your tech creations and leave everyone speechless! Date: 26 April 2025 Big prizes, ultimate bragging rights, and tech glory await! Interested learners to mail their idea/ interest in participating at ATLLVISG@lotusvalleygurgaon.com latest by 20.04.25 Regards","Circular (ATL): Invitation for ROBORUSH 1.0 (Robot Race & Project Showcase on April 26th, 2025); interested students to email their ideas by April 20th." +67,17/04/2025,PHYSICS,PHYSICS: MOTION,"Dear learners, CW- v-t graph was discussed & numericals on the same were done in class. HW- AB Questions related to the topic Thank you","Physics: Velocity-time (v-t) graph discussed with numericals; homework is Activity Book (AB) questions on the topic." +68,17/04/2025,MATHEMATICS,CH-1 NUMBER SYSTEM,"AB McQ, Case study and subjective till Q4 were discussed. Do Q-1 &2 (subjective) in AB notebooks.","Mathematics: Activity Book (AB) MCQs, case studies, and subjective questions up to Q4 discussed; homework is to do subjective Q-1 & 2 in AB notebooks." +69,17/04/2025,SCIENCE,NAEST CIRCULAR,"Dear Parents, PFA documents for reference. Thanks","Science: NAEST circular documents provided for parents' reference." +70,17/04/2025,BIOLOGY,BIOLOGY,CW- The written revision for PA-1 was done today in class. Doubts related to chapter fundamental unit of life were also cleared. Submit your biology notebook and AB on Monday for checking. Biology: Written revision for PA-1 done in class doubts cleared on ""Fundamental Unit of Life""; submit biology notebook and Activity Book (AB) on Monday for checking." +71,17/04/2025,ENGLISH,English,"The Road not Taken - completed Hw - SAQ -1,2; LAQ - 2 Please carry Moments for Monday","English: ""The Road Not Taken"" completed; homework is SAQ-1,2 and LAQ-2; bring ""Moments"" textbook for Monday." +72,16/04/2025,CIRCULAR,Heritage Day Activity,"Dear Students, As discussed in class, please be prepared for the Heritage Day activity. Kindly share either a video or a photograph along with your blog post by mailing it to: priyanka.zulfikar@lotusvalleygurgaon.com. Looking forward to your enthusiastic participation!","Circular: Students to prepare for Heritage Day activity and share a video or photograph with their blog post via email to priyanka.zulfikar@lotusvalleygurgaon.com." +73,16/04/2025,MATHEMATICS,CH-1 NUMBER SYSTEM,"MCQ questions of AB were discussed in class. Do case study-1 & 2 , Subjective-1 &2 in AB notebooks. List your doubts .","Mathematics: Activity Book (AB) MCQs discussed; homework is to do case studies 1 & 2 and subjective questions 1 & 2 in AB notebooks; students to list their doubts." +74,15/04/2025,BIOLOGY,Biology,"Dear Learners Please submit your biology notebook tomorrow for checking with all the diagrams, in-text questions, and back exercises of the chapter—Fundamental Unit of Life—as mentioned in the class. Kindly carry biology AB tomorrow. HW- Revise chapter - Fundamental unit of life till cell wall for written revision on Thursday, 17 Th April .","Biology: Submit biology notebook tomorrow for checking (diagrams, in-text questions, back exercises of ""Fundamental Unit of Life""); bring biology Activity Book (AB) tomorrow; homework is to revise ""Fundamental Unit of Life"" up to the cell wall for a written revision on Thursday, April 17th." +75,15/04/2025,MATHEMATICS,NUMBER SYSTEM,Ncert discussed for Ex -1.4 and 1.5. Complete diff --git a/backend/llm/datasetinfo.csv b/backend/llm/datasetinfo.csv new file mode 100644 index 0000000..f8fa361 --- /dev/null +++ b/backend/llm/datasetinfo.csv @@ -0,0 +1,76 @@ +Serial,Date,Subject,Title,Description,Summary +1,15/05/2025,ENGLISH,Wind,"Explanation completed Notebook work - SAQ1,2 and LAQ - 1","English: Wind chapter explanation and notebook work (SAQ1,2, LAQ-1) done." +2,15/05/2025,ARTIFICIAL INTELLIGENCE,AI- Evaluation Plan and Sample Paper for PA1,"Dear learners, PFA is the evaluation plan, sample paper, and answer key for the upcoming AI PA1. Regards, Richa Taneja","AI PA1: Evaluation plan, sample paper, and answer key provided (Richa Taneja)." +3,15/05/2025,BIOLOGY,LAB VISIT,"CW-Onion and cheek cell activity completed. HW-Submit practical file with index in next bio class.","Biology: Onion and cheek cell activity completed in class; practical file submission due next class." +4,15/05/2025,MATHEMATICS,WS OF POLYNOMIALS,"Worksheet of Polynomials was discussed in class. List doubts if any. Prepare PA-1 syllabus for test tomorrow.","Mathematics: Polynomials worksheet discussed; students to list doubts and prepare for PA-1 test." +5,14/05/2025,ENGLISH,ENGLISH PA1 - EVALUATION PLAN,"Dear Students, PFA the EVALUATION PLAN for Grade 9 PA1","English PA1: Evaluation plan for Grade 9 provided." +6,14/05/2025,SOCIAL SCIENCE,Political Science Chapter 1,"Dear Learners, Request you all to read pages 2-7 of chapter 1 today for an active discussion in the class. Thanks and regards, SSC FACILITATOR","Social Science: Students requested to read Political Science Chapter 1 (pages 2-7) for class discussion." +7,14/05/2025,SOCIAL SCIENCE,Political Science Chapter 1,"Dear Learners, Request you all to read pages 2-7 of chapter 1 today for an active discussion in the class. Thanks and regards, SSC FACILITATOR","Social Science: Students requested to read Political Science Chapter 1 (pages 2-7) for class discussion." +8,13/05/2025,MATHEMATICS,Revision Worksheet- Polynomials,"Dear Learners PFA the worksheet and do it in your notebook. Regards","Mathematics: Revision worksheet on Polynomials provided; to be completed in the notebook." +9,12/05/2025,CIRCULAR,Donation Drive Announcement,"Dear Learners, We're excited to launch a Donation Drive from *13th May to 30th May 2025* in support of *Spreading Smiles Gyan Kendra and the Lotus Petal Foundation* . This initiative aims to bring joy and learning to students in under-resourced schools. *We are collecting the following items* : -Educational material -Old textbooks -Work books -Activity books -Story books -Drawing books -Unused notebooks -Stationery items (pens, pencils, erasers, sharpeners, rulers etc.) -Basic art supplies (color pencils, crayons, drawing pads etc.) To make your contributions, kindly drop your donations in the *labeled boxes (Books | Stationery*) placed in both the *C Block foyer and A Block foyer* . Your small contribution can make a big difference in someone's learning journey. Let’s come together as a community to make that difference count. Warm regards, Community Service Committee","Circular: Donation drive for educational materials and stationery (May 13-30, 2025) to support Spreading Smiles Gyan Kendra and Lotus Petal Foundation. Drop donations in labeled boxes." +10,10/05/2025,MATHEMATICS,Revision Worksheet 1 (Number System),"Dear Learners PFA and do the worksheet in your notebook.","Mathematics: Revision worksheet on Number System provided; to be completed in the notebook." +11,10/05/2025,CIRCULAR,UPDATED_NAEST CIRCULAR 2025,"Dear Learners, PFA documents for reference. A gentle reminder. Thanks","Circular: Updated NAEST circular 2025 provided for reference." +12,08/05/2025,MATHEMATICS,Ch-2 Polynomials,"AB of ch- Polynomials completed today. Complete if not done. Prepare Ch-1 for test tomorrow. Bring notebooks for checking.","Mathematics: Activity Book (AB) for Polynomials (Ch-2) completed; students to complete if pending, prepare for Ch-1 test, and bring notebooks for checking." +13,08/05/2025,CIRCULAR,Adobe Summer Boot Camp: Session Link for 8th May'2025,"Dear Learners, Join us today for Session 2 of Summer Bootcamp and celebrate the timeless legacy of Rabindranath Tagore – poet, philosopher, and visionary. 🗓️ Date: May 8, 2025 ⏰ Time: 3:15 - 5:00 PM 📍 LINK: https://tinyurl.com/AEBootcamp2 Don’t miss it! Regards, Richa Taneja","Circular: Link provided for Adobe Summer Boot Camp Session 2 (May 8, 3:15-5:00 PM)." +14,08/05/2025,PHYSICS,Units & Measurements,"Dear learners, Deriving formula using dimensional analysis is covered in class. HW- Questions given as HW in class. Thank you","Physics: Derivation of formulas using dimensional analysis covered in class; homework assigned." +15,07/05/2025,ENGLISH,Sound of Music,"Reading and Explanation completed","English: Reading and explanation of ""Sound of Music"" completed." +16,07/05/2025,SOCIAL SCIENCE,economics update,"Dear Learners, As we have concluded chapter 1, we will start with AB from tomorrow. Please carry your Eco AB and notebook tomorrow. Thanks and regards, SSC FACILITATOR","Social Science (Economics): Chapter 1 concluded; Activity Book (AB) work starts tomorrow, students to bring Eco AB and notebook." +17,07/05/2025,BIOLOGY,Biology,"CW- Explained the cell organelles today in the class . HW- Write onion peel and Cheek cells experment in the practical file and bring it on wednesday . For practical class bring one icecrem stick.","Biology: Cell organelles explained in class; homework is to write onion peel and cheek cell experiment in practical file and bring it with an ice cream stick on Wednesday." +18,07/05/2025,CIRCULAR,WORLD TECHNOLOGY DAY _CANVA MAKING,"Dear Learners, Please note-You are required to design a poster on Canva on the topic ""Green technology and sustainability"" and email it to your Class Teacher by May 8, 2025. The submitted work will be screen-shared in class on May 9, 2025.","Circular: Students to design a Canva poster on ""Green technology and sustainability"" and email it to the class teacher by May 8th for sharing on May 9th." +19,06/05/2025,CIRCULAR,Adobe Summer Boot Camp: Login Video,"Dear Learners, PFA a short video on how to log in to the Adobe Express accounts. Regards, Richa Taneja","Circular: Login video for Adobe Express accounts provided (Richa Taneja)." +20,06/05/2025,MATHEMATICS,Ch-2 Polynomials,"Ch-2 Polynomials completed from Ncert. Bring AB and AB notebooks tomorrow. Submit Ncert notebooks for checking tomorrow.","Mathematics: Chapter 2 (Polynomials) from NCERT completed; students to bring Activity Book (AB) and AB notebooks, and submit NCERT notebooks for checking tomorrow." +21,05/05/2025,SOCIAL SCIENCE,SSC-PA-1_MS_5.5.25,"Dear Learners, PFA the MS of PA-1 for reference. Thanks SSC Team","Social Science PA-1: Marking scheme provided for reference (SSC Team)." +22,05/05/2025,CIRCULAR,Adobe Summer Bootcamp,"Dear Learners, Adobe is organising a summer bootcamp for students of grades V-X. The details for the camp is attached. Learners who are interested to enrol, please contact your respective computer teacher at the earliest. Regards, Richa Taneja","Circular: Adobe Summer Bootcamp for Grades V-X announced; interested students to contact their computer teacher for enrollment (Richa Taneja)." +23,05/05/2025,ENGLISH,Writing Skills,"Decriptive Paragraph ( person) completed Honework - Assignment Booklet - Q6","English: Descriptive paragraph (person) completed in class; homework is Q6 from the Assignment Booklet." +24,05/05/2025,CIRCULAR,Adobe Summer BootCamp : 5th May'2025 Session Link,"Dear Learners, PFA the link for 5th May'2025 session. All those who are interested may kindly login to the session. Join us Today for the first session of the Student Bootcamp. Time : 3:00-4:30. Link : https://tinyurl.com/AEBootcamp1 *Students reaching home by 3:15-3:30 can also join us and learn something new every Monday and Thursday. Regards, Richa Taneja","Circular: Link provided for the Adobe Summer BootCamp session on May 5th (3:00-4:30 PM)." +25,05/05/2025,FRENCH,REVISION TEST,"Revision test of past participles tomorrow","French: Revision test on past participles scheduled for tomorrow." +26,03/05/2025,CIRCULAR,Early Dispersal,"Dear Parents, Greetings! Since we are in receipt of multiple requests for early exit from the school today, we have taken a conscious decision of closing the school at 12:30 pm. Dispersal of the bus users - 12:30 pm and the walkers - 12:40 pm. We solicit your understanding and cooperation in this matter. Warm Regards, Anita Malhotra Director - Principal 03.05.2025","Circular: Early school dispersal at 12:30 PM for bus users and 12:40 PM for walkers (Anita Malhotra)." +27,02/05/2025,CIRCULAR,IMPORTANT ANNOUNCEMENT,"Dear Parent Please note Due to the inclement weather conditions , we are constrained to reschedule the *Investiture Ceremony to Saturday , 3rd May at 9.00 am* (Subject to weather conditions) Inconvenience regretted Warm Regards Anita Malhotra","Circular: Investiture Ceremony rescheduled to Saturday, May 3rd at 9:00 AM due to weather (Anita Malhotra)." +28,02/05/2025,CIRCULAR,"Open House for Grades IX-XII Saturday,10","Dear Parent Greetings ! Kindly note- *Saturday, 3rd May will be a regular working day for Grades I-XII*. *Open House for Grades IX-XII is rescheduled to Saturday,10th May.* Thank you for your understanding in this regard. Best Wishes Anita Malhotra","Circular: Saturday, May 3rd will be a regular working day for Grades I-XII; Open House for Grades IX-XII rescheduled to Saturday, May 10th (Anita Malhotra)." +29,02/05/2025,CIRCULAR,IMPORTANT,"Dear Parent Please note Due to the inclement weather conditions , we are constrained to reschedule the Investiture Ceremony to Saturday , 3rd May at 9.00 am (Subject to weather conditions) Inconvenience regretted Warm Regards Anita Malhotra","Circular: Investiture Ceremony rescheduled to Saturday, May 3rd at 9:00 AM due to weather (Anita Malhotra)." +30,02/05/2025,ALL,Cascade - Magazine Submissions,"Dear Learners, We are excited to invite your submissions for our annual school magazine, Cascade. Looking at the overwhelming response, the final date of submission has been extended to 10th May 2025. All students from Grades IV to XII are welcome to contribute articles, short essays, comic strips, jokes, riddles, and poems to be featured in this year’s edition. Please ensure the entries are original and free from plagiarism. You may email your entries at cascade.lvisg@lotusvalleygurgaon.com, latest by 10th May 2025. We look forward to your creative contributions! Editorial Team","All: Deadline for Cascade school magazine submissions (Grades IV-XII) extended to May 10th, 2025. Email entries to cascade.lvisg@lotusvalleygurgaon.com." +31,02/05/2025,CIRCULAR,IMPORTANT INFORMATION,"Dear Parent, Greetings! This is to inform you that due to the postponement of the Investiture Ceremony to Saturday, 3rd May,25 the Open House has been rescheduled to Saturday,17th May’25. Saturday,3rd May, will be observed as a working day for Grades IV-XII and Tuesday’s time table shall be followed. Thank you for your understanding in this regard. Warm regards, Anita Malhotra Director-Principal 02.05.2025","Circular: Open House rescheduled to May 17th due to Investiture Ceremony postponement; Saturday, May 3rd is a working day for Grades IV-XII (Tuesday's timetable to be followed) - Anita Malhotra." +32,02/05/2025,CIRCULAR,"Saturday, 3rd May will be a regular working day for Grades I","Dear Parent Greetings ! Kindly note- Saturday, 3rd May will be a regular working day for Grades I-XII. Open House for Grades IX-XII is rescheduled to Saturday,10th May. Thank you for your understanding in this regard. Best Wishes Anita Malhotra","Circular: Saturday, May 3rd is a regular working day for Grades I-XII; Open House for Grades IX-XII rescheduled to May 10th (Anita Malhotra)." +33,02/05/2025,ENGLISH,Adventures of Toto,"Q/A discussed","English: Questions and answers for ""Adventures of Toto"" discussed." +34,30/04/2025,SOCIAL SCIENCE,Tomorrow’s Schedule,"Dear Learners, After completion of revision for PA 1, we would commence Economics chapter 1 from tomorrow onwards. Please carry the books. Thanks and regards, SSC FACILITATOR","Social Science: Economics Chapter 1 will commence tomorrow after PA 1 revision; students to bring books." +35,30/04/2025,FRENCH,EVALUATION PLAN,PFA,"French: Evaluation plan attached." +36,29/04/2025,SCIENCE,Invitation to attend Popular Science Lecture “Science behind,"Dear Learners, PFA documents for reference. Please note-Last date is before or on 1st May 2025. Thanks","Science: Invitation and documents for a popular science lecture ""Science behind..."" provided; last date to register is May 1st, 2025." +37,29/04/2025,SOCIAL SCIENCE,Grade IX-SSC- PA-1 Revision Worksheets and Map work,"Dear Learners, PFA, the Revision Worksheets and Map work for your reference and practice. NOTE:BRING ONE POLITICAL MAP OF INDIA ON MONDAY (05.05.25) FOR PA1. Thanks Social Science Team","Social Science PA-1 (Grade IX): Revision worksheets and map work provided; students to bring a political map of India on Monday (05.05.25)." +38,28/04/2025,MATHEMATICS,Ch-2 Polynomials,"CW: Ex2.3 discussed till Q-3 HW : Complete HW parts Q-1,2,3","Mathematics: Exercise 2.3 (Polynomials) discussed up to Q-3 in class; homework is to complete remaining parts of Q-1, 2, and 3." +39,28/04/2025,SCIENCE,AK_PA-1_IX SCIENCE _2025-26,"Dear Learners, PFA documents for reference. Thanks","Science PA-1 (Grade IX): Documents provided for reference." +40,28/04/2025,CHEMISTRY,chemistry work,"CW - interconversion of state using temperaturw and pressure factors. HW-learners to draw representation of arrangement of molecules in in all three states of matter","Chemistry: Interconversion of states using temperature and pressure discussed; homework is to draw molecular arrangements in solid, liquid, and gas." +41,28/04/2025,CIRCULAR,"School will remain closed for students - Tuesday, 29th April","Dear Parent Please note - As per the Directives issued by the Government of Haryana , the School will remain closed for students tomorrow ie Tuesday, 29th April 2025 on account on Parshuram Jayanti. With Warm Regards Anita Malhotra","Circular: School closed for students on Tuesday, April 29th, 2025 due to Parshuram Jayanti (Anita Malhotra)." +42,25/04/2025,CHEMISTRY,chemistry work,"CW-characteristics of liquid and gas completed along with compressibility activity HW – learners to complete Intex question number three, a and b page 6 in notebook by Friday","Chemistry: Characteristics of liquid and gas, and compressibility activity completed; homework is to complete Intex Q3 (a & b, page 6) in notebook by Friday." +43,25/04/2025,FRENCH,updated grammar,PFS,"French: Updated grammar information provided (PFS)." +44,25/04/2025,FRENCH,GRAMAIRE,PFA,"French: Grammar information attached." +45,25/04/2025,SOCIAL SCIENCE,Schedule,"Dear Learners, We have concluded PA 1 syllabus and will Commence with revision from Monday. Please carry any one SSC NB and India/ world political maps for revision. Thanks and regards, SSC FACILITATOR","Social Science: PA 1 syllabus concluded, revision starts Monday. Bring SSC notebook and India/world maps." +46,24/04/2025,SOCIAL SCIENCE,GRADE IX-SSC-PA-1 EVALUATION PLAN,"Dear Learners, PFA the Evaluation plan for PA-1 SSC. Thanks, Social Science Team","Social Science PA-1 (Grade IX): Evaluation plan provided (Social Science Team)." +47,24/04/2025,ARTIFICIAL INTELLIGENCE,AI - Notebook Work and Activity Submission,"Dear Learners, You are requested to attempt questions 1-20 of the assignment booklet given on pages 29-30 in your notebook. AI Activity Submission: Create a 2D Smart Home Layout on an A4 sheet paper, mentioning/labelling the smart gadgets used in your homes. Please note the submission for both Notebook work and Smart Home Layout is 9th May'2025 Thanks & Regards Richa Taneja/Preety Bala","AI: Questions 1-20 from assignment booklet (pages 29-30) to be done in notebook; create a 2D Smart Home Layout (submission May 9th, 2025)." +48,24/04/2025,ENGLISH,Multiple Assessment,"Activity: ‘The Roads Within’ 1.On an A4 sheet, students illustrate the diverging roads from ‘The Road Not Taken’ and explain the extended metaphor in their own words. (30-40 words) 2.They expand it by comparing Frost’s roads to another metaphor (e.g., doors, rivers) and illustrate this connection. (30-40 words) 3.Finally, they add a short poem, quote, or phrase capturing the poem’s essence.","English: Multiple Assessment activity on 'The Road Not Taken' involving illustration, metaphor comparison, and adding a related poem/quote/phrase." +49,24/04/2025,ENGLISH,Classwork,The Lost Child - Discussed Multiple Assessment will be conducted on Friday 1st May .,English: ""The Lost Child"" discussed in class; Multiple Assessment on it will be on Friday May 1st." +50,24/04/2025,MATHEMATICS,Ch-2 Polynomials,"Ex-2.2 discussed till Q-3 , complete if not done. Bring AB notebooks for checking tomorrow.","Mathematics: Exercise 2.2 (Polynomials) discussed up to Q-3; students to complete if pending and bring Activity Book (AB) notebooks for checking tomorrow." +51,23/04/2025,FRENCH,WORKSHEET,PFA,"French: Worksheet attached." +52,23/04/2025,MATHEMATICS,Ch-2 Polynomials,Ex-2.1 Explained and discussed. Bring AB notebooks for checking tomorrow.,Mathematics: Exercise 2.1 (Polynomials) explained and discussed; students to bring Activity Book (AB) notebooks for checking tomorrow. +53,22/04/2025,CHEMISTRY,chemistry work,CW- Revision worksheet of PaI syllabus discussed. Learners to prepare class test of PaI syllabus and submit notebook and Ab for correction work.,Chemistry: Revision worksheet of PA-I syllabus discussed; students to prepare for class test and submit notebook and Activity Book (AB) for correction. +54,22/04/2025,FRENCH,lesson 4,PFA,"French: Lesson 4 material attached." +55,22/04/2025,SOCIAL SCIENCE,Geography,"Dear Learners, We have conculded the chapter India size and location. Please carry geography AB tomorrow. Completed History Notebook submission by tomorrow too. Thanks SSC FACILITATOR","Social Science (Geography): Chapter ""India size and location"" concluded; students to bring geography Activity Book (AB) and submit completed History notebooks tomorrow." +56,21/04/2025,CHEMISTRY,Revision worskheet,Dear leaders PFA REVSION WORKSHEET OF CHEMISTRY.,Chemistry: Revision worksheet provided. +57,21/04/2025,CHEMISTRY,reminder,Bring notebook for correction work tommorow with completion of PAI syllabus notes and question answers.,Chemistry: Reminder to bring notebooks tomorrow for correction with completed PA-I syllabus notes and question answers. +58,21/04/2025,CHEMISTRY,REVISION WORKSHEET CHEMISTRY,"Deal all PFA, revision worksheet of chemistry. Learners to get print of the same tommorow for discussion.","Chemistry: Revision worksheet provided; students to get a print for tomorrow's discussion." +59,21/04/2025,CHEMISTRY,REVISION WORKSHEET CHEMISTRY,"Deal all PFA, revision worksheet of chemistry. Learners to get print of the same tommorow for discussion.","Chemistry: Revision worksheet provided; students to get a print for tomorrow's discussion." +60,21/04/2025,ENGLISH,English Activity for the month of April,"Graphic Organiser (A4 Sheet) The Lost Child by Mulk Raj Anand Task: Based on your reading of The Lost Child, reflect on the vibrant fair the child visits with his parents. This fair is rooted in cultural celebration and community life. Now, think of a seasonal festival fair celebrated in any part of India that shares a similar sense of vibrancy, colour, and local tradition. Design a graphic organiser on an A4 sheet that showcases the festival fair of your choice. Ensure that the organiser includes the following elements: 1. Name and Region – What is the name of the festival and where is it celebrated? 2. Season – Which season does it fall in, and how does that influence the fair's activities and setting? 3. Key Attractions – Describe some visual, auditory, or sensory elements (like in The Lost Child – toys, sweets, snake charmers, rides, etc.) 4. Emotional/Personal Response – If you were the child in the story, how might your experience be similar or different at this fair? 5. Literary Parallel – Make a connection to the story – how does this fair reflect the themes of innocence, desire, or belonging seen in the text? Illustrations/Visuals – Add labelled images or drawings to bring your organiser to life. Bonus Element (Optional): Add a short quote from The Lost Child that resonates with the spirit of the fair you’ve chosen – you can paraphrase if needed.","English (April Activity): Create a graphic organizer comparing the fair in ""The Lost Child"" with a vibrant Indian festival fair, including details on name, region, season, attractions, emotional response, and literary parallel." +61,21/04/2025,MATHEMATICS,Number system,"AB of Number system discussed in Class. Complete if not done. Bring School live Magazine tomorrow with two A4 size",Mathematics: Activity Book (AB) of Number System discussed; students to complete if pending and bring School Live Magazine with two A4 size colored sheets tomorrow. +62,21/04/2025,ENGLISH,English April Activity,"Graphic Organiser (A4 Sheet) The Lost Child by Mulk Raj Anand Task: Based on your reading of The Lost Child, reflect on the vibrant fair the child visits with his parents. This fair is rooted in cultural celebration and community life. Now, think of a seasonal festival fair celebrated in any part of India that shares a similar sense of vibrancy, colour, and local tradition. Design a graphic organiser on an A4 sheet that showcases the festival fair of your choice. Ensure that the organiser includes the following elements: 1. Name and Region – What is the name of the festival and where is it celebrated? 2. Season – Which season does it fall in, and how does that influence the fair's activities and setting? 3. Key Attractions – Describe some visual, auditory, or sensory elements (like in The Lost Child – toys, sweets, snake charmers, rides, etc.) 4. Emotional/Personal Response – If you were the child in the story, how might your experience be similar or different at this fair? 5. Literary Parallel – Make a connection to the story – how does this fair reflect the themes of innocence, desire, or belonging seen in the text? Illustrations/Visuals – Add labelled images or drawings to bring your organiser to life. Bonus Element (Optional): Add a short quote from The Lost Child that resonates with the spirit of the fair you’ve chosen – you can paraphrase if needed.","English (April Activity): Create a graphic organizer comparing the fair in ""The Lost Child"" with a vibrant Indian festival fair, including details on name, region, season, attractions, emotional response, and literary parallel." +63,21/04/2025,PHYSICS,PHYSICS REVISION WORKSHEET,"Dear learners, PFA. Warm regards","Physics: Revision worksheet provided." +64,20/04/2025,CHEMISTRY,reminder,Bring NOTEBOOK and AB of chemistry for tomorrow 's class,Chemistry: Reminder to bring notebook and Activity Book (AB) for tomorrow's class. +65,19/04/2025,SCIENCE,GR IX _SCIENCE _EVALUATION PLAN_PA1(2025-26),"Dear Learners, PFA documents for reference. Thanks","Science PA-1 (Grade IX): Evaluation plan documents provided for reference." +66,18/04/2025,CIRCULAR,ATL,"Dear learners Inviting applications from interested participants for ROBORUSH 1.0 -a high-speed, high-energy Robot Race & Project Showcase 1) Robot Race – hit the track, and race to victory! Speed, control, and precision are all that matter! 2)Project Showcase – Flex your tech creations and leave everyone speechless! Date: 26 April 2025 Big prizes, ultimate bragging rights, and tech glory await! Interested learners to mail their idea/ interest in participating at ATLLVISG@lotusvalleygurgaon.com latest by 20.04.25 Regards","Circular (ATL): Invitation for ROBORUSH 1.0 (Robot Race & Project Showcase on April 26th, 2025); interested students to email their ideas by April 20th." +67,17/04/2025,PHYSICS,PHYSICS: MOTION,"Dear learners, CW- v-t graph was discussed & numericals on the same were done in class. HW- AB Questions related to the topic Thank you","Physics: Velocity-time (v-t) graph discussed with numericals; homework is Activity Book (AB) questions on the topic." +68,17/04/2025,MATHEMATICS,CH-1 NUMBER SYSTEM,"AB McQ, Case study and subjective till Q4 were discussed. Do Q-1 &2 (subjective) in AB notebooks.","Mathematics: Activity Book (AB) MCQs, case studies, and subjective questions up to Q4 discussed; homework is to do subjective Q-1 & 2 in AB notebooks." +69,17/04/2025,SCIENCE,NAEST CIRCULAR,"Dear Parents, PFA documents for reference. Thanks","Science: NAEST circular documents provided for parents' reference." +70,17/04/2025,BIOLOGY,BIOLOGY,CW- The written revision for PA-1 was done today in class. Doubts related to chapter fundamental unit of life were also cleared. Submit your biology notebook and AB on Monday for checking. Biology: Written revision for PA-1 done in class doubts cleared on ""Fundamental Unit of Life""; submit biology notebook and Activity Book (AB) on Monday for checking." +71,17/04/2025,ENGLISH,English,"The Road not Taken - completed Hw - SAQ -1,2; LAQ - 2 Please carry Moments for Monday","English: ""The Road Not Taken"" completed; homework is SAQ-1,2 and LAQ-2; bring ""Moments"" textbook for Monday." +72,16/04/2025,CIRCULAR,Heritage Day Activity,"Dear Students, As discussed in class, please be prepared for the Heritage Day activity. Kindly share either a video or a photograph along with your blog post by mailing it to: priyanka.zulfikar@lotusvalleygurgaon.com. Looking forward to your enthusiastic participation!","Circular: Students to prepare for Heritage Day activity and share a video or photograph with their blog post via email to priyanka.zulfikar@lotusvalleygurgaon.com." +73,16/04/2025,MATHEMATICS,CH-1 NUMBER SYSTEM,"MCQ questions of AB were discussed in class. Do case study-1 & 2 , Subjective-1 &2 in AB notebooks. List your doubts .","Mathematics: Activity Book (AB) MCQs discussed; homework is to do case studies 1 & 2 and subjective questions 1 & 2 in AB notebooks; students to list their doubts." +74,15/04/2025,BIOLOGY,Biology,"Dear Learners Please submit your biology notebook tomorrow for checking with all the diagrams, in-text questions, and back exercises of the chapter—Fundamental Unit of Life—as mentioned in the class. Kindly carry biology AB tomorrow. HW- Revise chapter - Fundamental unit of life till cell wall for written revision on Thursday, 17 Th April .","Biology: Submit biology notebook tomorrow for checking (diagrams, in-text questions, back exercises of ""Fundamental Unit of Life""); bring biology Activity Book (AB) tomorrow; homework is to revise ""Fundamental Unit of Life"" up to the cell wall for a written revision on Thursday, April 17th." +75,15/04/2025,MATHEMATICS,NUMBER SYSTEM,Ncert discussed for Ex -1.4 and 1.5. Complete if not done . Bring AB and AB notebooks tomorrow.,Mathematics: NCERT exercises 1.4 and 1.5 discussed; students to complete if pending and bring Activity Book (AB) and AB notebooks tomorrow. \ No newline at end of file diff --git a/backend/llm/help2.ipynb b/backend/llm/help2.ipynb new file mode 100644 index 0000000..f84b54d --- /dev/null +++ b/backend/llm/help2.ipynb @@ -0,0 +1,238 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "id": "32b385c6", + "metadata": {}, + "outputs": [], + "source": [ + "%pip install torch tiktoken sentencepiece blobfile datasets" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6b3757b2", + "metadata": {}, + "outputs": [], + "source": [ + "from huggingface_hub import login\n", + "login(token=\"enter token here\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "45ef6293", + "metadata": {}, + "outputs": [], + "source": [ + "# Load model directly\n", + "from transformers import AutoTokenizer, AutoModelForCausalLM\n", + "\n", + "tokenizer = AutoTokenizer.from_pretrained(\"openai-community/gpt2-medium\")\n", + "model = AutoModelForCausalLM.from_pretrained(\"openai-community/gpt2-medium\")\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7eb61cc1", + "metadata": {}, + "outputs": [], + "source": [ + "from transformers import AutoTokenizer, AutoModelForCausalLM, Trainer, TrainingArguments\n", + "from datasets import load_dataset\n", + "import torch\n", + "\n", + "# Load the dataset\n", + "dataset = load_dataset(\"ParthKadam2003/NCERT_Dataset\")\n", + "\n", + "if \"validation\" not in dataset:\n", + " dataset = dataset[\"train\"].train_test_split(test_size=0.1)\n", + " print(\"Dataset split into 90% train and 10% validation.\")\n", + "# Load GPT-2 Medium model and tokenizer\n", + "model_name = \"meta-llama/Llama-3.2-3B-Instruct\"\n", + "tokenizer = AutoTokenizer.from_pretrained(model_name)\n", + "model = AutoModelForCausalLM.from_pretrained(\n", + " model_name,\n", + " device_map=\"auto\", # Use GPU if available\n", + " torch_dtype=torch.float32\n", + ")\n", + "tokenizer.pad_token = tokenizer.eos_token\n", + "model.config.pad_token_id = tokenizer.eos_token_id\n", + "# Tokenize the dataset (using Explanation column)\n", + "def tokenize_function(examples):\n", + " tokens = tokenizer(examples[\"Explanation\"], \n", + " truncation=True, \n", + " padding=\"max_length\", \n", + " max_length=128)\n", + " tokens[\"labels\"] = tokens[\"input_ids\"].copy() # Set labels as a copy of input_ids\n", + " return tokens\n", + "\n", + "tokenized_datasets = dataset.map(tokenize_function, batched=True, remove_columns=[\"Explanation\"])\n", + "# Set training arguments\n", + "training_args = TrainingArguments(\n", + " output_dir=\"llama-3_2Instruct-science-finetuned\",\n", + " # evaluation_strategy=\"epoch\",\n", + " per_device_train_batch_size=4, # Adjust for your system\n", + " per_device_eval_batch_size=4,\n", + " learning_rate=5e-5,\n", + " weight_decay=0.01,\n", + " num_train_epochs=3,\n", + " fp16=torch.cuda.is_available(), # Mixed precision training if GPU available\n", + " save_strategy=\"epoch\",\n", + " logging_dir=\"./logs\",\n", + " push_to_hub=False,\n", + ")\n", + "\n", + "# Trainer setup\n", + "trainer = Trainer(\n", + " model=model,\n", + " args=training_args,\n", + " train_dataset=tokenized_datasets[\"train\"],\n", + " eval_dataset=tokenized_datasets[\"test\"], # The split test is used as validation\n", + ")\n", + "\n", + "# Start training\n", + "trainer.train()\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "410d07d6", + "metadata": {}, + "outputs": [], + "source": [ + "from transformers import AutoTokenizer, AutoModelForCausalLM\n", + "import torch\n", + "\n", + "# Load the tokenizer (ensure it is saved in the main directory)\n", + "base_model_name = \"gpt2\"\n", + "tokenizer = AutoTokenizer.from_pretrained(base_model_name)\n", + "tokenizer.save_pretrained(\"./llama-3_2Instruct-science-finetuned\") # Save tokenizer to the main directory\n", + "\n", + "# Load the fine-tuned model from the latest checkpoint\n", + "model = AutoModelForCausalLM.from_pretrained(\"./llama-3_2Instruct-science-finetuned/checkpoint-1725\")\n", + "\n", + "# Set the model to evaluation mode\n", + "model.eval()\n", + "model.to(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n", + "\n", + "print(\"GPT-2 Fine-Tuned Model Ready for Testing!\\n\")\n", + "\n", + "# Infinite test loop\n", + "while True:\n", + " user_question = input(\"Ask your science question (or type 'exit' to quit): \")\n", + " if user_question.lower() == \"exit\":\n", + " print(\"Goodbye!\")\n", + " break\n", + "\n", + " # Prepare the input\n", + " input_text = f\"Q: {user_question}\\nA:\"\n", + " input_ids = tokenizer(input_text, return_tensors=\"pt\").input_ids.to(model.device)\n", + "\n", + " # Generate the answer\n", + " with torch.no_grad():\n", + " output_ids = model.generate(\n", + " input_ids, \n", + " max_length=128, \n", + " num_return_sequences=1, \n", + " temperature=0.7, # Controls randomness (0.7 is balanced)\n", + " top_p=0.9, # Nucleus sampling\n", + " do_sample=True, # Enable sampling for creativity\n", + " )\n", + " \n", + " # Decode and display the answer\n", + " answer = tokenizer.decode(output_ids[0], skip_special_tokens=True)\n", + " print(\"\\nAnswer:\", answer.split(\"A:\")[-1].strip(), \"\\n\")\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f1ac4f8b", + "metadata": {}, + "outputs": [ + { + "ename": "", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31mRunning cells with '.venv (Python 3.13.3)' requires the ipykernel package.\n", + "\u001b[1;31mInstall 'ipykernel' into the Python environment. \n", + "\u001b[1;31mCommand: '/Users/jayansunil/Dev/shiv_nadar/backend/.venv/bin/python -m pip install ipykernel -U --force-reinstall'" + ] + } + ], + "source": [ + "from transformers import AutoTokenizer, AutoModelForCausalLM\n", + "import torch\n", + "\n", + "# Load the tokenizer (ensure it is saved in the main directory)\n", + "base_model_name = \"Qwen/Qwen3-0.6B\"\n", + "tokenizer = AutoTokenizer.from_pretrained(base_model_name)\n", + "tokenizer.save_pretrained(\"./llama-3_2Instruct-science-finetuned\") # Save tokenizer to the main directory\n", + "\n", + "# Load the fine-tuned model from the latest checkpoint\n", + "model = AutoModelForCausalLM.from_pretrained(\"./llama-3_2Instruct-science-finetuned/checkpoint-4992\")\n", + "\n", + "# Set the model to evaluation mode\n", + "model.eval()\n", + "model.to(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n", + "\n", + "print(\"GPT-2 Fine-Tuned Model Ready for Testing!\\n\")\n", + "\n", + "# Infinite test loop\n", + "while True:\n", + " user_question = input(\"Ask your science question (or type 'exit' to quit): \")\n", + " if user_question.lower() == \"exit\":\n", + " print(\"Goodbye!\")\n", + " break\n", + "\n", + " # Prepare the input\n", + " input_text = f\"Q: {user_question}\\nA:\"\n", + " input_ids = tokenizer(input_text, return_tensors=\"pt\").input_ids.to(model.device)\n", + "\n", + " # Generate the answer\n", + " with torch.no_grad():\n", + " output_ids = model.generate(\n", + " input_ids, \n", + " max_length=128, \n", + " num_return_sequences=1, \n", + " temperature=0.7, # Controls randomness (0.7 is balanced)\n", + " top_p=0.9, # Nucleus sampling\n", + " do_sample=True, # Enable sampling for creativity\n", + " )\n", + " \n", + " # Decode and display the answer\n", + " answer = tokenizer.decode(output_ids[0], skip_special_tokens=True)\n", + " print(\"\\nAnswer:\", answer.split(\"A:\")[-1].strip(), \"\\n\")" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".venv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.13.3" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/backend/llm/llmtorch.py b/backend/llm/llmtorch.py new file mode 100644 index 0000000..cdd69b9 --- /dev/null +++ b/backend/llm/llmtorch.py @@ -0,0 +1,55 @@ +from transformers import AutoTokenizer, AutoModelForCausalLM, Trainer, TrainingArguments +from datasets import load_dataset +import torch + +# Load the dataset +dataset = load_dataset("KadamParth/NCERT_Science_9th") + +if "validation" not in dataset: + dataset = dataset["train"].train_test_split(test_size=0.1) + print("Dataset split into 90% train and 10% validation.") +# Load GPT-2 Medium model and tokenizer +model_name = "meta-llama/Llama-3.2-1B" +tokenizer = AutoTokenizer.from_pretrained(model_name) +model = AutoModelForCausalLM.from_pretrained( + model_name, + device_map="auto", # Use GPU if available + torch_dtype=torch.float16 if torch.cuda.is_available() else torch.float32 +) +tokenizer.pad_token = tokenizer.eos_token +model.config.pad_token_id = tokenizer.eos_token_id +# Tokenize the dataset (using Explanation column) +def tokenize_function(examples): + tokens = tokenizer(examples["Explanation"], + truncation=True, + padding="max_length", + max_length=128) + tokens["labels"] = tokens["input_ids"].copy() # Set labels as a copy of input_ids + return tokens + +tokenized_datasets = dataset.map(tokenize_function, batched=True, remove_columns=["Explanation"]) +# Set training arguments +training_args = TrainingArguments( + output_dir=".llama-finetuned", + # evaluation_strategy="epoch", + per_device_train_batch_size=4, # Adjust for your system + per_device_eval_batch_size=4, + learning_rate=5e-5, + weight_decay=0.01, + num_train_epochs=3, + fp16=torch.cuda.is_available(), # Mixed precision training if GPU available + save_strategy="epoch", + logging_dir="./logs", + push_to_hub=False, +) + +# Trainer setup +trainer = Trainer( + model=model, + args=training_args, + train_dataset=tokenized_datasets["train"], + eval_dataset=tokenized_datasets["test"], # The split test is used as validation +) + +# Start training +trainer.train() diff --git a/backend/llm/main.py b/backend/llm/main.py index e69de29..f11c3bc 100644 --- a/backend/llm/main.py +++ b/backend/llm/main.py @@ -0,0 +1,77 @@ +from transformers import AutoTokenizer, AutoModelForCausalLM +import torch +from huggingface_hub import login + + +login(token="xxx") +test = "Describe the economic conditions in France that led to the turmoil during the French Revolution." + +# Load the tokenizer (ensure it is saved in the main directory) +base_model_name = "Qwen/Qwen3-0.6B" +tokenizer = AutoTokenizer.from_pretrained(base_model_name) +tokenizer.save_pretrained( + "./llama-3_2Instruct-science-finetuned" +) # Save tokenizer to the main directory + +# Load the fine-tuned model from the latest checkpoint +model_ncert = AutoModelForCausalLM.from_pretrained( + "llama-3_2Instruct-science-finetuned/checkpoint-4992", + torch_dtype=torch.float16, + # use_safetensors=True, +) + +model_circular = AutoModelForCausalLM.from_pretrained( + "llama-3_2Instruct-science-finetuned/checkpoint-4992" +) + +# Set the model to evaluation mode +model_ncert.eval() +model_ncert.to("cuda" if torch.cuda.is_available() else "mps") + +model_circular.eval() +model_circular.to("cuda" if torch.cuda.is_available() else "cpu") + + +def eval_ncert(prompt, max_length=128, temperature=0.6): + input_text = f"Q: {prompt}\nA:" + input_ids = tokenizer(input_text, return_tensors="pt").input_ids.to( + model_ncert.device + ) + + # Generate the answer + with torch.no_grad(): + output_ids = model_ncert.generate( + input_ids, + max_length=max_length, + num_return_sequences=1, + temperature=temperature, # Controls randomness (0.7 is balanced) + top_p=0.9, # Nucleus sampling + do_sample=True, # Enable sampling for creativity + ) + + # Decode and display the answer + answer = tokenizer.decode(output_ids[0], skip_special_tokens=True) + + return {"response": answer.split("A:")[-1].strip()} + + +def eval_circular(prompt, max_length=128, temperature=0.6): + input_text = f"Q: {prompt}\nA:" + input_ids = tokenizer(input_text, return_tensors="pt").input_ids.to( + model_circular.device + ) + + # Generate the answer + with torch.no_grad(): + output_ids = model_circular.generate( + input_ids, + max_length=max_length, + num_return_sequences=1, + temperature=temperature, # Controls randomness (0.7 is balanced) + top_p=0.9, # Nucleus sampling + do_sample=True, # Enable sampling for creativity + ) + + # Decode and display the answer + answer = tokenizer.decode(output_ids[0], skip_special_tokens=True) + return {"response": answer.split("A:")[-1].strip()} diff --git a/backend/llm/portal_data.txt b/backend/llm/portal_data.txt new file mode 100644 index 0000000..a73b98f --- /dev/null +++ b/backend/llm/portal_data.txt @@ -0,0 +1,563 @@ +- Serial no: 1 | Date: 15/05/2025 | Subject: ENGLISH | Title: Wind +Details: + Explanation completed +Notebook work - SAQ1,2 and LAQ - 1 +- Serial no: 2 | Date: 15/05/2025 | Subject: ARTIFICIAL INTELLIGENCE | Title: AI- Evaluation Plan and Sample Paper for PA1 +Details: + Dear learners, + +PFA is the evaluation plan, sample paper, and answer key for the upcoming AI PA1. + +Regards, +Richa Taneja +- Serial no: 3 | Date: 15/05/2025 | Subject: BIOLOGY | Title: LAB VISIT +Details: + CW-Onion and cheek cell activity completed. +HW-Submit practical file with index in next bio class. +- Serial no: 4 | Date: 15/05/2025 | Subject: MATHEMATICS | Title: WS OF POLYNOMIALS +Details: + Worksheet of Polynomials was discussed in class. + +List doubts if any. + +Prepare PA-1 syllabus for test tomorrow. +- Serial no: 5 | Date: 14/05/2025 | Subject: ENGLISH | Title: ENGLISH PA1 - EVALUATION PLAN +Details: + Dear Students, + +PFA the EVALUATION PLAN for Grade 9 PA1 +- Serial no: 6 | Date: 14/05/2025 | Subject: SOCIAL SCIENCE | Title: Political Science Chapter 1 +Details: + Dear Learners, + +Request you all to read pages 2-7 of chapter 1 today for an active discussion in the class. + +Thanks and regards, + +SSC FACILITATOR +- Serial no: 7 | Date: 14/05/2025 | Subject: SOCIAL SCIENCE | Title: Political Science Chapter 1 +Details: + Dear Learners, + +Request you all to read pages 2-7 of chapter 1 today for an active discussion in the class. + +Thanks and regards, + +SSC FACILITATOR +- Serial no: 8 | Date: 13/05/2025 | Subject: MATHEMATICS | Title: Revision Worksheet- Polynomials +Details: + Dear Learners +PFA the worksheet and do it in your notebook. + +Regards +- Serial no: 9 | Date: 12/05/2025 | Subject: CIRCULAR | Title: Donation Drive Announcement +Details: + Dear Learners, + +We're excited to launch a Donation Drive from *13th May to 30th May 2025* in support of *Spreading Smiles Gyan Kendra and the Lotus Petal Foundation* . This initiative aims to bring joy and learning to students in under-resourced schools. + +*We are collecting the following items* : +-Educational material +-Old textbooks +-Work books +-Activity books +-Story books +-Drawing books +-Unused notebooks +-Stationery items (pens, pencils, erasers, sharpeners, rulers etc.) +-Basic art supplies (color pencils, crayons, drawing pads etc.) + +To make your contributions, kindly drop your donations in the *labeled boxes (Books | Stationery*) placed in both the *C Block foyer and A Block foyer* . + +Your small contribution can make a big difference in someone's learning journey. Let’s come together as a community to make that difference count. + +Warm regards, +Community Service Committee +- Serial no: 10 | Date: 10/05/2025 | Subject: MATHEMATICS | Title: Revision Worksheet 1 (Number System) +Details: + Dear Learners +PFA and do the worksheet in your notebook. +- Serial no: 11 | Date: 10/05/2025 | Subject: CIRCULAR | Title: UPDATED_NAEST CIRCULAR 2025 +Details: + Dear Learners, +PFA documents for reference. +A gentle reminder. + +Thanks +- Serial no: 12 | Date: 08/05/2025 | Subject: MATHEMATICS | Title: Ch-2 Polynomials +Details: + AB of ch- Polynomials completed today. +Complete if not done. + +Prepare Ch-1 for test tomorrow. + +Bring notebooks for checking. +- Serial no: 13 | Date: 08/05/2025 | Subject: CIRCULAR | Title: Adobe Summer Boot Camp: Session Link for 8th May'2025 +Details: + Dear Learners, + +Join us today for Session 2 of Summer Bootcamp and celebrate the timeless legacy of Rabindranath Tagore – poet, philosopher, and visionary. + +🗓️ Date: May 8, 2025 +⏰ Time: 3:15 - 5:00 PM + 📍 LINK: https://tinyurl.com/AEBootcamp2 +Don’t miss it! + +Regards, +Richa Taneja +- Serial no: 14 | Date: 08/05/2025 | Subject: PHYSICS | Title: Units & Measurements +Details: + Dear learners, + +Deriving formula using dimensional analysis is covered in class. + +HW- Questions given as HW in class. + +Thank you +- Serial no: 15 | Date: 07/05/2025 | Subject: ENGLISH | Title: Sound of Music +Details: + Reading and Explanation completed +- Serial no: 16 | Date: 07/05/2025 | Subject: SOCIAL SCIENCE | Title: economics update +Details: + Dear Learners, + +As we have concluded chapter 1, we will start with AB from tomorrow. + +Please carry your Eco AB and notebook tomorrow. + +Thanks and regards, +SSC FACILITATOR +- Serial no: 17 | Date: 07/05/2025 | Subject: BIOLOGY | Title: Biology +Details: + CW- Explained the cell organelles today in the class . +HW- Write onion peel and Cheek cells experment in the practical file and bring it on wednesday . For practical class bring one icecrem stick. +- Serial no: 18 | Date: 07/05/2025 | Subject: CIRCULAR | Title: WORLD TECHNOLOGY DAY _CANVA MAKING +Details: + Dear Learners, +Please note-You are required to design a poster on Canva on the topic "Green technology and sustainability" and email it to your Class Teacher by May 8, 2025. + +The submitted work will be screen-shared in class on May 9, 2025. +- Serial no: 19 | Date: 06/05/2025 | Subject: CIRCULAR | Title: Adobe Summer Boot Camp: Login Video +Details: + Dear Learners, + +PFA a short video on how to log in to the Adobe Express accounts. + +Regards, +Richa Taneja +- Serial no: 20 | Date: 06/05/2025 | Subject: MATHEMATICS | Title: Ch-2 Polynomials +Details: + Ch-2 Polynomials completed from Ncert. Bring AB and AB notebooks tomorrow. +Submit Ncert notebooks for checking tomorrow. +- Serial no: 21 | Date: 05/05/2025 | Subject: SOCIAL SCIENCE | Title: SSC-PA-1_MS_5.5.25 +Details: + Dear Learners, +PFA the MS of PA-1 for reference. + +Thanks +SSC Team +- Serial no: 22 | Date: 05/05/2025 | Subject: CIRCULAR | Title: Adobe Summer Bootcamp +Details: + Dear Learners, + +Adobe is organising a summer bootcamp for students of grades V-X. The details for the camp is attached. Learners who are interested to enrol, please contact your respective computer teacher at the earliest. + +Regards, +Richa Taneja +- Serial no: 23 | Date: 05/05/2025 | Subject: ENGLISH | Title: Writing Skills +Details: + Decriptive Paragraph ( person) completed + +Honework - Assignment Booklet - Q6 +- Serial no: 24 | Date: 05/05/2025 | Subject: CIRCULAR | Title: Adobe Summer BootCamp : 5th May'2025 Session Link +Details: + Dear Learners, + +PFA the link for 5th May'2025 session. All those who are interested may kindly login to the session. +Join us Today for the first session of the Student Bootcamp. +Time : 3:00-4:30. +Link : https://tinyurl.com/AEBootcamp1 + +*Students reaching home by 3:15-3:30 can also join us and learn something new every Monday and Thursday. + +Regards, +Richa Taneja +- Serial no: 25 | Date: 05/05/2025 | Subject: FRENCH | Title: REVISION TEST +Details: + Revision test of past participles tomorrow +- Serial no: 26 | Date: 03/05/2025 | Subject: CIRCULAR | Title: Early Dispersal +Details: + Dear Parents, +Greetings! +Since we are in receipt of multiple requests for early exit from the school today, we have taken a conscious decision of closing the school at 12:30 pm. +Dispersal of the bus users - 12:30 pm and the walkers - 12:40 pm. +We solicit your understanding and cooperation in this matter. + +Warm Regards, +Anita Malhotra +Director - Principal +03.05.2025 +- Serial no: 27 | Date: 02/05/2025 | Subject: CIRCULAR | Title: IMPORTANT ANNOUNCEMENT +Details: + Dear Parent +Please note +Due to the inclement weather conditions , we are constrained to reschedule the *Investiture Ceremony to Saturday , 3rd May at 9.00 am* +(Subject to weather conditions) + +Inconvenience regretted + +Warm Regards +Anita Malhotra +- Serial no: 28 | Date: 02/05/2025 | Subject: CIRCULAR | Title: Open House for Grades IX-XII Saturday,10 +Details: + Dear Parent +Greetings ! + +Kindly note- +*Saturday, 3rd May will be a regular working day for Grades I-XII*. + +*Open House for Grades IX-XII is rescheduled to Saturday,10th May.* + +Thank you for your understanding in this regard. + +Best Wishes +Anita Malhotra +- Serial no: 29 | Date: 02/05/2025 | Subject: CIRCULAR | Title: IMPORTANT +Details: + Dear Parent +Please note +Due to the inclement weather conditions , we are constrained to reschedule the Investiture Ceremony to Saturday , 3rd May at 9.00 am +(Subject to weather conditions) + +Inconvenience regretted + +Warm Regards +Anita Malhotra +- Serial no: 30 | Date: 02/05/2025 | Subject: ALL | Title: Cascade - Magazine Submissions +Details: + Dear Learners, + +We are excited to invite your submissions for our annual school magazine, Cascade. Looking at the overwhelming response, the final date of submission has been extended to 10th May 2025. + +All students from Grades IV to XII are welcome to contribute articles, short essays, comic strips, jokes, riddles, and poems to be featured in this year’s edition. Please ensure the entries are original and free from plagiarism. + +You may email your entries at cascade.lvisg@lotusvalleygurgaon.com, latest by 10th May 2025. + +We look forward to your creative contributions! + +Editorial Team +- Serial no: 31 | Date: 02/05/2025 | Subject: CIRCULAR | Title: IMPORTANT INFORMATION +Details: + Dear Parent, + +Greetings! + +This is to inform you that due to the postponement of the Investiture Ceremony to Saturday, 3rd May,25 the Open House has been rescheduled to Saturday,17th May’25. +Saturday,3rd May, will be observed as a working day for Grades IV-XII and Tuesday’s time table shall be followed. +Thank you for your understanding in this regard. + +Warm regards, +Anita Malhotra +Director-Principal +02.05.2025 +- Serial no: 32 | Date: 02/05/2025 | Subject: CIRCULAR | Title: Saturday, 3rd May will be a regular working day for Grades I +Details: + Dear Parent +Greetings ! + +Kindly note- +Saturday, 3rd May will be a regular working day for Grades I-XII. + +Open House for Grades IX-XII is rescheduled to Saturday,10th May. + +Thank you for your understanding in this regard. + +Best Wishes +Anita Malhotra +- Serial no: 33 | Date: 02/05/2025 | Subject: ENGLISH | Title: Adventures of Toto +Details: + Q/A discussed +- Serial no: 34 | Date: 30/04/2025 | Subject: SOCIAL SCIENCE | Title: Tomorrow’s Schedule +Details: + Dear Learners, + +After completion of revision for PA 1, we would commence Economics chapter 1 from tomorrow onwards. + +Please carry the books. + +Thanks and regards, + +SSC FACILITATOR +- Serial no: 35 | Date: 30/04/2025 | Subject: FRENCH | Title: EVALUATION PLAN +Details: + PFA +- Serial no: 36 | Date: 29/04/2025 | Subject: SCIENCE | Title: Invitation to attend Popular Science Lecture “Science behind +Details: + Dear Learners, +PFA documents for reference. +Please note-Last date is before or on 1st May 2025. + +Thanks +- Serial no: 37 | Date: 29/04/2025 | Subject: SOCIAL SCIENCE | Title: Grade IX-SSC- PA-1 Revision Worksheets and Map work +Details: + Dear Learners, + +PFA, the Revision Worksheets and Map work for your reference and practice. + +NOTE:BRING ONE POLITICAL MAP OF INDIA ON MONDAY (05.05.25) FOR PA1. + +Thanks +Social Science Team +- Serial no: 38 | Date: 28/04/2025 | Subject: MATHEMATICS | Title: Ch-2 Polynomials +Details: + CW: Ex2.3 discussed till Q-3 +HW : Complete HW parts Q-1,2,3 +- Serial no: 39 | Date: 28/04/2025 | Subject: SCIENCE | Title: AK_PA-1_IX SCIENCE _2025-26 +Details: + Dear Learners, +PFA documents for reference. +Thanks +- Serial no: 40 | Date: 28/04/2025 | Subject: CHEMISTRY | Title: chemistry work +Details: + CW - interconversion of state using temperaturw and pressure factors. +HW-learners to draw representation of arrangement of molecules in in all three states of matter +- Serial no: 41 | Date: 28/04/2025 | Subject: CIRCULAR | Title: School will remain closed for students - Tuesday, 29th April +Details: + Dear Parent + +Please note - + +As per the Directives issued by the Government of Haryana , the School will remain closed for students tomorrow ie Tuesday, 29th April 2025 on account on Parshuram Jayanti. + +With Warm Regards +Anita Malhotra +- Serial no: 42 | Date: 25/04/2025 | Subject: CHEMISTRY | Title: chemistry work +Details: + CW-characteristics of liquid and gas completed along with compressibility activity +HW – learners to complete Intex question number three, a and b page 6 in notebook by Friday +- Serial no: 43 | Date: 25/04/2025 | Subject: FRENCH | Title: updated grammar +Details: + PFS +- Serial no: 44 | Date: 25/04/2025 | Subject: FRENCH | Title: GRAMAIRE +Details: + PFA +- Serial no: 45 | Date: 25/04/2025 | Subject: SOCIAL SCIENCE | Title: Schedule +Details: + Dear Learners, + +We have concluded PA 1 syllabus and will +Commence with revision from Monday. + +Please carry any one SSC NB and India/ world political maps for revision. + +Thanks and regards, + +SSC FACILITATOR +- Serial no: 46 | Date: 24/04/2025 | Subject: SOCIAL SCIENCE | Title: GRADE IX-SSC-PA-1 EVALUATION PLAN +Details: + Dear Learners, +PFA the Evaluation plan for PA-1 SSC. + +Thanks, +Social Science Team +- Serial no: 47 | Date: 24/04/2025 | Subject: ARTIFICIAL INTELLIGENCE | Title: AI - Notebook Work and Activity Submission +Details: + Dear Learners, + +You are requested to attempt questions 1-20 of the assignment booklet given on pages 29-30 in your notebook. +AI Activity Submission: +Create a 2D Smart Home Layout on an A4 sheet paper, mentioning/labelling the smart gadgets used in your homes. +Please note the submission for both Notebook work and Smart Home Layout is 9th May'2025 + +Thanks & Regards +Richa Taneja/Preety Bala +- Serial no: 48 | Date: 24/04/2025 | Subject: ENGLISH | Title: Multiple Assessment +Details: + Activity: ‘The Roads Within’ +1.On an A4 sheet, students illustrate the diverging roads from ‘The Road Not Taken’ and explain the extended metaphor in their own words. (30-40 words) +2.They expand it by comparing Frost’s roads to another metaphor (e.g., doors, rivers) and illustrate this connection. (30-40 words) +3.Finally, they add a short poem, quote, or phrase capturing the poem’s essence. +- Serial no: 49 | Date: 24/04/2025 | Subject: ENGLISH | Title: Classwork +Details: + The Lost Child - Discussed +Multiple Assessment will be conducted on Friday 1st May . +- Serial no: 50 | Date: 24/04/2025 | Subject: MATHEMATICS | Title: Ch-2 Polynomials +Details: + Ex-2.2 discussed till Q-3 , complete if not done. +Bring AB notebooks for checking tomorrow. +- Serial no: 51 | Date: 23/04/2025 | Subject: FRENCH | Title: WORKSHEET +Details: + PFA +- Serial no: 52 | Date: 23/04/2025 | Subject: MATHEMATICS | Title: Ch-2 Polynomials +Details: + Ex-2.1 Explained and discussed. +Bring AB notebooks for checking tomorrow. +- Serial no: 53 | Date: 22/04/2025 | Subject: CHEMISTRY | Title: chemistry work +Details: + CW- Revision worksheet of PaI syllabus discussed. Learners to prepare class test of PaI syllabus and submit notebook and Ab for correction work. +- Serial no: 54 | Date: 22/04/2025 | Subject: FRENCH | Title: lesson 4 +Details: + PFA +- Serial no: 55 | Date: 22/04/2025 | Subject: SOCIAL SCIENCE | Title: Geography +Details: + Dear Learners, + +We have conculded the chapter India size and location. + +Please carry geography AB tomorrow. + +Completed History Notebook submission by tomorrow too. + +Thanks + +SSC FACILITATOR +- Serial no: 56 | Date: 21/04/2025 | Subject: CHEMISTRY | Title: Revision worskheet +Details: + Dear leaders +PFA REVSION WORKSHEET OF CHEMISTRY. +- Serial no: 57 | Date: 21/04/2025 | Subject: CHEMISTRY | Title: reminder +Details: + Bring notebook for correction work tommorow with completion of PAI syllabus notes and question answers. +- Serial no: 58 | Date: 21/04/2025 | Subject: CHEMISTRY | Title: REVISION WORKSHEET CHEMISTRY +Details: + Deal all +PFA, revision worksheet of chemistry. Learners to get print of the same tommorow for discussion. +- Serial no: 59 | Date: 21/04/2025 | Subject: CHEMISTRY | Title: REVISION WORKSHEET CHEMISTRY +Details: + Deal all +PFA, revision worksheet of chemistry. Learners to get print of the same tommorow for discussion. +- Serial no: 60 | Date: 21/04/2025 | Subject: ENGLISH | Title: English Activity for the month of April +Details: + Graphic Organiser (A4 Sheet) +The Lost Child by Mulk Raj Anand + +Task: +Based on your reading of The Lost Child, reflect on the vibrant fair the child visits with his parents. This fair is rooted in cultural celebration and community life. Now, think of a seasonal festival fair celebrated in any part of India that shares a similar sense of vibrancy, colour, and local tradition. + +Design a graphic organiser on an A4 sheet that showcases the festival fair of your choice. Ensure that the organiser includes the following elements: + +1. Name and Region – What is the name of the festival and where is it celebrated? + +2. Season – Which season does it fall in, and how does that influence the fair's activities and setting? + +3. Key Attractions – Describe some visual, auditory, or sensory elements (like in The Lost Child – toys, sweets, snake charmers, rides, etc.) + +4. Emotional/Personal Response – If you were the child in the story, how might your experience be similar or different at this fair? + +5. Literary Parallel – Make a connection to the story – how does this fair reflect the themes of innocence, desire, or belonging seen in the text? + +Illustrations/Visuals – Add labelled images or drawings to bring your organiser to life. + +Bonus Element (Optional): +Add a short quote from The Lost Child that resonates with the spirit of the fair you’ve chosen – you can paraphrase if needed. +- Serial no: 61 | Date: 21/04/2025 | Subject: MATHEMATICS | Title: Number system +Details: + AB of Number system discussed in Class. Complete if not done. +Bring School live Magazine tomorrow with two A4 size colored sheets with colors. + +Thanks +- Serial no: 62 | Date: 21/04/2025 | Subject: ENGLISH | Title: English April Activity +Details: + Graphic Organiser (A4 Sheet) +The Lost Child by Mulk Raj Anand + +Task: +Based on your reading of The Lost Child, reflect on the vibrant fair the child visits with his parents. This fair is rooted in cultural celebration and community life. Now, think of a seasonal festival fair celebrated in any part of India that shares a similar sense of vibrancy, colour, and local tradition. + +Design a graphic organiser on an A4 sheet that showcases the festival fair of your choice. Ensure that the organiser includes the following elements: + +1. Name and Region – What is the name of the festival and where is it celebrated? + +2. Season – Which season does it fall in, and how does that influence the fair's activities and setting? + +3. Key Attractions – Describe some visual, auditory, or sensory elements (like in The Lost Child – toys, sweets, snake charmers, rides, etc.) + +4. Emotional/Personal Response – If you were the child in the story, how might your experience be similar or different at this fair? + +5. Literary Parallel – Make a connection to the story – how does this fair reflect the themes of innocence, desire, or belonging seen in the text? + +Illustrations/Visuals – Add labelled images or drawings to bring your organiser to life. + +Bonus Element (Optional): +Add a short quote from The Lost Child that resonates with the spirit of the fair you’ve chosen – you can paraphrase if needed. +- Serial no: 63 | Date: 21/04/2025 | Subject: PHYSICS | Title: PHYSICS REVISION WORKSHEET +Details: + Dear learners, + +PFA. + +Warm regards +- Serial no: 64 | Date: 20/04/2025 | Subject: CHEMISTRY | Title: reminder +Details: + Bring NOTEBOOK and AB of chemistry for tomorrow 's class +- Serial no: 65 | Date: 19/04/2025 | Subject: SCIENCE | Title: GR IX _SCIENCE _EVALUATION PLAN_PA1(2025-26) +Details: + Dear Learners, +PFA documents for reference. + +Thanks +- Serial no: 66 | Date: 18/04/2025 | Subject: CIRCULAR | Title: ATL +Details: + Dear learners +Inviting applications from interested participants for +ROBORUSH 1.0 -a high-speed, high-energy Robot Race & Project Showcase +1) Robot Race – hit the track, and race to victory! Speed, control, and precision are all that matter! +2)Project Showcase – Flex your tech creations and leave everyone speechless! + +Date: 26 April 2025 +Big prizes, ultimate bragging rights, and tech glory await! + Interested learners to mail their idea/ interest in participating at +ATLLVISG@lotusvalleygurgaon.com latest by 20.04.25 +Regards +- Serial no: 67 | Date: 17/04/2025 | Subject: PHYSICS | Title: PHYSICS: MOTION +Details: + Dear learners, + +CW- v-t graph was discussed & numericals on the same were done in class. + +HW- AB Questions related to the topic + +Thank you +- Serial no: 68 | Date: 17/04/2025 | Subject: MATHEMATICS | Title: CH-1 NUMBER SYSTEM +Details: + AB McQ, Case study and subjective till Q4 were discussed. +Do Q-1 &2 (subjective) in AB notebooks. +- Serial no: 69 | Date: 17/04/2025 | Subject: SCIENCE | Title: NAEST CIRCULAR +Details: + Dear Parents, +PFA documents for reference. + +Thanks +- Serial no: 70 | Date: 17/04/2025 | Subject: BIOLOGY | Title: BIOLOGY +Details: + CW- The written revision for PA-1 was done today in class. +Doubts related to chapter fundamental unit of life were also cleared. +Submit your biology notebook and AB on Monday for checking. +- Serial no: 71 | Date: 17/04/2025 | Subject: ENGLISH | Title: English +Details: + The Road not Taken - completed +Hw - SAQ -1,2; LAQ - 2 + +Please carry Moments for Monday +- Serial no: 72 | Date: 16/04/2025 | Subject: CIRCULAR | Title: Heritage Day Activity +Details: + Dear Students, + +As discussed in class, please be prepared for the Heritage Day activity. Kindly share either a video or a photograph along with your blog post by mailing it to: priyanka.zulfikar@lotusvalleygurgaon.com. + +Looking forward to your enthusiastic participation! +- Serial no: 73 | Date: 16/04/2025 | Subject: MATHEMATICS | Title: CH-1 NUMBER SYSTEM +Details: + MCQ questions of AB were discussed in class. +Do case study-1 & 2 , Subjective-1 &2 in AB notebooks. +List your doubts . +- Serial no: 74 | Date: 15/04/2025 | Subject: BIOLOGY | Title: Biology +Details: + Dear Learners +Please submit your biology notebook tomorrow for checking with all the diagrams, in-text questions, and back exercises of the chapter—Fundamental Unit of Life—as mentioned in the class. Kindly carry biology AB tomorrow. +HW- Revise chapter - Fundamental unit of life till cell wall for written revision on Thursday, 17 Th April . +- Serial no: 75 | Date: 15/04/2025 | Subject: MATHEMATICS | Title: NUMBER SYSTEM +Details: + Ncert discussed for Ex -1.4 and 1.5. +Complete if not done . +Bring AB and AB notebooks tomorrow. diff --git a/backend/logs/events.out.tfevents.1747547529.Rachits-Laptop.local b/backend/logs/events.out.tfevents.1747547529.Rachits-Laptop.local new file mode 100644 index 0000000..54a9e64 Binary files /dev/null and b/backend/logs/events.out.tfevents.1747547529.Rachits-Laptop.local differ diff --git a/backend/logs/events.out.tfevents.1747547595.Rachits-Laptop.local b/backend/logs/events.out.tfevents.1747547595.Rachits-Laptop.local new file mode 100644 index 0000000..0369d40 Binary files /dev/null and b/backend/logs/events.out.tfevents.1747547595.Rachits-Laptop.local differ diff --git a/backend/logs/events.out.tfevents.1747548181.Rachits-Laptop.local b/backend/logs/events.out.tfevents.1747548181.Rachits-Laptop.local new file mode 100644 index 0000000..42f354f Binary files /dev/null and b/backend/logs/events.out.tfevents.1747548181.Rachits-Laptop.local differ diff --git a/backend/main.py b/backend/main.py index 86d7923..c776f68 100644 --- a/backend/main.py +++ b/backend/main.py @@ -1,20 +1,55 @@ +from fastapi import FastAPI, HTTPException +from pydantic import BaseModel +from transformers import pipeline +from fastapi.middleware.cors import CORSMiddleware from fastapi import FastAPI from typing import Union +from llm import eval_circular, eval_ncert -def main(): - print("Hello from backend!") +# Define the input schema +class PromptRequest(BaseModel): + prompt: str + max_length: int = 128 + temperature: float = 0.7 +# Create FastAPI app app = FastAPI() - - -def gen_output(text: str): - # EDIT THIS RACHIT - return text - - -@app.get("/request") -def request(text: Union[str, None] = None): - response = gen_output(text) - return {"response": response} +app.add_middleware( + CORSMiddleware, + allow_origins=["*"], # Or ["http://localhost:3000"] to restrict + allow_credentials=True, + allow_methods=["*"], + allow_headers=["*"], +) + +# Load the generator model + + +# Define a route +@app.post("/generate/ncert") +def generate_text(request: PromptRequest): + if not request.prompt.strip(): + raise HTTPException(status_code=400, detail="Prompt cannot be empty") + + result = eval_ncert( + request.prompt, + max_length=request.max_length, + temperature=request.temperature, + ) + return result + + +@app.post("/generate/circular") +def ncert_text(request: PromptRequest): + if not request.prompt.strip(): + raise HTTPException(status_code=400, detail="Prompt cannot be empty") + + result = eval_circular( + request.prompt, + max_length=request.max_length, + temperature=request.temperature, + ) + + return result diff --git a/backend/pyproject.toml b/backend/pyproject.toml index 5de72c6..aa9a678 100644 --- a/backend/pyproject.toml +++ b/backend/pyproject.toml @@ -5,5 +5,8 @@ description = "Add your description here" readme = "README.md" requires-python = ">=3.13" dependencies = [ + "boto3>=1.38.18", "fastapi>=0.115.12", + "sagemaker>=2.244.1", + "transformers>=4.52.2", ] diff --git a/backend/school portal qa dataset.csv b/backend/school portal qa dataset.csv new file mode 100644 index 0000000..3875298 --- /dev/null +++ b/backend/school portal qa dataset.csv @@ -0,0 +1,76 @@ +Serial,Date,Subject,Title,Description,Summary,Question,Answer +1,15/05/2025,ENGLISH,Wind,"Explanation completed Notebook work - SAQ1,2 and LAQ - 1","English: Wind chapter explanation and notebook work (SAQ1,2, LAQ-1) done.",What English work was completed on 15/05/2025?,Wind chapter explanation and notebook work (SAQ1 +2,15/05/2025,ARTIFICIAL INTELLIGENCE,AI- Evaluation Plan and Sample Paper for PA1,"Dear learners, PFA is the evaluation plan, sample paper, and answer key for the upcoming AI PA1. Regards, Richa Taneja","AI PA1: Evaluation plan, sample paper, and answer key provided (Richa Taneja).",What materials were provided for the AI PA1 test by Richa Taneja on 15/05/2025?,Evaluation plan +3,15/05/2025,BIOLOGY,LAB VISIT,CW-Onion and cheek cell activity completed. HW-Submit practical file with index in next bio class.,Biology: Onion and cheek cell activity completed in class; practical file submission due next class.,What was done in Biology class on 15/05/2025 and what is the homework?,Onion and cheek cell activity completed in class. Practical file submission is due in the next Biology class. +4,15/05/2025,MATHEMATICS,WS OF POLYNOMIALS,Worksheet of Polynomials was discussed in class. List doubts if any. Prepare PA-1 syllabus for test tomorrow.,Mathematics: Polynomials worksheet discussed; students to list doubts and prepare for PA-1 test.,What was discussed in Mathematics on 15/05/2025 and what should students do?,The worksheet of Polynomials was discussed. Students should list doubts if any and prepare for the PA-1 syllabus test tomorrow. +5,14/05/2025,ENGLISH,ENGLISH PA1 - EVALUATION PLAN,"Dear Students, PFA the EVALUATION PLAN for Grade 9 PA1",English PA1: Evaluation plan for Grade 9 provided.,What was provided for English PA1 for Grade 9 on 14/05/2025?,The Evaluation Plan for Grade 9 PA1 was provided. +6,14/05/2025,SOCIAL SCIENCE,Political Science Chapter 1,"Dear Learners, Request you all to read pages 2-7 of chapter 1 today for an active discussion in the class. Thanks and regards, SSC FACILITATOR",Social Science: Students requested to read Political Science Chapter 1 (pages 2-7) for class discussion.,What reading is required for Social Science Political Science Chapter 1 class on 14/05/2025?,Students are requested to read pages 2-7 of chapter 1 today for an active discussion in the class. +7,14/05/2025,SOCIAL SCIENCE,Political Science Chapter 1,"Dear Learners, Request you all to read pages 2-7 of chapter 1 today for an active discussion in the class. Thanks and regards, SSC FACILITATOR",Social Science: Students requested to read Political Science Chapter 1 (pages 2-7) for class discussion.,What reading is required for Social Science Political Science Chapter 1 class on 14/05/2025?,Students are requested to read pages 2-7 of chapter 1 today for an active discussion in the class. +8,13/05/2025,MATHEMATICS,Revision Worksheet- Polynomials,Dear Learners PFA the worksheet and do it in your notebook. Regards,Mathematics: Revision worksheet on Polynomials provided; to be completed in the notebook.,What was provided for Mathematics on 13/05/2025 and what should students do with it?,A revision worksheet on Polynomials was provided and should be done in your notebook. +9,12/05/2025,CIRCULAR,Donation Drive Announcement,"Dear Learners, We're excited to launch a Donation Drive from *13th May to 30th May 2025* in support of *Spreading Smiles Gyan Kendra and the Lotus Petal Foundation* . This initiative aims to bring joy and learning to students in under-resourced schools. *We are collecting the following items* : -Educational material -Old textbooks -Work books -Activity books -Story books -Drawing books -Unused notebooks -Stationery items (pens, pencils, erasers, sharpeners, rulers etc.) -Basic art supplies (color pencils, crayons, drawing pads etc.) To make your contributions, kindly drop your donations in the *labeled boxes (Books | Stationery*) placed in both the *C Block foyer and A Block foyer* . Your small contribution can make a big difference in someone's learning journey. Let’s come together as a community to make that difference count. Warm regards, Community Service Committee","Circular: Donation drive for educational materials and stationery (May 13-30, 2025) to support Spreading Smiles Gyan Kendra and Lotus Petal Foundation. Drop donations in labeled boxes.",What is the Donation Drive announced in the circular on 12/05/2025 about?,A Donation Drive is being held from May 13th to May 30th +10,10/05/2025,MATHEMATICS,Revision Worksheet 1 (Number System),Dear Learners PFA and do the worksheet in your notebook.,Mathematics: Revision worksheet on Number System provided; to be completed in the notebook.,What was provided for Mathematics on 10/05/2025?,Revision Worksheet 1 (Number System) was provided and should be done in your notebook. +11,10/05/2025,CIRCULAR,UPDATED_NAEST CIRCULAR 2025,"Dear Learners, PFA documents for reference. A gentle reminder. Thanks",Circular: Updated NAEST circular 2025 provided for reference.,What circular was provided on 10/05/2025?,The Updated NAEST Circular 2025 was provided for reference. +12,08/05/2025,MATHEMATICS,Ch-2 Polynomials,AB of ch- Polynomials completed today. Complete if not done. Prepare Ch-1 for test tomorrow. Bring notebooks for checking.,"Mathematics: Activity Book (AB) for Polynomials (Ch-2) completed; students to complete if pending, prepare for Ch-1 test, and bring notebooks for checking.",What Mathematics work was completed on 08/05/2025 and what are the tasks for students?,Activity Book (AB) of Ch-2 Polynomials was completed today. Students should complete it if not done +13,08/05/2025,CIRCULAR,Adobe Summer Boot Camp: Session Link for 8th May'2025,"Dear Learners, Join us today for Session 2 of Summer Bootcamp and celebrate the timeless legacy of Rabindranath Tagore – poet, philosopher, and visionary. 🗓️ Date: May 8, 2025 ⏰ Time: 3:15 - 5:00 PM 📍 LINK: https://tinyurl.com/AEBootcamp2 Don’t miss it! Regards, Richa Taneja","Circular: Link provided for Adobe Summer Boot Camp Session 2 (May 8, 3:15-5:00 PM).",What information was provided in the circular about the Adobe Summer Boot Camp on 08/05/2025?,The session link for Session 2 of the Adobe Summer Boot Camp on May 8 +14,08/05/2025,PHYSICS,Units & Measurements,"Dear learners, Deriving formula using dimensional analysis is covered in class. HW- Questions given as HW in class. Thank you",Physics: Derivation of formulas using dimensional analysis covered in class; homework assigned.,What topic was covered in Physics class on 08/05/2025 and what was the homework?,Deriving formula using dimensional analysis is covered in class. Homework questions were also given. +15,07/05/2025,ENGLISH,Sound of Music,Reading and Explanation completed,"English: Reading and explanation of ""Sound of Music"" completed.",What was completed in English class on 07/05/2025?,"Reading and Explanation of ""Sound of Music"" were completed." +16,07/05/2025,SOCIAL SCIENCE,economics update,"Dear Learners, As we have concluded chapter 1, we will start with AB from tomorrow. Please carry your Eco AB and notebook tomorrow. Thanks and regards, SSC FACILITATOR","Social Science (Economics): Chapter 1 concluded; Activity Book (AB) work starts tomorrow, students to bring Eco AB and notebook.",What is happening in Social Science Economics after concluding Chapter 1 on 07/05/2025?,Chapter 1 was concluded. Activity Book (AB) work will start from tomorrow. Students need to carry their Eco AB and notebook tomorrow. +17,07/05/2025,BIOLOGY,Biology,CW- Explained the cell organelles today in the class . HW- Write onion peel and Cheek cells experment in the practical file and bring it on wednesday . For practical class bring one icecrem stick.,Biology: Cell organelles explained in class; homework is to write onion peel and cheek cell experiment in practical file and bring it with an ice cream stick on Wednesday.,What was taught in Biology on 07/05/2025 and what is the homework?,Cell organelles were explained today in the class. Homework is to write the onion peel and Cheek cells experiment in the practical file and bring it on Wednesday with one ice cream stick for the practical class. +18,07/05/2025,CIRCULAR,WORLD TECHNOLOGY DAY _CANVA MAKING,"Dear Learners, Please note-You are required to design a poster on Canva on the topic ""Green technology and sustainability"" and email it to your Class Teacher by May 8, 2025. The submitted work will be screen-shared in class on May 9, 2025.","Circular: Students to design a Canva poster on ""Green technology and sustainability"" and email it to the class teacher by May 8th for sharing on May 9th.",What is the task for students regarding World Technology Day in the circular on 07/05/2025?,"Students are required to design a poster on Canva on the topic ""Green technology and sustainability"" and email it to their Class Teacher by May 8" +19,06/05/2025,CIRCULAR,Adobe Summer Boot Camp: Login Video,"Dear Learners, PFA a short video on how to log in to the Adobe Express accounts. Regards, Richa Taneja",Circular: Login video for Adobe Express accounts provided (Richa Taneja).,What resource was provided in the circular regarding Adobe Express accounts on 06/05/2025?,A short video on how to log in to the Adobe Express accounts was provided. +20,06/05/2025,MATHEMATICS,Ch-2 Polynomials,Ch-2 Polynomials completed from Ncert. Bring AB and AB notebooks tomorrow. Submit Ncert notebooks for checking tomorrow.,"Mathematics: Chapter 2 (Polynomials) from NCERT completed; students to bring Activity Book (AB) and AB notebooks, and submit NCERT notebooks for checking tomorrow.",What was completed in Mathematics on 06/05/2025 and what should students bring/submit tomorrow?,Ch-2 Polynomials from Ncert was completed today. Students should bring AB and AB notebooks tomorrow and submit Ncert notebooks for checking tomorrow. +21,05/05/2025,SOCIAL SCIENCE,SSC-PA-1_MS_5.5.25,"Dear Learners, PFA the MS of PA-1 for reference. Thanks SSC Team",Social Science PA-1: Marking scheme provided for reference (SSC Team).,What was provided for Social Science PA-1 on 05/05/2025?,The Marking Scheme (MS) of PA-1 was provided for reference by the SSC Team. +22,05/05/2025,CIRCULAR,Adobe Summer Bootcamp,"Dear Learners, Adobe is organising a summer bootcamp for students of grades V-X. The details for the camp is attached. Learners who are interested to enrol, please contact your respective computer teacher at the earliest. Regards, Richa Taneja",Circular: Adobe Summer Bootcamp for Grades V-X announced; interested students to contact their computer teacher for enrollment (Richa Taneja).,What was announced in the circular on 05/05/2025 regarding an Adobe event?,An Adobe Summer Bootcamp for students of grades V-X was announced. Interested learners should contact their respective computer teacher at the earliest to enrol. +23,05/05/2025,ENGLISH,Writing Skills,Decriptive Paragraph ( person) completed Honework - Assignment Booklet - Q6,English: Descriptive paragraph (person) completed in class; homework is Q6 from the Assignment Booklet.,What Writing Skills activity was completed in English on 05/05/2025 and what is the homework?,Descriptive Paragraph (person) was completed in class. Homework is Assignment Booklet - Q6. +24,05/05/2025,CIRCULAR,Adobe Summer BootCamp : 5th May'2025 Session Link,"Dear Learners, PFA the link for 5th May'2025 session. All those who are interested may kindly login to the session. Join us Today for the first session of the Student Bootcamp. Time : 3:00-4:30. Link : https://tinyurl.com/AEBootcamp1 *Students reaching home by 3:15-3:30 can also join us and learn something new every Monday and Thursday. Regards, Richa Taneja",Circular: Link provided for the Adobe Summer BootCamp session on May 5th (3:00-4:30 PM).,What was provided in the circular on 05/05/2025 regarding the Adobe Summer BootCamp?,The link for the Adobe Summer BootCamp session on May 5th +25,05/05/2025,FRENCH,REVISION TEST,Revision test of past participles tomorrow,French: Revision test on past participles scheduled for tomorrow.,What is scheduled for French class tomorrow (May 6th)?,A revision test of past participles is scheduled for tomorrow. +26,03/05/2025,CIRCULAR,Early Dispersal,"Dear Parents, Greetings! Since we are in receipt of multiple requests for early exit from the school today, we have taken a conscious decision of closing the school at 12:30 pm. Dispersal of the bus users - 12:30 pm and the walkers - 12:40 pm. We solicit your understanding and cooperation in this matter. Warm Regards, Anita Malhotra Director - Principal 03.05.2025",Circular: Early school dispersal at 12:30 PM for bus users and 12:40 PM for walkers (Anita Malhotra).,What was the announcement in the circular regarding school dispersal on 03/05/2025?,The school is closing early today at 12:30 pm for bus users and 12:40 pm for walkers. +27,02/05/2025,CIRCULAR,IMPORTANT ANNOUNCEMENT,"Dear Parent Please note Due to the inclement weather conditions , we are constrained to reschedule the *Investiture Ceremony to Saturday , 3rd May at 9.00 am* (Subject to weather conditions) Inconvenience regretted Warm Regards Anita Malhotra","Circular: Investiture Ceremony rescheduled to Saturday, May 3rd at 9:00 AM due to weather (Anita Malhotra).",Why and when was the Investiture Ceremony rescheduled according to the circular on 02/05/2025?,Due to inclement weather conditions +28,02/05/2025,CIRCULAR,"Open House for Grades IX-XII Saturday,10","Dear Parent Greetings ! Kindly note- *Saturday, 3rd May will be a regular working day for Grades I-XII*. *Open House for Grades IX-XII is rescheduled to Saturday,10th May.* Thank you for your understanding in this regard. Best Wishes Anita Malhotra","Circular: Saturday, May 3rd will be a regular working day for Grades I-XII; Open House for Grades IX-XII rescheduled to Saturday, May 10th (Anita Malhotra).","What is the updated schedule for Saturday, May 3rd and the Open House for Grades IX-XII according to the circular on 02/05/2025?",Saturday +29,02/05/2025,CIRCULAR,IMPORTANT,"Dear Parent Please note Due to the inclement weather conditions , we are constrained to reschedule the Investiture Ceremony to Saturday , 3rd May at 9.00 am (Subject to weather conditions) Inconvenience regretted Warm Regards Anita Malhotra","Circular: Investiture Ceremony rescheduled to Saturday, May 3rd at 9:00 AM due to weather (Anita Malhotra).",Why and when was the Investiture Ceremony rescheduled according to the circular on 02/05/2025?,Due to the inclement weather conditions +30,02/05/2025,ALL,Cascade - Magazine Submissions,"Dear Learners, We are excited to invite your submissions for our annual school magazine, Cascade. Looking at the overwhelming response, the final date of submission has been extended to 10th May 2025. All students from Grades IV to XII are welcome to contribute articles, short essays, comic strips, jokes, riddles, and poems to be featured in this year’s edition. Please ensure the entries are original and free from plagiarism. You may email your entries at cascade.lvisg@lotusvalleygurgaon.com, latest by 10th May 2025. We look forward to your creative contributions! Editorial Team","All: Deadline for Cascade school magazine submissions (Grades IV-XII) extended to May 10th, 2025. Email entries to cascade.lvisg@lotusvalleygurgaon.com.",What is the new deadline for submitting entries to the Cascade school magazine for Grades IV to XII and how should they be submitted?,The final date of submission for the annual school magazine +31,02/05/2025,CIRCULAR,IMPORTANT INFORMATION,"Dear Parent, Greetings! This is to inform you that due to the postponement of the Investiture Ceremony to Saturday, 3rd May,25 the Open House has been rescheduled to Saturday,17th May’25. Saturday,3rd May, will be observed as a working day for Grades IV-XII and Tuesday’s time table shall be followed. Thank you for your understanding in this regard. Warm regards, Anita Malhotra Director-Principal 02.05.2025","Circular: Open House rescheduled to May 17th due to Investiture Ceremony postponement; Saturday, May 3rd is a working day for Grades IV-XII (Tuesday's timetable to be followed) - Anita Malhotra.","What are the rescheduled dates for the Open House and the status of Saturday, May 3rd for Grades IV-XII according to the circular on 02/05/2025?",Due to the postponement of the Investiture Ceremony +32,02/05/2025,CIRCULAR,"Saturday, 3rd May will be a regular working day for Grades I","Dear Parent Greetings ! Kindly note- Saturday, 3rd May will be a regular working day for Grades I-XII. Open House for Grades IX-XII is rescheduled to Saturday,10th May. Thank you for your understanding in this regard. Best Wishes Anita Malhotra","Circular: Saturday, May 3rd is a regular working day for Grades I-XII; Open House for Grades IX-XII rescheduled to May 10th (Anita Malhotra).","What is the schedule for Saturday, May 3rd and the Open House for Grades IX-XII as announced in the circular on 02/05/2025?",Saturday +33,02/05/2025,ENGLISH,Adventures of Toto,Q/A discussed,"English: Questions and answers for ""Adventures of Toto"" discussed.",What was discussed in English class on 02/05/2025?,"Questions and answers for the chapter ""Adventures of Toto"" were discussed." +34,30/04/2025,SOCIAL SCIENCE,Tomorrow’s Schedule,"Dear Learners, After completion of revision for PA 1, we would commence Economics chapter 1 from tomorrow onwards. Please carry the books. Thanks and regards, SSC FACILITATOR",Social Science: Economics Chapter 1 will commence tomorrow after PA 1 revision; students to bring books.,What is the plan for Social Science class starting tomorrow (May 1st) after PA 1 revision?,After completion of revision for PA 1 +35,30/04/2025,FRENCH,EVALUATION PLAN,PFA,French: Evaluation plan attached.,What was provided for French on 30/04/2025?,The Evaluation Plan for French was provided. +36,29/04/2025,SCIENCE,Invitation to attend Popular Science Lecture “Science behind,"Dear Learners, PFA documents for reference. Please note-Last date is before or on 1st May 2025. Thanks","Science: Invitation and documents for a popular science lecture ""Science behind..."" provided; last date to register is May 1st, 2025.",What event was announced for Science on 29/04/2025 and what is the deadline?,"An invitation to attend a Popular Science Lecture “Science behind..."" was provided. The last date to apply is before or on 1st May 2025." +37,29/04/2025,SOCIAL SCIENCE,Grade IX-SSC- PA-1 Revision Worksheets and Map work,"Dear Learners, PFA, the Revision Worksheets and Map work for your reference and practice. NOTE:BRING ONE POLITICAL MAP OF INDIA ON MONDAY (05.05.25) FOR PA1. Thanks Social Science Team",Social Science PA-1 (Grade IX): Revision worksheets and map work provided; students to bring a political map of India on Monday (05.05.25).,What materials were provided for Social Science PA-1 revision on 29/04/2025 and what should students bring on Monday?,Revision Worksheets and Map work for Grade IX Social Science PA-1 were provided for reference and practice. Students need to bring one Political Map of India on Monday (05.05.25) for PA1. +38,28/04/2025,MATHEMATICS,Ch-2 Polynomials,"CW: Ex2.3 discussed till Q-3 HW : Complete HW parts Q-1,2,3","Mathematics: Exercise 2.3 (Polynomials) discussed up to Q-3 in class; homework is to complete remaining parts of Q-1, 2, and 3.",What was covered in Mathematics on 28/04/2025 and what is the homework?,Ex2.3 of Ch-2 Polynomials was discussed till Q-3 in class. Homework is to complete HW parts Q-1 +39,28/04/2025,SCIENCE,AK_PA-1_IX SCIENCE _2025-26,"Dear Learners, PFA documents for reference. Thanks",Science PA-1 (Grade IX): Documents provided for reference.,What documents were provided for Science PA-1 (Grade IX) on 28/04/2025?,Documents for reference for AK_PA-1_IX SCIENCE _2025-26 were provided. +40,28/04/2025,CHEMISTRY,chemistry work,CW - interconversion of state using temperaturw and pressure factors. HW-learners to draw representation of arrangement of molecules in in all three states of matter,"Chemistry: Interconversion of states using temperature and pressure discussed; homework is to draw molecular arrangements in solid, liquid, and gas.",What topic was covered in Chemistry on 28/04/2025 and what is the homework?,Interconversion of state using temperature and pressure factors was covered in class. Homework is for learners to draw a representation of the arrangement of molecules in all three states of matter. +41,28/04/2025,CIRCULAR,"School will remain closed for students - Tuesday, 29th April","Dear Parent Please note - As per the Directives issued by the Government of Haryana , the School will remain closed for students tomorrow ie Tuesday, 29th April 2025 on account on Parshuram Jayanti. With Warm Regards Anita Malhotra","Circular: School closed for students on Tuesday, April 29th, 2025 due to Parshuram Jayanti (Anita Malhotra).","Why is the school closed for students on Tuesday, April 29th, 2025, according to the circular?",The School will remain closed for students tomorrow +42,25/04/2025,CHEMISTRY,chemistry work,"CW-characteristics of liquid and gas completed along with compressibility activity HW – learners to complete Intex question number three, a and b page 6 in notebook by Friday","Chemistry: Characteristics of liquid and gas, and compressibility activity completed; homework is to complete Intex Q3 (a & b, page 6) in notebook by Friday.",What was completed in Chemistry class on 25/04/2025 and what is the homework?,Characteristics of liquid and gas were completed along with the compressibility activity. Homework is for learners to complete Intex question number three +43,25/04/2025,FRENCH,updated grammar,PFS,French: Updated grammar information provided (PFS).,What information was provided for French on 25/04/2025?,Updated grammar information was provided. +44,25/04/2025,FRENCH,GRAMAIRE,PFA,French: Grammar information attached.,What was attached for French on 25/04/2025?,Grammar information was provided (PFA). +45,25/04/2025,SOCIAL SCIENCE,Schedule,"Dear Learners, We have concluded PA 1 syllabus and will Commence with revision from Monday. Please carry any one SSC NB and India/ world political maps for revision. Thanks and regards, SSC FACILITATOR","Social Science: PA 1 syllabus concluded, revision starts Monday. Bring SSC notebook and India/world maps.",What is the plan for Social Science starting Monday (April 28th) after completing the PA 1 syllabus on 25/04/2025?,The PA 1 syllabus has been concluded and revision will commence from Monday. Students should carry any one SSC NB and India/world political maps for revision. +46,24/04/2025,SOCIAL SCIENCE,GRADE IX-SSC-PA-1 EVALUATION PLAN,"Dear Learners, PFA the Evaluation plan for PA-1 SSC. Thanks, Social Science Team",Social Science PA-1 (Grade IX): Evaluation plan provided (Social Science Team).,What was provided for Social Science PA-1 (Grade IX) on 24/04/2025?,The Evaluation plan for PA-1 SSC for Grade IX was provided. +47,24/04/2025,ARTIFICIAL INTELLIGENCE,AI - Notebook Work and Activity Submission,"Dear Learners, You are requested to attempt questions 1-20 of the assignment booklet given on pages 29-30 in your notebook. AI Activity Submission: Create a 2D Smart Home Layout on an A4 sheet paper, mentioning/labelling the smart gadgets used in your homes. Please note the submission for both Notebook work and Smart Home Layout is 9th May'2025 Thanks & Regards Richa Taneja/Preety Bala","AI: Questions 1-20 from assignment booklet (pages 29-30) to be done in notebook; create a 2D Smart Home Layout (submission May 9th, 2025).",What are the tasks assigned for Artificial Intelligence on 24/04/2025 and when is the submission deadline?,Students are requested to attempt questions 1-20 of the assignment booklet given on pages 29-30 in their notebook. They also need to create a 2D Smart Home Layout on an A4 sheet paper +48,24/04/2025,ENGLISH,Multiple Assessment,"Activity: ‘The Roads Within’ 1.On an A4 sheet, students illustrate the diverging roads from ‘The Road Not Taken’ and explain the extended metaphor in their own words. (30-40 words) 2.They expand it by comparing Frost’s roads to another metaphor (e.g., doors, rivers) and illustrate this connection. (30-40 words) 3.Finally, they add a short poem, quote, or phrase capturing the poem’s essence.","English: Multiple Assessment activity on 'The Road Not Taken' involving illustration, metaphor comparison, and adding a related poem/quote/phrase.",Describe the Multiple Assessment activity for English based on 'The Road Not Taken' on 24/04/2025.,The Multiple Assessment activity ‘The Roads Within’ involves students illustrating the diverging roads +49,24/04/2025,ENGLISH,Classwork,The Lost Child - Discussed Multiple Assessment will be conducted on Friday 1st May .,"English: """"The Lost Child"""" discussed in class; Multiple Assessment on it will be on Friday May 1st.""",What was discussed in English class on 24/04/2025 and when is the Multiple Assessment for it?,The Lost Child was discussed in class. The Multiple Assessment will be conducted on Friday 1st May. +50,24/04/2025,MATHEMATICS,Ch-2 Polynomials,"Ex-2.2 discussed till Q-3 , complete if not done. Bring AB notebooks for checking tomorrow.",Mathematics: Exercise 2.2 (Polynomials) discussed up to Q-3; students to complete if pending and bring Activity Book (AB) notebooks for checking tomorrow.,What was discussed in Mathematics on 24/04/2025 and what should students do for tomorrow?,Ex-2.2 of Ch-2 Polynomials was discussed till Q-3. Students should complete it if not done and bring AB notebooks for checking tomorrow. +51,23/04/2025,FRENCH,WORKSHEET,PFA,French: Worksheet attached.,What was attached for French on 23/04/2025?,A worksheet was provided (PFA). +52,23/04/2025,MATHEMATICS,Ch-2 Polynomials,Ex-2.1 Explained and discussed. Bring AB notebooks for checking tomorrow.,Mathematics: Exercise 2.1 (Polynomials) explained and discussed; students to bring Activity Book (AB) notebooks for checking tomorrow.,What was covered in Mathematics on 23/04/2025 and what should students do for tomorrow?,Ex-2.1 of Ch-2 Polynomials was Explained and discussed. Students should bring AB notebooks for checking tomorrow. +53,22/04/2025,CHEMISTRY,chemistry work,CW- Revision worksheet of PaI syllabus discussed. Learners to prepare class test of PaI syllabus and submit notebook and Ab for correction work.,Chemistry: Revision worksheet of PA-I syllabus discussed; students to prepare for class test and submit notebook and Activity Book (AB) for correction.,What was discussed in Chemistry on 22/04/2025 and what are the next steps for students?,The Revision worksheet of PA-I syllabus was discussed. Learners should prepare for a class test of PA-I syllabus and submit notebook and AB for correction work. +54,22/04/2025,FRENCH,lesson 4,PFA,French: Lesson 4 material attached.,What material was attached for French on 22/04/2025?,Lesson 4 material was provided (PFA). +55,22/04/2025,SOCIAL SCIENCE,Geography,"Dear Learners, We have conculded the chapter India size and location. Please carry geography AB tomorrow. Completed History Notebook submission by tomorrow too. Thanks SSC FACILITATOR","Social Science (Geography): Chapter ""India size and location"" concluded; students to bring geography Activity Book (AB) and submit completed History notebooks tomorrow.",What was concluded in Social Science Geography on 22/04/2025 and what should students bring/submit tomorrow?,The chapter India size and location has been concluded. Students should carry geography AB tomorrow and submit completed History Notebooks by tomorrow too. +56,21/04/2025,CHEMISTRY,Revision worskheet,Dear leaders PFA REVSION WORKSHEET OF CHEMISTRY.,Chemistry: Revision worksheet provided.,What was provided for Chemistry on 21/04/2025?,A revision worksheet of chemistry was provided. +57,21/04/2025,CHEMISTRY,reminder,Bring notebook for correction work tommorow with completion of PAI syllabus notes and question answers.,Chemistry: Reminder to bring notebooks tomorrow for correction with completed PA-I syllabus notes and question answers.,What is the reminder for Chemistry class tomorrow (April 22nd)?,Bring notebook for correction work tomorrow with completion of PAI syllabus notes and question answers. +58,21/04/2025,CHEMISTRY,REVISION WORKSHEET CHEMISTRY,"Deal all PFA, revision worksheet of chemistry. Learners to get print of the same tommorow for discussion.",Chemistry: Revision worksheet provided; students to get a print for tomorrow's discussion.,What was provided for Chemistry on 21/04/2025 and what should students do for tomorrow's discussion?,A revision worksheet of chemistry was provided. Learners should get a print of the same for tomorrow's discussion. +59,21/04/2025,CHEMISTRY,REVISION WORKSHEET CHEMISTRY,"Deal all PFA, revision worksheet of chemistry. Learners to get print of the same tommorow for discussion.",Chemistry: Revision worksheet provided; students to get a print for tomorrow's discussion.,What was provided for Chemistry on 21/04/2025 and what should students do for tomorrow's discussion?,A revision worksheet of chemistry was provided. Learners should get a print of the same for tomorrow's discussion. +60,21/04/2025,ENGLISH,English Activity for the month of April,"Graphic Organiser (A4 Sheet) The Lost Child by Mulk Raj Anand Task: Based on your reading of The Lost Child, reflect on the vibrant fair the child visits with his parents. This fair is rooted in cultural celebration and community life. Now, think of a seasonal festival fair celebrated in any part of India that shares a similar sense of vibrancy, colour, and local tradition. Design a graphic organiser on an A4 sheet that showcases the festival fair of your choice. Ensure that the organiser includes the following elements: 1. Name and Region – What is the name of the festival and where is it celebrated? 2. Season – Which season does it fall in, and how does that influence the fair's activities and setting? 3. Key Attractions – Describe some visual, auditory, or sensory elements (like in The Lost Child – toys, sweets, snake charmers, rides, etc.) 4. Emotional/Personal Response – If you were the child in the story, how might your experience be similar or different at this fair? 5. Literary Parallel – Make a connection to the story – how does this fair reflect the themes of innocence, desire, or belonging seen in the text? Illustrations/Visuals – Add labelled images or drawings to bring your organiser to life. Bonus Element (Optional): Add a short quote from The Lost Child that resonates with the spirit of the fair you’ve chosen – you can paraphrase if needed.","English (April Activity): Create a graphic organizer comparing the fair in ""The Lost Child"" with a vibrant Indian festival fair, including details on name, region, season, attractions, emotional response, and literary parallel.","Describe the English April Activity based on ""The Lost Child"" announced on 21/04/2025.",The English Activity for the month of April is to create a Graphic Organiser (A4 Sheet) comparing the fair in ‘The Lost Child’ by Mulk Raj Anand with a seasonal festival fair celebrated in any part of India that shares a similar sense of vibrancy +61,21/04/2025,MATHEMATICS,Number system,AB of Number system discussed in Class. Complete if not done. Bring School live Magazine tomorrow with two A4 size,Mathematics: Activity Book (AB) of Number System discussed; students to complete if pending and bring School Live Magazine with two A4 size colored sheets tomorrow.,What was discussed in Mathematics on 21/04/2025 and what should students bring tomorrow?,The AB of Number system was discussed in Class. Students should complete it if not done and bring the School live Magazine tomorrow with two A4 size colored sheets. +62,21/04/2025,ENGLISH,English April Activity,"Graphic Organiser (A4 Sheet) The Lost Child by Mulk Raj Anand Task: Based on your reading of The Lost Child, reflect on the vibrant fair the child visits with his parents. This fair is rooted in cultural celebration and community life. Now, think of a seasonal festival fair celebrated in any part of India that shares a similar sense of vibrancy, colour, and local tradition. Design a graphic organiser on an A4 sheet that showcases the festival fair of your choice. Ensure that the organiser includes the following elements: 1. Name and Region – What is the name of the festival and where is it celebrated? 2. Season – Which season does it fall in, and how does that influence the fair's activities and setting? 3. Key Attractions – Describe some visual, auditory, or sensory elements (like in The Lost Child – toys, sweets, snake charmers, rides, etc.) 4. Emotional/Personal Response – If you were the child in the story, how might your experience be similar or different at this fair? 5. Literary Parallel – Make a connection to the story – how does this fair reflect the themes of innocence, desire, or belonging seen in the text? Illustrations/Visuals – Add labelled images or drawings to bring your organiser to life. Bonus Element (Optional): Add a short quote from The Lost Child that resonates with the spirit of the fair you’ve chosen – you can paraphrase if needed.","English (April Activity): Create a graphic organizer comparing the fair in ""The Lost Child"" with a vibrant Indian festival fair, including details on name, region, season, attractions, emotional response, and literary parallel.","Describe the English April Activity based on ""The Lost Child"" announced on 21/04/2025.",The English Activity for the month of April is to create a Graphic Organiser (A4 Sheet) comparing the fair in ‘The Lost Child’ by Mulk Raj Anand with a seasonal festival fair celebrated in any part of India that shares a similar sense of vibrancy +63,21/04/2025,PHYSICS,PHYSICS REVISION WORKSHEET,"Dear learners, PFA. Warm regards",Physics: Revision worksheet provided.,What was provided for Physics on 21/04/2025?,A Physics revision worksheet was provided. +64,20/04/2025,CHEMISTRY,reminder,Bring NOTEBOOK and AB of chemistry for tomorrow 's class,Chemistry: Reminder to bring notebook and Activity Book (AB) for tomorrow's class.,What is the reminder for tomorrow's Chemistry class (April 21st)?,Bring NOTEBOOK and AB of chemistry for tomorrow 's class. +65,19/04/2025,SCIENCE,GR IX _SCIENCE _EVALUATION PLAN_PA1(2025-26),"Dear Learners, PFA documents for reference. Thanks",Science PA-1 (Grade IX): Evaluation plan documents provided for reference.,What documents were provided for Science PA-1 (Grade IX) on 19/04/2025?,Documents for reference regarding the Grade IX Science Evaluation Plan for PA1 (2025-26) were provided. +66,18/04/2025,CIRCULAR,ATL,"Dear learners Inviting applications from interested participants for ROBORUSH 1.0 -a high-speed, high-energy Robot Race & Project Showcase 1) Robot Race – hit the track, and race to victory! Speed, control, and precision are all that matter! 2)Project Showcase – Flex your tech creations and leave everyone speechless! Date: 26 April 2025 Big prizes, ultimate bragging rights, and tech glory await! Interested learners to mail their idea/ interest in participating at ATLLVISG@lotusvalleygurgaon.com latest by 20.04.25 Regards","Circular (ATL): Invitation for ROBORUSH 1.0 (Robot Race & Project Showcase on April 26th, 2025); interested students to email their ideas by April 20th.",What ATL event was announced in the circular on 18/04/2025 and how can students participate?,An invitation was extended for ROBORUSH 1.0 - a high-speed +67,17/04/2025,PHYSICS,PHYSICS: MOTION,"Dear learners, CW- v-t graph was discussed & numericals on the same were done in class. HW- AB Questions related to the topic Thank you",Physics: Velocity-time (v-t) graph discussed with numericals; homework is Activity Book (AB) questions on the topic.,What topic was discussed in Physics class on 17/04/2025 and what is the homework?,V-t graph was discussed & numericals on the same were done in class. Homework is AB Questions related to the topic. +68,17/04/2025,MATHEMATICS,CH-1 NUMBER SYSTEM,"AB McQ, Case study and subjective till Q4 were discussed. Do Q-1 &2 (subjective) in AB notebooks.","Mathematics: Activity Book (AB) MCQs, case studies, and subjective questions up to Q4 discussed; homework is to do subjective Q-1 & 2 in AB notebooks.",What was discussed in Mathematics Number System chapter on 17/04/2025 and what is the homework?,AB McQ +69,17/04/2025,SCIENCE,NAEST CIRCULAR,"Dear Parents, PFA documents for reference. Thanks",Science: NAEST circular documents provided for parents' reference.,What documents were provided for Science on 17/04/2025?,NAEST circular documents were provided for reference. +70,17/04/2025,BIOLOGY,BIOLOGY,"CW- The written revision for PA-1 was done today in class. Doubts related to chapter fundamental unit of life were also cleared. Submit your biology notebook and AB on Monday for checking. Biology: Written revision for PA-1 done in class doubts cleared on """"Fundamental Unit of Life""""; submit biology notebook and Activity Book (AB) on Monday for checking.""",What was done in Biology class on 17/04/2025 and what should students submit on Monday?,The written revision for PA-1 was done today in class. Doubts related to chapter fundamental unit of life were also cleared. Students should submit their biology notebook and AB on Monday for checking., +71,17/04/2025,ENGLISH,English,"The Road not Taken - completed Hw - SAQ -1,2; LAQ - 2 Please carry Moments for Monday","English: ""The Road Not Taken"" completed; homework is SAQ-1,2 and LAQ-2; bring ""Moments"" textbook for Monday.","What English chapter was completed on 17/04/2025, what is the homework, and what should students bring on Monday?",The Road not Taken was completed. Homework is SAQ -1 +72,16/04/2025,CIRCULAR,Heritage Day Activity,"Dear Students, As discussed in class, please be prepared for the Heritage Day activity. Kindly share either a video or a photograph along with your blog post by mailing it to: priyanka.zulfikar@lotusvalleygurgaon.com. Looking forward to your enthusiastic participation!",Circular: Students to prepare for Heritage Day activity and share a video or photograph with their blog post via email to priyanka.zulfikar@lotusvalleygurgaon.com.,What is required from students for the Heritage Day Activity announced in the circular on 16/04/2025?,Students should be prepared for the Heritage Day activity and kindly share either a video or a photograph along with their blog post by mailing it to priyanka.zulfikar@lotusvalleygurgaon.com. +73,16/04/2025,MATHEMATICS,CH-1 NUMBER SYSTEM,"MCQ questions of AB were discussed in class. Do case study-1 & 2 , Subjective-1 &2 in AB notebooks. List your doubts .",Mathematics: Activity Book (AB) MCQs discussed; homework is to do case studies 1 & 2 and subjective questions 1 & 2 in AB notebooks; students to list their doubts.,What was discussed in Mathematics Number System AB on 16/04/2025 and what is the homework?,MCQ questions of AB were discussed in class. Students should do case study-1 & 2 +74,15/04/2025,BIOLOGY,Biology,"Dear Learners Please submit your biology notebook tomorrow for checking with all the diagrams, in-text questions, and back exercises of the chapter—Fundamental Unit of Life—as mentioned in the class. Kindly carry biology AB tomorrow. HW- Revise chapter - Fundamental unit of life till cell wall for written revision on Thursday, 17 Th April .","Biology: Submit biology notebook tomorrow for checking (diagrams, in-text questions, back exercises of ""Fundamental Unit of Life""); bring biology Activity Book (AB) tomorrow; homework is to revise ""Fundamental Unit of Life"" up to the cell wall for a written revision on Thursday, April 17th.",What should students submit/bring for Biology class tomorrow (April 16th) and what is the homework for Thursday?,Students should submit their biology notebook tomorrow for checking with all the diagrams +75,15/04/2025,MATHEMATICS,NUMBER SYSTEM,Ncert discussed for Ex -1.4 and 1.5. Complete if not done . Bring AB and AB notebooks tomorrow.,Mathematics: NCERT exercises 1.4 and 1.5 discussed; students to complete if pending and bring Activity Book (AB) and AB notebooks tomorrow.,What NCERT exercises were discussed in Mathematics on 15/04/2025 and what should students bring tomorrow?,Ncert discussed for Ex -1.4 and 1.5. Students should complete it if not done and bring AB and AB notebooks tomorrow. diff --git a/backend/testing/.jukit/.jukit_info.json b/backend/testing/.jukit/.jukit_info.json new file mode 100644 index 0000000..92c7342 --- /dev/null +++ b/backend/testing/.jukit/.jukit_info.json @@ -0,0 +1 @@ +{"terminal": "nvimterm"} \ No newline at end of file diff --git a/backend/testing/main.py b/backend/testing/main.py new file mode 100644 index 0000000..1944a98 --- /dev/null +++ b/backend/testing/main.py @@ -0,0 +1,13 @@ +# Load model directly +from transformers import AutoModel + +model = AutoModel.from_pretrained("ParthKadam2003/Gemma-9B-NCERT-lora_model") +tokenizer = AutoModel.from_pretrained( + "ParthKadam2003/Gemma-9B-NCERT-lora_model" +).tokenizer + +# use model +question = "What is plasmolysis?" +input_ids = tokenizer(question, return_tensors="pt").input_ids +output = model(input_ids) +print(output) diff --git a/backend/testing/test.txt b/backend/testing/test.txt new file mode 100644 index 0000000..5bbceca --- /dev/null +++ b/backend/testing/test.txt @@ -0,0 +1,736 @@ +Notes for the Teacher +Beehive, a textbook in English for Class IX, is based on the new syllabus in +English which was prepared as a follow-up to the National Curriculum +Framework , 2005. The curriculum calls for an approach that is rich in +comprehensible input and adopts a language-across-the-curriculum, +multilingual perspective. This reader aims at helping the child to read for +meaning, and to learn to communicate in English with confidence and +accuracy. +Care has been taken to give a central place to the learner in the process +of teaching and learning. Learner-friendly language has been used in +the instructions, and the exercises and activities are addressed to the +child. In this process the teacher is a facilitator or a co-learner. +A rich variety of reading material has been provided to include the literary, +cultural and sociological dimensions of texts. The themes range from +childhood and adolescence, to disability, talent and achievement, to +music, science, and contemporary social and environmental concerns. +The range is as inclusive as possible, keeping in view the interest and +cognitive development of the learners. The book draws on different genres +such as story, biography and autobiography; science fiction; humour; +travelogue; and the one-act play. +The number of poems has been increased to help learners explore this +great source of language, derive the joy of learning through poetry, and +understand the music of words. An attempt has been made to include +different types of poems such as the lyric, the ballad and the humorous +poem. +The poems have been chosen for their simplicity and suitability in terms +of language and thought. We need not talk about the poet or the +background to the poem, unless the poem seems to demand it. Nor +should we attempt to exhaust all the possibilities of a poem; we should +encourage the students to begin to see some of the possibilities. They +should be guided to apprehend the poem through the visual, the auditory, +the tactile, the intellectual, or the emotional channels, and to understand +the suggestiveness of the images. +An attempt has been made to help the learner develop the skill of +predicting and anticipating what follows. Every good reader should guess +what is coming next. The task ‘Before You Read’ given at the beginning + +Reprint 2025-26 + + of each unit is designed for this purpose. Learners should be encouraged +to participate in this activity. +The section ‘Thinking about the Text’ attempts to move from surface +level understanding of the text to critical thinking. The comprehension +exercises given here try to help the learners infer meaning. There are a +few questions which ask for the readers’ judgment; they aim to bring +out the learners’ deeper understanding of the text. +In the section ‘Thinking about Language’: + +• Vocabulary enrichment has been attempted through a variety of +tasks on the usage of words closely related in meaning, matching +words to meanings, word building (including phrasal verbs), and +reference to the dictionary. An activity on the use of the index has +been included. + +• Attention has been drawn to grammar-in-context that emerges out of +the reading text, e.g. the use of the tenses and voice, reported speech, +conditional and subordinate clauses or phrases, and adverbs. +The communicative skills have been exercised by tasks on Speaking +and Writing. The Speaking tasks call for learners to work in pairs or +groups, (for example) to present an argument, express a viewpoint, +express contrasts, seek or give an opinion, introduce a speaker, tell a +story, enact or read out a play in parts, etc. +There are a variety of writing tasks: help writing newspaper report, an +article for a school magazine, argumentative writing, narration, +description, and picture interpretation. +A small attempt has been made to relate speech and writing by pointing +out similarities and differences. Opportunities for writing in groups and +pairs are provided to get into the task. +We have introduced the old exercise of dictation again but from a +completely different perspective. Dictation has been introduced in its +current, updated form as a variety of activities designed to integrate the +language skills of listening, prior reading, language processing and recall, +and writing, including the appropriate use of punctuation in meaningful +contexts. +Some exercises also allow scope for the learners’ languages to support +one another’s by asking for reflection on relevant words, or poems or +stories in other languages; and attempt (preliminary as they may be) to +attend to the process of translation. Activities have been suggested to +bring out the relatedness of the learners’ school subjects. + +2 / Beehive + +Reprint 2025-26 + + Units 1–3 +1. THE FUN THEY HAD +This story takes us to the world of the future where computers will play +a major role. Let the children talk freely about how they imagine the +schools of the future that their own children might go to. You might want +to explain the ideas of ‘virtual reality’ and ‘virtual classroom’. The term +‘virtual reality’ refers to a reality created by computer software, and a +‘virtual classroom’ is not a real classroom but one where learning is +through computer software or the Internet. The children may know what +a robot is, and be able to guess what a robotic teacher would be. +In this unit students are required to present their arguments in a debate. +The following points could be explained before the task. + +• A debate is a contest between two speakers or two groups of speakers +to show skill and ability in arguing. + +• A proposition, a question or a problem is required for this purpose, +which can be spoken for or against. + +• To participate in a debate, one must prepare for it. + +So, one must +prepare an outline of the main points in the order in which one is +going to argue. + +• The time limit is about four to five minutes. +• The speaker addresses the audience. +• Every topic/subject has its own vocabulary. These must be learnt. +• The speaker addresses the chair (Mr President/Madam), ‘submits’ +an argument, ‘appeals’ for sympathetic understanding and support, +‘questions’ the opponent’s views, and ‘concludes’ an argument. + +2. THE SOUND OF MUSIC +These biographical pieces tell us of people who have achieved success +and recognition through determination, hard work and courage. The +children may be asked to think of potential barriers to success, and of +people who have overcome them. The second part of the unit encourages +students to think about the rich heritage of Indian music, and our musical +instruments. The portraits of musicians given in the beginning may be +supplemented by others that the children can be asked to bring to class. +A comprehension exercise in Part II encourages children to find words in +the text that express attitudes (positive, negative or neutral) to events, +places, etc. Encourage the children to compare and discuss their answers. +Dictionary entries give us different kinds of information about words. Children +need help in using the dictionary to find specific kinds of information. +Notes for the Teacher / 3 + +Reprint 2025-26 + + This unit has an exercise that asks students to consult a dictionary and +find out which adjective can be used before a noun, which can be used +after a verb, and which can be used in both ways. You may add some +adjectives to those suggested. Encourage the children also to find more +adjectives of the kinds mentioned. Students may wish to consult (in +addition to the Oxford Advanced Learner’s Dictionary), the Longman +Dictionary of Contemporary English, the Collins Cobuild Advanced Learner’s +English Dictionary, and the Word Master (Orient Longman), or any good +dictionary of their choice. +The Speaking exercise asks the students to imagine introducing a +celebrity guest to an audience. It can be made an authentic activity if +students are given a couple of minutes during the morning assembly to +speak to their fellow-pupils about such a person. This would give them +practice in facing an audience, and encourage them to prepare seriously, +by: (i) noting down the important points about the person to be +introduced, (ii) using appropriate phrases to introduce the person +(students should be allowed to think what phrases they want to use). +The Writing Task is an exercise in comparison. Hard work is a trait common +to Evelyn Glennie (Part I, para 5) and Bismillah Khan (Part II, para 5). +Help children identify the paragraphs that tell us about the two musicians’ +goals. After they read and understand these parts of the text, they can +organise the ideas in two paragraphs, one on each musician. + +3. THE LITTLE GIRL +The aim in this unit is to first read through the story at one go, not worrying +about difficult words or difficult language. Students can read the story for +homework and come to class; or the teacher can read out the story in +class; or the students can read out parts of the story in the class, one +after the other. Let them retell the story again, if necessary, in parts. +The dictionary exercise in this unit shows how a very small common +word can be used in different ways. Students might be interested in +thinking about how they use words in their own language to express +these meanings. They may also think of other words like same, small, +give and take to convey different kids of meaning. Encourage them to +consult a dictionary. +This is a story about the changing attitude of a girl child towards her +father. The Speaking and Writing exercises encourage the students to +think about the relationship between children and parents. The students +should be encouraged to say or write what they think, and not what the +teacher thinks they should say or write. The aim is not to arrive at +a ‘correct’ answer, but to let every child voice an opinion and express +her/his ideas. It is hoped that children will find the topic of personal +relevance. This will help their ideas and language to flow freely. +4 / Beehive + +Reprint 2025-26 + + 1. The Fun They Had +BEFORE YOU READ +• + +The story we shall read is set in the future, when books and +schools as we now know them will perhaps not exist. How +will children study then? The diagram below may give you +some ideas. +Learning +through +computers + +Virtual +classroom + +Schools of +the Future + +Robotic +teacher + +Moving +e-text + +• + +In pairs, discuss three things that you like best about your +school and three things about your school that you would +like to change. Write them down. + +• + +Have you ever read words on a television (or computer) screen? +Can you imagine a time when all books will be on computers, +and there will be no books printed on paper? Would you like +such books better? + +1. MARGIE even wrote about it that night in her diary. + +On the page headed 17 May 2157, she wrote, “Today +Tommy found a real book!” +It was a very old book. Margie’s grandfather once +said that when he was a little boy his grandfather + +Reprint 2025-26 + + told him that there was a time when all stories +were printed on paper. +They turned the pages, which were yellow and +crinkly, and it was awfully funny to read words +that stood still instead of moving the way they were +supposed to — on a screen, you know. And then +when they turned back to the page before, it had +the same words on it that it had had when they +read it the first time. +2. “Gee,” said Tommy, “what a waste. When you’re +through with the book, you just throw it away, I +guess. Our television screen must have had a million +books on it and it’s good for plenty more. I wouldn’t +throw it away.” +“Same with mine,” said Margie. She was eleven +and hadn’t seen as many telebooks as Tommy had. +He was thirteen. +She said, “Where did you find it?” +“In my house.” He pointed without looking, +because he was busy reading. “In the attic.” +“What’s it about?” +“School.” +3. Margie was scornful. “School? What’s there to write +about school? I hate school.” +Margie always hated school, but now she hated +it more than ever. The mechanical teacher had been +giving her test after test in geography and she had +been doing worse and worse until her mother had +shaken her head sorrowfully and sent for the County +Inspector. +4. He was a round little man with a red face and a +whole box of tools with dials and wires. He smiled +at Margie and gave her an apple, then took the +teacher apart. Margie had hoped he wouldn’t know +how to put it together again, but he knew how all +right, and, after an hour or so, there it was again, +large and black and ugly, with a big screen on which +all the lessons were shown and the questions were +asked. That wasn’t so bad. The part Margie hated +6 / Beehive + +Reprint 2025-26 + +crinkly: with many +folds or lines + +attic: a space just +below the roof, used +as a storeroom +scornful: +contemptuous; +showing you think +something is +worthless + + most was the slot where she had to put homework +and test papers. She always had to write them out +in a punch code they made her learn when she was +six years old, and the mechanical teacher calculated +the marks in no time. +5. The Inspector had smiled after he was finished and +patted Margie’s head. He said to her mother, “It’s +not the little girl’s fault, Mrs Jones. I think the +geography sector was geared a little too quick. Those +things happen sometimes. I’ve slowed it up to an +average ten-year level. Actually, the overall pattern +of her progress is quite satisfactory.” And he patted +Margie’s head again. +Margie was disappointed. She had been hoping +they would take the teacher away altogether. They +had once taken Tommy’s teacher away for nearly a +month because the history sector had blanked out +completely. +So she said to Tommy, “Why would anyone write +about school?” +6. Tommy looked at her with very superior eyes. +“Because it’s not our kind of school, stupid. This is +the old kind of school that they had hundreds and +hundreds of years ago.” He added loftily, +pronouncing the word carefully, “Centuries ago.” +Margie was hurt. “Well, I don’t know what +kind of school they had all that time ago.” She read +the book over his shoulder for a while, then said, +“Anyway, they had a teacher.” + +slot: a given space, +time or position + +geared (to): adjusted +to a particular +standard or level + +loftily: in a superior +way + +They had a teacher... It was a man. +The Fun They Had / 7 + +Reprint 2025-26 + + “Sure they had a teacher, but it wasn’t a regular +teacher. It was a man.” +“A man? How could a man be a teacher?” +“Well, he just told the boys and girls things and +gave them homework and asked them questions.” +7. “A man isn’t smart enough.” +“Sure he is. My father knows as much as my +teacher.” +“He knows almost as much, I betcha.” +Margie wasn’t prepared to dispute that. She said, +“I wouldn’t want a strange man in my house to +teach me.” +Tommy screamed with laughter. “You don’t know +much, Margie. The teachers didn’t live in the +house. They had a special building and all the +kids went there.” +“And all the kids learned the same thing?” +“Sure, if they were the same age.” +8. “But my mother says a teacher has to be adjusted to +fit the mind of each boy and girl it teaches and that +each kid has to be taught differently.” +“Just the same they didn’t do it that way then. +If you don’t like it, you don’t have to read the book.” +“I didn’t say I didn’t like it,” Margie said quickly. +She wanted to read about those funny schools. +They weren’t even half finished when Margie’s +mother called, “Margie! School!” +Margie looked up. “Not yet, Mamma.” +“Now!” said Mrs Jones. “And it’s probably time +for Tommy, too.” +Margie said to Tommy, “Can I read the book some +more with you after school?” +9. “May be,” he said nonchalantly. He walked away +whistling, the dusty old book tucked beneath +his arm. +Margie went into the schoolroom. It was right +next to her bedroom, and the mechanical teacher +was on and waiting for her. It was always on at the +same time every day except Saturday and Sunday, +8 / Beehive + +Reprint 2025-26 + +regular: here, +normal; of the usual +kind + +betcha (informal): +(I) bet you (in fast +speech): I’ m sure +dispute: disagree +with + +nonchalantly: not +showing much +interest or +enthusiasm; +carelessly + + The mechanical teacher was flashing on the screen... + +because her mother said little girls learned better +if they learned at regular hours. +The screen was lit up, and it said: “Today’s +arithmetic lesson is on the addition of proper +fractions. Please insert yesterday’s homework in the +proper slot.” +10. Margie did so with a sigh. She was thinking about +the old schools they had when her grandfather’s +grandfather was a little boy. All the kids from the +whole neighborhood came, laughing and shouting +in the schoolyard, sitting together in the schoolroom, +going home together at the end of the day. They +learned the same things, so they could help one +another with the homework and talk about it. +And the teachers were people… +The mechanical teacher was flashing on the +screen: “When we add fractions ½ and ¼...” +Margie was thinking about how the kids must +have loved it in the old days. She was thinking +about the fun they had. +ISAAC ASIMOV +The Fun They Had / 9 + +Reprint 2025-26 + + Thinking about the Text +Activity +Calculate how many years and months ahead from now Margie’s +diary entry is. +I. Answer these questions in a few words or a couple of sentences each. +1. How old are Margie and Tommy? +2. What did Margie write in her diary? +3. Had Margie ever seen a book before? +4. What things about the book did she find strange? +5. What do you think a telebook is? +6. Where was Margie’s school? Did she have any classmates? +7. What subjects did Margie and Tommy learn? +II. Answer the following with reference to the story. +1. “I wouldn’t throw it away.” +(i) Who says these words? +(ii) What does ‘it’ refer to? +(iii) What is it being compared with by the speaker? +2. “Sure they had a teacher, but it wasn’t a regular teacher. It was a man.” +(i) Who does ‘they’ refer to? +(ii) What does ‘regular’ mean here? +(iii) What is it contrasted with? +III. Answer each of these questions in a short paragraph (about 30 words). +1. +2. +3. +4. +5. +6. +7. +8. + +What kind of teachers did Margie and Tommy have? +Why did Margie’s mother send for the County Inspector? +What did he do? +Why was Margie doing badly in geography? What did the County Inspector +do to help her? +What had once happened to Tommy’s teacher? +Did Margie have regular days and hours for school? If so, why? +How does Tommy describe the old kind of school? +How does he describe the old kind of teachers? + +IV. Answer each of these questions in two or three paragraphs (100 –150 words). +1. What are the main features of the mechanical teachers and the schoolrooms +that Margie and Tommy have in the story? +2. Why did Margie hate school? Why did she think the old kind of school must +have been fun? +10 / Beehive + +Reprint 2025-26 + + 3. Do you agree with Margie that schools today are more fun than the school in +the story? Give reasons for your answer. + +Thinking about Language +I. Adverbs +Read this sentence taken from the story: +They had once taken Tommy’s teacher away for nearly a month because the +history sector had blanked out completely. +The word complete is an adjective. When you add –ly to it, it becomes an adverb. +1. Find the sentences in the lesson which have the adverbs given in the box +below. +awfully +carefully + +sorrowfully +differently + +completely +quickly + +loftily + +nonchalantly + +2. Now use these adverbs to fill in the blanks in the sentences below. +(i) The report must be read +improved. + +so that performance can be + +(ii) At the interview, Sameer answered our questions +shrugging his shoulders. +(iii) We all behave + +when we are tired or hungry. + +(iv) The teacher shook her head +(v) I + +, + +when Ravi lied to her. + +forgot about it. + +(vi) When I complimented Revathi on her success, she just smiled +and turned away. +(vii) The President of the Company is +be able to meet you. +(viii) I finished my work + +busy and will not +so that I could go out to play. + +Remember: +An adverb describes action. You can form adverbs by adding –ly to adjectives. +Spelling Note: When an adjective ends in –y, the y changes to i when you +add –ly to form an adverb. +For example: angr-y → angr-i-ly +The Fun They Had / 11 + +Reprint 2025-26 + + 3. Make adverbs from these adjectives. +(i) angry + +(ii) happy + +(iii) merry + +(iv) sleepy + +(v) easy + +(vi) noisy + +(vii) tidy + +(viii) gloomy + +II. If Not and Unless +• Imagine that Margie’s mother told her, “You’ll feel awful if you don’t finish +your history lesson.” +• She could also say: “You’ll feel awful unless you finish your history lesson.” +Unless means if not. Sentences with unless or if not are negative conditional +sentences. +Notice that these sentences have two parts. The part that begins with if not or +unless tells us the condition. This part has a verb in the present tense (look at +the verbs don’t finish, finish in the sentences above). +The other part of the sentence tells us about a possible result. It tells us what +will happen (if something else doesn’t happen). The verb in this part of the +sentence is in the future tense ( you’ll feel/you will feel ). +Notice these two tenses again in the following examples. +Future Tense + +Present Tense + +• There won’t be any books left + +unless + +• You won’t learn your lessons + +if + +• Tommy will have an accident + +unless + +we preserve them. +you don’t study regularly. +he drives more slowly. + +Complete the following conditional sentences. Use the correct form of the verb. +1. If I don’t go to Anu’s party tonight, +2. If you don’t telephone the hotel to order food, +3. Unless you promise to write back, I +4. If she doesn’t play any games, +5. Unless that little bird flies away quickly, the cat + +Writing +A new revised volume of Issac Asimov’s short stories has just been released. +Order one set. Write a letter to the publisher, Mindfame Private Limited, 1632 +Asaf Ali Road, New Delhi, requesting that a set be sent to you by Value Payable +Post (VPP), and giving your address. Your letter will have the following parts. +12 / Beehive + +Reprint 2025-26 + + • + +Addresses of the sender and receiver + +• + +The salutation + +• + +The body of the letter + +• + +The closing phrases and signature + +Your letter might look like this: +Your address + +Date + +(DD/MM/YY) + +The addressee’s address + +Dear Sir/Madam, + +Yours sincerely, + +Your signature + +Remember that the language of a formal letter is different from the +colloquial style of personal letters. For example, contracted forms +such as ‘I’ve’ or ‘can’t’ are not used. + +The Fun They Had / 13 + +Reprint 2025-26 + + Speaking +In groups of four discuss the following topic. +‘The Schools of the Future Will Have No Books and No Teachers!’ +Your group can decide to speak for or against the motion. After this, each group +will select a speaker to present its views to the entire class. +You may find the following phrases useful to present your argument in the debate. +• +• +• +• +• +• +• +• +• + +In my opinion . . . +I/we fail to understand why . . . +I wholeheartedly support/oppose the view that . . . +At the outset let me say . . . +I’d/we’d like to raise the issue of/argue against . . . +I should like to draw attention to . . . +My/our worthy opponent has submitted that . . . +On the contrary . . . +I firmly reject . . . + +Do a Project +Nowadays use of digital devices has increased and digital services have made +our cash transactions easier and smoother. Government of India has taken +initiatives to digitalise cash transactions to buy things and pay bills. Following +are some of the digital initiatives to make people use digital services. + +Take up a project in groups of four to collect opinions of people on the use of +digital services in their daily life. Develop an opionnaire to collect opinions of +about forty people in your neighbourhood. Divide the work among four to collect +the opinions, tabulate the ideas and write a report about the use of digital +devices. Once the project is completed, each group may present it to the whole +class. Charts may be created and displayed on the notice board. +14 / Beehive + +Reprint 2025-26 + + The Road Not Taken +This well-known poem is about making choices, and the +choices that shape us. Robert Frost is an American poet who +writes simply, but insightfully, about common, ordinary +experiences. + +Two roads diverged in a yellow wood, +And sorry I could not travel both +And be one traveller, long I stood +And looked down one as far as I could +To where it bent in the undergrowth; +Then took the other, just as fair, +And having perhaps the better claim, +Because it was grassy and wanted wear; +Though as for that the passing there +Had worn them really about the same. +And both that morning equally lay +In leaves no step had trodden black. +Oh, I kept the first for another day! +Yet knowing how way leads on to way, +I doubted if I should ever come back. +I shall be telling this with a sigh +Somewhere ages and ages hence; +Two roads diverged in a wood, and I — +I took the one less travelled by, +And that has made all the difference. +ROBERT FROST + +Reprint 2025-26 + + GLOSSARY +diverged: separated and took a different direction +undergrowth: dense growth of plants and bushes +wanted wear: had not been used +hence: here, in the future + +Thinking about the Poem +I. 1. Where does the traveller find himself? What problem does he face? +2. Discuss what these phrases mean to you. +(i) a yellow wood +(ii) it was grassy and wanted wear +(iii) the passing there +(iv) leaves no step had trodden black +(v) how way leads on to way +3. Is there any difference between the two roads as the poet describes them +(i) in stanzas two and three? +(ii) in the last two lines of the poem? +4. What do you think the last two lines of the poem mean? (Looking back, does +the poet regret his choice or accept it?) +II. 1. Have you ever had to make a difficult choice (or do you think you will have +difficult choices to make)? How will you make the choice (for what reasons)? +2. After you have made a choice do you always think about what might have +been, or do you accept the reality? + +Time is not measured by the passing of years +but by what one does, what one feels, and +what one achieves. +JAWAHARLAL NEHRU + +16 / Beehive + +Reprint 2025-26 + + \ No newline at end of file diff --git a/backend/uv.lock b/backend/uv.lock index 52226f0..448fe0e 100644 --- a/backend/uv.lock +++ b/backend/uv.lock @@ -11,6 +11,12 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53", size = 13643 }, ] +[[package]] +name = "antlr4-python3-runtime" +version = "4.9.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/3e/38/7859ff46355f76f8d19459005ca000b6e7012f2f1ca597746cbcd1fbfe5e/antlr4-python3-runtime-4.9.3.tar.gz", hash = "sha256:f224469b4168294902bb1efa80a8bf7855f24c99aef99cbefc1bcd3cce77881b", size = 117034 } + [[package]] name = "anyio" version = "4.9.0" @@ -24,16 +30,145 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/a1/ee/48ca1a7c89ffec8b6a0c5d02b89c305671d5ffd8d3c94acf8b8c408575bb/anyio-4.9.0-py3-none-any.whl", hash = "sha256:9f76d541cad6e36af7beb62e978876f3b41e3e04f2c1fbf0884604c0a9c4d93c", size = 100916 }, ] +[[package]] +name = "attrs" +version = "23.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e3/fc/f800d51204003fa8ae392c4e8278f256206e7a919b708eef054f5f4b650d/attrs-23.2.0.tar.gz", hash = "sha256:935dc3b529c262f6cf76e50877d35a4bd3c1de194fd41f47a2b7ae8f19971f30", size = 780820 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e0/44/827b2a91a5816512fcaf3cc4ebc465ccd5d598c45cefa6703fcf4a79018f/attrs-23.2.0-py3-none-any.whl", hash = "sha256:99b87a485a5820b23b879f04c2305b44b951b502fd64be915879d77a7e8fc6f1", size = 60752 }, +] + [[package]] name = "backend" version = "0.1.0" source = { virtual = "." } dependencies = [ + { name = "boto3" }, { name = "fastapi" }, + { name = "sagemaker" }, + { name = "transformers" }, ] [package.metadata] -requires-dist = [{ name = "fastapi", specifier = ">=0.115.12" }] +requires-dist = [ + { name = "boto3", specifier = ">=1.38.18" }, + { name = "fastapi", specifier = ">=0.115.12" }, + { name = "sagemaker", specifier = ">=2.244.1" }, + { name = "transformers", specifier = ">=4.52.2" }, +] + +[[package]] +name = "boto3" +version = "1.38.19" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "botocore" }, + { name = "jmespath" }, + { name = "s3transfer" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/29/3a/eec45ce28d36913074547a06198c4f9f3855062ca18ab266e9e6a27b47c9/boto3-1.38.19.tar.gz", hash = "sha256:fdd69f23e6216a508bbc1fbda9486791c161f3ecd5933ac7090d7290f6f2d0f5", size = 111778 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/87/e0/6df4f92ca43db8a094fc72fbf774af4fc40876bf5e4e3180d90d60f74bb6/boto3-1.38.19-py3-none-any.whl", hash = "sha256:d57d8040d04b8fefb7439062529653701cc90d5b2734cc4f1144fedb75ba94a7", size = 139936 }, +] + +[[package]] +name = "botocore" +version = "1.38.19" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jmespath" }, + { name = "python-dateutil" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/7f/78/c1b2fa6a267018062a66470e6e779366b4e64ab1178de8870ccc3a393cac/botocore-1.38.19.tar.gz", hash = "sha256:796b948c05017eb33385b798990cd91ed4af0e881eb9eb1ee6e17666be02abc9", size = 13913334 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ae/4d/168137542d007a2beb7df8147edce6c5ab1155dd13e8533e74e3ac8ec030/botocore-1.38.19-py3-none-any.whl", hash = "sha256:f937a20e75889215a99280ea0fdd4e1716ffede23e4f9af7bc9c64af9bc63e61", size = 13573222 }, +] + +[[package]] +name = "certifi" +version = "2025.4.26" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e8/9e/c05b3920a3b7d20d3d3310465f50348e5b3694f4f88c6daf736eef3024c4/certifi-2025.4.26.tar.gz", hash = "sha256:0a816057ea3cdefcef70270d2c515e4506bbc954f417fa5ade2021213bb8f0c6", size = 160705 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4a/7e/3db2bd1b1f9e95f7cddca6d6e75e2f2bd9f51b1246e546d88addca0106bd/certifi-2025.4.26-py3-none-any.whl", hash = "sha256:30350364dfe371162649852c63336a15c70c6510c2ad5015b21c2345311805f3", size = 159618 }, +] + +[[package]] +name = "charset-normalizer" +version = "3.4.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e4/33/89c2ced2b67d1c2a61c19c6751aa8902d46ce3dacb23600a283619f5a12d/charset_normalizer-3.4.2.tar.gz", hash = "sha256:5baececa9ecba31eff645232d59845c07aa030f0c81ee70184a90d35099a0e63", size = 126367 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ea/12/a93df3366ed32db1d907d7593a94f1fe6293903e3e92967bebd6950ed12c/charset_normalizer-3.4.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:926ca93accd5d36ccdabd803392ddc3e03e6d4cd1cf17deff3b989ab8e9dbcf0", size = 199622 }, + { url = "https://files.pythonhosted.org/packages/04/93/bf204e6f344c39d9937d3c13c8cd5bbfc266472e51fc8c07cb7f64fcd2de/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eba9904b0f38a143592d9fc0e19e2df0fa2e41c3c3745554761c5f6447eedabf", size = 143435 }, + { url = "https://files.pythonhosted.org/packages/22/2a/ea8a2095b0bafa6c5b5a55ffdc2f924455233ee7b91c69b7edfcc9e02284/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3fddb7e2c84ac87ac3a947cb4e66d143ca5863ef48e4a5ecb83bd48619e4634e", size = 153653 }, + { url = "https://files.pythonhosted.org/packages/b6/57/1b090ff183d13cef485dfbe272e2fe57622a76694061353c59da52c9a659/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98f862da73774290f251b9df8d11161b6cf25b599a66baf087c1ffe340e9bfd1", size = 146231 }, + { url = "https://files.pythonhosted.org/packages/e2/28/ffc026b26f441fc67bd21ab7f03b313ab3fe46714a14b516f931abe1a2d8/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c9379d65defcab82d07b2a9dfbfc2e95bc8fe0ebb1b176a3190230a3ef0e07c", size = 148243 }, + { url = "https://files.pythonhosted.org/packages/c0/0f/9abe9bd191629c33e69e47c6ef45ef99773320e9ad8e9cb08b8ab4a8d4cb/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e635b87f01ebc977342e2697d05b56632f5f879a4f15955dfe8cef2448b51691", size = 150442 }, + { url = "https://files.pythonhosted.org/packages/67/7c/a123bbcedca91d5916c056407f89a7f5e8fdfce12ba825d7d6b9954a1a3c/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:1c95a1e2902a8b722868587c0e1184ad5c55631de5afc0eb96bc4b0d738092c0", size = 145147 }, + { url = "https://files.pythonhosted.org/packages/ec/fe/1ac556fa4899d967b83e9893788e86b6af4d83e4726511eaaad035e36595/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ef8de666d6179b009dce7bcb2ad4c4a779f113f12caf8dc77f0162c29d20490b", size = 153057 }, + { url = "https://files.pythonhosted.org/packages/2b/ff/acfc0b0a70b19e3e54febdd5301a98b72fa07635e56f24f60502e954c461/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:32fc0341d72e0f73f80acb0a2c94216bd704f4f0bce10aedea38f30502b271ff", size = 156454 }, + { url = "https://files.pythonhosted.org/packages/92/08/95b458ce9c740d0645feb0e96cea1f5ec946ea9c580a94adfe0b617f3573/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:289200a18fa698949d2b39c671c2cc7a24d44096784e76614899a7ccf2574b7b", size = 154174 }, + { url = "https://files.pythonhosted.org/packages/78/be/8392efc43487ac051eee6c36d5fbd63032d78f7728cb37aebcc98191f1ff/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4a476b06fbcf359ad25d34a057b7219281286ae2477cc5ff5e3f70a246971148", size = 149166 }, + { url = "https://files.pythonhosted.org/packages/44/96/392abd49b094d30b91d9fbda6a69519e95802250b777841cf3bda8fe136c/charset_normalizer-3.4.2-cp313-cp313-win32.whl", hash = "sha256:aaeeb6a479c7667fbe1099af9617c83aaca22182d6cf8c53966491a0f1b7ffb7", size = 98064 }, + { url = "https://files.pythonhosted.org/packages/e9/b0/0200da600134e001d91851ddc797809e2fe0ea72de90e09bec5a2fbdaccb/charset_normalizer-3.4.2-cp313-cp313-win_amd64.whl", hash = "sha256:aa6af9e7d59f9c12b33ae4e9450619cf2488e2bbe9b44030905877f0b2324980", size = 105641 }, + { url = "https://files.pythonhosted.org/packages/20/94/c5790835a017658cbfabd07f3bfb549140c3ac458cfc196323996b10095a/charset_normalizer-3.4.2-py3-none-any.whl", hash = "sha256:7f56930ab0abd1c45cd15be65cc741c28b1c9a34876ce8c17a2fa107810c0af0", size = 52626 }, +] + +[[package]] +name = "click" +version = "8.2.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/cd/0f/62ca20172d4f87d93cf89665fbaedcd560ac48b465bd1d92bfc7ea6b0a41/click-8.2.0.tar.gz", hash = "sha256:f5452aeddd9988eefa20f90f05ab66f17fce1ee2a36907fd30b05bbb5953814d", size = 235857 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a2/58/1f37bf81e3c689cc74ffa42102fa8915b59085f54a6e4a80bc6265c0f6bf/click-8.2.0-py3-none-any.whl", hash = "sha256:6b303f0b2aa85f1cb4e5303078fadcbcd4e476f114fab9b5007005711839325c", size = 102156 }, +] + +[[package]] +name = "cloudpickle" +version = "3.1.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/52/39/069100b84d7418bc358d81669d5748efb14b9cceacd2f9c75f550424132f/cloudpickle-3.1.1.tar.gz", hash = "sha256:b216fa8ae4019d5482a8ac3c95d8f6346115d8835911fd4aefd1a445e4242c64", size = 22113 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7e/e8/64c37fadfc2816a7701fa8a6ed8d87327c7d54eacfbfb6edab14a2f2be75/cloudpickle-3.1.1-py3-none-any.whl", hash = "sha256:c8c5a44295039331ee9dad40ba100a9c7297b6f988e50e87ccdf3765a668350e", size = 20992 }, +] + +[[package]] +name = "colorama" +version = "0.4.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335 }, +] + +[[package]] +name = "dill" +version = "0.4.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/12/80/630b4b88364e9a8c8c5797f4602d0f76ef820909ee32f0bacb9f90654042/dill-0.4.0.tar.gz", hash = "sha256:0633f1d2df477324f53a895b02c901fb961bdbf65a17122586ea7019292cbcf0", size = 186976 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/50/3d/9373ad9c56321fdab5b41197068e1d8c25883b3fea29dd361f9b55116869/dill-0.4.0-py3-none-any.whl", hash = "sha256:44f54bf6412c2c8464c14e8243eb163690a9800dbe2c367330883b19c7561049", size = 119668 }, +] + +[[package]] +name = "docker" +version = "7.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pywin32", marker = "sys_platform == 'win32'" }, + { name = "requests" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/91/9b/4a2ea29aeba62471211598dac5d96825bb49348fa07e906ea930394a83ce/docker-7.1.0.tar.gz", hash = "sha256:ad8c70e6e3f8926cb8a92619b832b4ea5299e2831c14284663184e200546fa6c", size = 117834 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e3/26/57c6fb270950d476074c087527a558ccb6f4436657314bfb6cdf484114c4/docker-7.1.0-py3-none-any.whl", hash = "sha256:c96b93b7f0a746f9e77d325bcfb87422a3d8bd4f03136ae8a85b37f1898d5fc0", size = 147774 }, +] [[package]] name = "fastapi" @@ -49,6 +184,99 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/50/b3/b51f09c2ba432a576fe63758bddc81f78f0c6309d9e5c10d194313bf021e/fastapi-0.115.12-py3-none-any.whl", hash = "sha256:e94613d6c05e27be7ffebdd6ea5f388112e5e430c8f7d6494a9d1d88d43e814d", size = 95164 }, ] +[[package]] +name = "filelock" +version = "3.18.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/0a/10/c23352565a6544bdc5353e0b15fc1c563352101f30e24bf500207a54df9a/filelock-3.18.0.tar.gz", hash = "sha256:adbc88eabb99d2fec8c9c1b229b171f18afa655400173ddc653d5d01501fb9f2", size = 18075 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4d/36/2a115987e2d8c300a974597416d9de88f2444426de9571f4b59b2cca3acc/filelock-3.18.0-py3-none-any.whl", hash = "sha256:c401f4f8377c4464e6db25fff06205fd89bdd83b65eb0488ed1b160f780e21de", size = 16215 }, +] + +[[package]] +name = "fsspec" +version = "2025.5.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f2/77/deb99b97981e2e191913454da82d406702405178631c31cd623caebaf1b1/fsspec-2025.5.0.tar.gz", hash = "sha256:e4f4623bb6221f7407fd695cc535d1f857a077eb247580f4ada34f5dc25fd5c8", size = 300989 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2c/a9/a7022f58e081149ec0184c31ea81dcee605e1d46380b48122e1ef94ac24e/fsspec-2025.5.0-py3-none-any.whl", hash = "sha256:0ca253eca6b5333d8a2b8bd98c7326fe821f1f0fdbd34e1b445bddde8e804c95", size = 196164 }, +] + +[[package]] +name = "google-pasta" +version = "0.2.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "six" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/35/4a/0bd53b36ff0323d10d5f24ebd67af2de10a1117f5cf4d7add90df92756f1/google-pasta-0.2.0.tar.gz", hash = "sha256:c9f2c8dfc8f96d0d5808299920721be30c9eec37f2389f28904f454565c8a16e", size = 40430 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a3/de/c648ef6835192e6e2cc03f40b19eeda4382c49b5bafb43d88b931c4c74ac/google_pasta-0.2.0-py3-none-any.whl", hash = "sha256:b32482794a366b5366a32c92a9a9201b107821889935a02b3e51f6b432ea84ed", size = 57471 }, +] + +[[package]] +name = "graphene" +version = "3.4.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "graphql-core" }, + { name = "graphql-relay" }, + { name = "python-dateutil" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/cc/f6/bf62ff950c317ed03e77f3f6ddd7e34aaa98fe89d79ebd660c55343d8054/graphene-3.4.3.tar.gz", hash = "sha256:2a3786948ce75fe7e078443d37f609cbe5bb36ad8d6b828740ad3b95ed1a0aaa", size = 44739 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/66/e0/61d8e98007182e6b2aca7cf65904721fb2e4bce0192272ab9cb6f69d8812/graphene-3.4.3-py2.py3-none-any.whl", hash = "sha256:820db6289754c181007a150db1f7fff544b94142b556d12e3ebc777a7bf36c71", size = 114894 }, +] + +[[package]] +name = "graphql-core" +version = "3.2.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c4/16/7574029da84834349b60ed71614d66ca3afe46e9bf9c7b9562102acb7d4f/graphql_core-3.2.6.tar.gz", hash = "sha256:c08eec22f9e40f0bd61d805907e3b3b1b9a320bc606e23dc145eebca07c8fbab", size = 505353 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ae/4f/7297663840621022bc73c22d7d9d80dbc78b4db6297f764b545cd5dd462d/graphql_core-3.2.6-py3-none-any.whl", hash = "sha256:78b016718c161a6fb20a7d97bbf107f331cd1afe53e45566c59f776ed7f0b45f", size = 203416 }, +] + +[[package]] +name = "graphql-relay" +version = "3.2.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "graphql-core" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/d1/13/98fbf8d67552f102488ffc16c6f559ce71ea15f6294728d33928ab5ff14d/graphql-relay-3.2.0.tar.gz", hash = "sha256:1ff1c51298356e481a0be009ccdff249832ce53f30559c1338f22a0e0d17250c", size = 50027 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/74/16/a4cf06adbc711bd364a73ce043b0b08d8fa5aae3df11b6ee4248bcdad2e0/graphql_relay-3.2.0-py3-none-any.whl", hash = "sha256:c9b22bd28b170ba1fe674c74384a8ff30a76c8e26f88ac3aa1584dd3179953e5", size = 16940 }, +] + +[[package]] +name = "h11" +version = "0.16.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/01/ee/02a2c011bdab74c6fb3c75474d40b3052059d95df7e73351460c8588d963/h11-0.16.0.tar.gz", hash = "sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1", size = 101250 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86", size = 37515 }, +] + +[[package]] +name = "huggingface-hub" +version = "0.31.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "filelock" }, + { name = "fsspec" }, + { name = "packaging" }, + { name = "pyyaml" }, + { name = "requests" }, + { name = "tqdm" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/05/a0/7445e07427a917399db619e3c7383de3cd723c20d3b3a8a527a096c49a44/huggingface_hub-0.31.4.tar.gz", hash = "sha256:5a7bc710b9f9c028aee5b1476867b4ec5c1b92f043cb364d5fdc54354757e4ce", size = 407736 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/33/c7/852d4473788cfd7d79b73951244b87a6d75fdac296c90aeb5e85dbb2fb5e/huggingface_hub-0.31.4-py3-none-any.whl", hash = "sha256:4f70704760296cc69b612916056e9845f5490a33782b924fc531767967acc15d", size = 489319 }, +] + [[package]] name = "idna" version = "3.10" @@ -58,6 +286,227 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3", size = 70442 }, ] +[[package]] +name = "importlib-metadata" +version = "6.11.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "zipp" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ee/eb/58c2ab27ee628ad801f56d4017fe62afab0293116f6d0b08f1d5bd46e06f/importlib_metadata-6.11.0.tar.gz", hash = "sha256:1231cf92d825c9e03cfc4da076a16de6422c863558229ea0b22b675657463443", size = 54593 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/59/9b/ecce94952ab5ea74c31dcf9ccf78ccd484eebebef06019bf8cb579ab4519/importlib_metadata-6.11.0-py3-none-any.whl", hash = "sha256:f0afba6205ad8f8947c7d338b5342d5db2afbfd82f9cbef7879a9539cc12eb9b", size = 23427 }, +] + +[[package]] +name = "jmespath" +version = "1.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/00/2a/e867e8531cf3e36b41201936b7fa7ba7b5702dbef42922193f05c8976cd6/jmespath-1.0.1.tar.gz", hash = "sha256:90261b206d6defd58fdd5e85f478bf633a2901798906be2ad389150c5c60edbe", size = 25843 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/31/b4/b9b800c45527aadd64d5b442f9b932b00648617eb5d63d2c7a6587b7cafc/jmespath-1.0.1-py3-none-any.whl", hash = "sha256:02e2e4cc71b5bcab88332eebf907519190dd9e6e82107fa7f83b1003a6252980", size = 20256 }, +] + +[[package]] +name = "jsonschema" +version = "4.23.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "jsonschema-specifications" }, + { name = "referencing" }, + { name = "rpds-py" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/38/2e/03362ee4034a4c917f697890ccd4aec0800ccf9ded7f511971c75451deec/jsonschema-4.23.0.tar.gz", hash = "sha256:d71497fef26351a33265337fa77ffeb82423f3ea21283cd9467bb03999266bc4", size = 325778 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/69/4a/4f9dbeb84e8850557c02365a0eee0649abe5eb1d84af92a25731c6c0f922/jsonschema-4.23.0-py3-none-any.whl", hash = "sha256:fbadb6f8b144a8f8cf9f0b89ba94501d143e50411a1278633f56a7acf7fd5566", size = 88462 }, +] + +[[package]] +name = "jsonschema-specifications" +version = "2025.4.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "referencing" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bf/ce/46fbd9c8119cfc3581ee5643ea49464d168028cfb5caff5fc0596d0cf914/jsonschema_specifications-2025.4.1.tar.gz", hash = "sha256:630159c9f4dbea161a6a2205c3011cc4f18ff381b189fff48bb39b9bf26ae608", size = 15513 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/01/0e/b27cdbaccf30b890c40ed1da9fd4a3593a5cf94dae54fb34f8a4b74fcd3f/jsonschema_specifications-2025.4.1-py3-none-any.whl", hash = "sha256:4653bffbd6584f7de83a67e0d620ef16900b390ddc7939d56684d6c81e33f1af", size = 18437 }, +] + +[[package]] +name = "markdown-it-py" +version = "3.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mdurl" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/38/71/3b932df36c1a044d397a1f92d1cf91ee0a503d91e470cbd670aa66b07ed0/markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb", size = 74596 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/42/d7/1ec15b46af6af88f19b8e5ffea08fa375d433c998b8a7639e76935c14f1f/markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1", size = 87528 }, +] + +[[package]] +name = "mdurl" +version = "0.1.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d6/54/cfe61301667036ec958cb99bd3efefba235e65cdeb9c84d24a8293ba1d90/mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba", size = 8729 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979 }, +] + +[[package]] +name = "mock" +version = "4.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e2/be/3ea39a8fd4ed3f9a25aae18a1bff2df7a610bca93c8ede7475e32d8b73a0/mock-4.0.3.tar.gz", hash = "sha256:7d3fbbde18228f4ff2f1f119a45cdffa458b4c0dee32eb4d2bb2f82554bac7bc", size = 72316 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5c/03/b7e605db4a57c0f6fba744b11ef3ddf4ddebcada35022927a2b5fc623fdf/mock-4.0.3-py3-none-any.whl", hash = "sha256:122fcb64ee37cfad5b3f48d7a7d51875d7031aaf3d8be7c42e2bee25044eee62", size = 28536 }, +] + +[[package]] +name = "multiprocess" +version = "0.70.18" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "dill" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/72/fd/2ae3826f5be24c6ed87266bc4e59c46ea5b059a103f3d7e7eb76a52aeecb/multiprocess-0.70.18.tar.gz", hash = "sha256:f9597128e6b3e67b23956da07cf3d2e5cba79e2f4e0fba8d7903636663ec6d0d", size = 1798503 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ba/d8/0cba6cf51a1a31f20471fbc823a716170c73012ddc4fb85d706630ed6e8f/multiprocess-0.70.18-py310-none-any.whl", hash = "sha256:60c194974c31784019c1f459d984e8f33ee48f10fcf42c309ba97b30d9bd53ea", size = 134948 }, + { url = "https://files.pythonhosted.org/packages/4b/88/9039f2fed1012ef584751d4ceff9ab4a51e5ae264898f0b7cbf44340a859/multiprocess-0.70.18-py311-none-any.whl", hash = "sha256:5aa6eef98e691281b3ad923be2832bf1c55dd2c859acd73e5ec53a66aae06a1d", size = 144462 }, + { url = "https://files.pythonhosted.org/packages/bf/b6/5f922792be93b82ec6b5f270bbb1ef031fd0622847070bbcf9da816502cc/multiprocess-0.70.18-py312-none-any.whl", hash = "sha256:9b78f8e5024b573730bfb654783a13800c2c0f2dfc0c25e70b40d184d64adaa2", size = 150287 }, + { url = "https://files.pythonhosted.org/packages/ee/25/7d7e78e750bc1aecfaf0efbf826c69a791d2eeaf29cf20cba93ff4cced78/multiprocess-0.70.18-py313-none-any.whl", hash = "sha256:871743755f43ef57d7910a38433cfe41319e72be1bbd90b79c7a5ac523eb9334", size = 151917 }, + { url = "https://files.pythonhosted.org/packages/3b/c3/ca84c19bd14cdfc21c388fdcebf08b86a7a470ebc9f5c3c084fc2dbc50f7/multiprocess-0.70.18-py38-none-any.whl", hash = "sha256:dbf705e52a154fe5e90fb17b38f02556169557c2dd8bb084f2e06c2784d8279b", size = 132636 }, + { url = "https://files.pythonhosted.org/packages/6c/28/dd72947e59a6a8c856448a5e74da6201cb5502ddff644fbc790e4bd40b9a/multiprocess-0.70.18-py39-none-any.whl", hash = "sha256:e78ca805a72b1b810c690b6b4cc32579eba34f403094bbbae962b7b5bf9dfcb8", size = 133478 }, +] + +[[package]] +name = "numpy" +version = "1.26.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/65/6e/09db70a523a96d25e115e71cc56a6f9031e7b8cd166c1ac8438307c14058/numpy-1.26.4.tar.gz", hash = "sha256:2a02aba9ed12e4ac4eb3ea9421c420301a0c6460d9830d74a9df87efa4912010", size = 15786129 } + +[[package]] +name = "omegaconf" +version = "2.3.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "antlr4-python3-runtime" }, + { name = "pyyaml" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/09/48/6388f1bb9da707110532cb70ec4d2822858ddfb44f1cdf1233c20a80ea4b/omegaconf-2.3.0.tar.gz", hash = "sha256:d5d4b6d29955cc50ad50c46dc269bcd92c6e00f5f90d23ab5fee7bfca4ba4cc7", size = 3298120 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e3/94/1843518e420fa3ed6919835845df698c7e27e183cb997394e4a670973a65/omegaconf-2.3.0-py3-none-any.whl", hash = "sha256:7b4df175cdb08ba400f45cae3bdcae7ba8365db4d165fc65fd04b050ab63b46b", size = 79500 }, +] + +[[package]] +name = "packaging" +version = "24.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d0/63/68dbb6eb2de9cb10ee4c9c14a0148804425e13c4fb20d61cce69f53106da/packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f", size = 163950 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/88/ef/eb23f262cca3c0c4eb7ab1933c3b1f03d021f2c48f54763065b6f0e321be/packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759", size = 65451 }, +] + +[[package]] +name = "pandas" +version = "2.2.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, + { name = "python-dateutil" }, + { name = "pytz" }, + { name = "tzdata" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/9c/d6/9f8431bacc2e19dca897724cd097b1bb224a6ad5433784a44b587c7c13af/pandas-2.2.3.tar.gz", hash = "sha256:4f18ba62b61d7e192368b84517265a99b4d7ee8912f8708660fb4a366cc82667", size = 4399213 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/64/22/3b8f4e0ed70644e85cfdcd57454686b9057c6c38d2f74fe4b8bc2527214a/pandas-2.2.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f00d1345d84d8c86a63e476bb4955e46458b304b9575dcf71102b5c705320015", size = 12477643 }, + { url = "https://files.pythonhosted.org/packages/e4/93/b3f5d1838500e22c8d793625da672f3eec046b1a99257666c94446969282/pandas-2.2.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3508d914817e153ad359d7e069d752cdd736a247c322d932eb89e6bc84217f28", size = 11281573 }, + { url = "https://files.pythonhosted.org/packages/f5/94/6c79b07f0e5aab1dcfa35a75f4817f5c4f677931d4234afcd75f0e6a66ca/pandas-2.2.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:22a9d949bfc9a502d320aa04e5d02feab689d61da4e7764b62c30b991c42c5f0", size = 15196085 }, + { url = "https://files.pythonhosted.org/packages/e8/31/aa8da88ca0eadbabd0a639788a6da13bb2ff6edbbb9f29aa786450a30a91/pandas-2.2.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f3a255b2c19987fbbe62a9dfd6cff7ff2aa9ccab3fc75218fd4b7530f01efa24", size = 12711809 }, + { url = "https://files.pythonhosted.org/packages/ee/7c/c6dbdb0cb2a4344cacfb8de1c5808ca885b2e4dcfde8008266608f9372af/pandas-2.2.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:800250ecdadb6d9c78eae4990da62743b857b470883fa27f652db8bdde7f6659", size = 16356316 }, + { url = "https://files.pythonhosted.org/packages/57/b7/8b757e7d92023b832869fa8881a992696a0bfe2e26f72c9ae9f255988d42/pandas-2.2.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6374c452ff3ec675a8f46fd9ab25c4ad0ba590b71cf0656f8b6daa5202bca3fb", size = 14022055 }, + { url = "https://files.pythonhosted.org/packages/3b/bc/4b18e2b8c002572c5a441a64826252ce5da2aa738855747247a971988043/pandas-2.2.3-cp313-cp313-win_amd64.whl", hash = "sha256:61c5ad4043f791b61dd4752191d9f07f0ae412515d59ba8f005832a532f8736d", size = 11481175 }, + { url = "https://files.pythonhosted.org/packages/76/a3/a5d88146815e972d40d19247b2c162e88213ef51c7c25993942c39dbf41d/pandas-2.2.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:3b71f27954685ee685317063bf13c7709a7ba74fc996b84fc6821c59b0f06468", size = 12615650 }, + { url = "https://files.pythonhosted.org/packages/9c/8c/f0fd18f6140ddafc0c24122c8a964e48294acc579d47def376fef12bcb4a/pandas-2.2.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:38cf8125c40dae9d5acc10fa66af8ea6fdf760b2714ee482ca691fc66e6fcb18", size = 11290177 }, + { url = "https://files.pythonhosted.org/packages/ed/f9/e995754eab9c0f14c6777401f7eece0943840b7a9fc932221c19d1abee9f/pandas-2.2.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ba96630bc17c875161df3818780af30e43be9b166ce51c9a18c1feae342906c2", size = 14651526 }, + { url = "https://files.pythonhosted.org/packages/25/b0/98d6ae2e1abac4f35230aa756005e8654649d305df9a28b16b9ae4353bff/pandas-2.2.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1db71525a1538b30142094edb9adc10be3f3e176748cd7acc2240c2f2e5aa3a4", size = 11871013 }, + { url = "https://files.pythonhosted.org/packages/cc/57/0f72a10f9db6a4628744c8e8f0df4e6e21de01212c7c981d31e50ffc8328/pandas-2.2.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:15c0e1e02e93116177d29ff83e8b1619c93ddc9c49083f237d4312337a61165d", size = 15711620 }, + { url = "https://files.pythonhosted.org/packages/ab/5f/b38085618b950b79d2d9164a711c52b10aefc0ae6833b96f626b7021b2ed/pandas-2.2.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:ad5b65698ab28ed8d7f18790a0dc58005c7629f227be9ecc1072aa74c0c1d43a", size = 13098436 }, +] + +[[package]] +name = "pathos" +version = "0.3.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "dill" }, + { name = "multiprocess" }, + { name = "pox" }, + { name = "ppft" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/be/90/fdbe3bbfe79933db439e1844083cb6e9d5a9d3b686738549b3d22d06eae7/pathos-0.3.4.tar.gz", hash = "sha256:bad4912d0ef865654a7cc478da65f2e1d5b69f3d92c4a7d9c9845657783c0754", size = 167076 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/11/0a/daece46e65c821d153746566a1604ac90338f0279b1fb858a3617eb60472/pathos-0.3.4-py3-none-any.whl", hash = "sha256:fe44883448c05c80d518b61df491b496f6190bb6860253f3254d8c9afb53c340", size = 82261 }, +] + +[[package]] +name = "platformdirs" +version = "4.3.8" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/fe/8b/3c73abc9c759ecd3f1f7ceff6685840859e8070c4d947c93fae71f6a0bf2/platformdirs-4.3.8.tar.gz", hash = "sha256:3d512d96e16bcb959a814c9f348431070822a6496326a4be0911c40b5a74c2bc", size = 21362 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fe/39/979e8e21520d4e47a0bbe349e2713c0aac6f3d853d0e5b34d76206c439aa/platformdirs-4.3.8-py3-none-any.whl", hash = "sha256:ff7059bb7eb1179e2685604f4aaf157cfd9535242bd23742eadc3c13542139b4", size = 18567 }, +] + +[[package]] +name = "pox" +version = "0.3.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/56/99/42670d273fd598a6fe98c8b2f593ee425b29e44f2d1a61ff622031204ccd/pox-0.3.6.tar.gz", hash = "sha256:84eeed39600159a62804aacfc00e353edeaae67d8c647ccaaab73a6efed3f605", size = 119393 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0d/c2/6435789c26661bef699868ee54d2763aea636a1ed21ec8e350b1f9f65888/pox-0.3.6-py3-none-any.whl", hash = "sha256:d48654d0a3dca0c9c02dccae54a53c3870286a5217ad306b2bd94f84e008bc1b", size = 29495 }, +] + +[[package]] +name = "ppft" +version = "1.7.7" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/1d/46/9e9f2ae7e8e284acbde6ab36f7f4a35b273519a60c0ed419af2da780d49f/ppft-1.7.7.tar.gz", hash = "sha256:f3f77448cfe24c2b8d2296b6d8732280b25041a3f3e1f551856c6451d3e01b96", size = 136272 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5b/23/6aef7c24f4ee6f765aeaaaa3bf24cfdb0730a20336a02b1a061d227d84be/ppft-1.7.7-py3-none-any.whl", hash = "sha256:fb7524db110682de886b4bb5b08f7bf6a38940566074ef2f62521cbbd3864676", size = 56764 }, +] + +[[package]] +name = "protobuf" +version = "5.29.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/17/7d/b9dca7365f0e2c4fa7c193ff795427cfa6290147e5185ab11ece280a18e7/protobuf-5.29.4.tar.gz", hash = "sha256:4f1dfcd7997b31ef8f53ec82781ff434a28bf71d9102ddde14d076adcfc78c99", size = 424902 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9a/b2/043a1a1a20edd134563699b0e91862726a0dc9146c090743b6c44d798e75/protobuf-5.29.4-cp310-abi3-win32.whl", hash = "sha256:13eb236f8eb9ec34e63fc8b1d6efd2777d062fa6aaa68268fb67cf77f6839ad7", size = 422709 }, + { url = "https://files.pythonhosted.org/packages/79/fc/2474b59570daa818de6124c0a15741ee3e5d6302e9d6ce0bdfd12e98119f/protobuf-5.29.4-cp310-abi3-win_amd64.whl", hash = "sha256:bcefcdf3976233f8a502d265eb65ea740c989bacc6c30a58290ed0e519eb4b8d", size = 434506 }, + { url = "https://files.pythonhosted.org/packages/46/de/7c126bbb06aa0f8a7b38aaf8bd746c514d70e6a2a3f6dd460b3b7aad7aae/protobuf-5.29.4-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:307ecba1d852ec237e9ba668e087326a67564ef83e45a0189a772ede9e854dd0", size = 417826 }, + { url = "https://files.pythonhosted.org/packages/a2/b5/bade14ae31ba871a139aa45e7a8183d869efe87c34a4850c87b936963261/protobuf-5.29.4-cp38-abi3-manylinux2014_aarch64.whl", hash = "sha256:aec4962f9ea93c431d5714ed1be1c93f13e1a8618e70035ba2b0564d9e633f2e", size = 319574 }, + { url = "https://files.pythonhosted.org/packages/46/88/b01ed2291aae68b708f7d334288ad5fb3e7aa769a9c309c91a0d55cb91b0/protobuf-5.29.4-cp38-abi3-manylinux2014_x86_64.whl", hash = "sha256:d7d3f7d1d5a66ed4942d4fefb12ac4b14a29028b209d4bfb25c68ae172059922", size = 319672 }, + { url = "https://files.pythonhosted.org/packages/12/fb/a586e0c973c95502e054ac5f81f88394f24ccc7982dac19c515acd9e2c93/protobuf-5.29.4-py3-none-any.whl", hash = "sha256:3fde11b505e1597f71b875ef2fc52062b6a9740e5f7c8997ce878b6009145862", size = 172551 }, +] + +[[package]] +name = "psutil" +version = "7.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/2a/80/336820c1ad9286a4ded7e845b2eccfcb27851ab8ac6abece774a6ff4d3de/psutil-7.0.0.tar.gz", hash = "sha256:7be9c3eba38beccb6495ea33afd982a44074b78f28c434a1f51cc07fd315c456", size = 497003 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ed/e6/2d26234410f8b8abdbf891c9da62bee396583f713fb9f3325a4760875d22/psutil-7.0.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:101d71dc322e3cffd7cea0650b09b3d08b8e7c4109dd6809fe452dfd00e58b25", size = 238051 }, + { url = "https://files.pythonhosted.org/packages/04/8b/30f930733afe425e3cbfc0e1468a30a18942350c1a8816acfade80c005c4/psutil-7.0.0-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:39db632f6bb862eeccf56660871433e111b6ea58f2caea825571951d4b6aa3da", size = 239535 }, + { url = "https://files.pythonhosted.org/packages/2a/ed/d362e84620dd22876b55389248e522338ed1bf134a5edd3b8231d7207f6d/psutil-7.0.0-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1fcee592b4c6f146991ca55919ea3d1f8926497a713ed7faaf8225e174581e91", size = 275004 }, + { url = "https://files.pythonhosted.org/packages/bf/b9/b0eb3f3cbcb734d930fdf839431606844a825b23eaf9a6ab371edac8162c/psutil-7.0.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b1388a4f6875d7e2aff5c4ca1cc16c545ed41dd8bb596cefea80111db353a34", size = 277986 }, + { url = "https://files.pythonhosted.org/packages/eb/a2/709e0fe2f093556c17fbafda93ac032257242cabcc7ff3369e2cb76a97aa/psutil-7.0.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5f098451abc2828f7dc6b58d44b532b22f2088f4999a937557b603ce72b1993", size = 279544 }, + { url = "https://files.pythonhosted.org/packages/50/e6/eecf58810b9d12e6427369784efe814a1eec0f492084ce8eb8f4d89d6d61/psutil-7.0.0-cp37-abi3-win32.whl", hash = "sha256:ba3fcef7523064a6c9da440fc4d6bd07da93ac726b5733c29027d7dc95b39d99", size = 241053 }, + { url = "https://files.pythonhosted.org/packages/50/1b/6921afe68c74868b4c9fa424dad3be35b095e16687989ebbb50ce4fceb7c/psutil-7.0.0-cp37-abi3-win_amd64.whl", hash = "sha256:4cf3d4eb1aa9b348dec30105c55cd9b7d4629285735a102beb4441e38db90553", size = 244885 }, +] + [[package]] name = "pydantic" version = "2.11.4" @@ -101,6 +550,278 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/6f/9a/e73262f6c6656262b5fdd723ad90f518f579b7bc8622e43a942eec53c938/pydantic_core-2.33.2-cp313-cp313t-win_amd64.whl", hash = "sha256:c2fc0a768ef76c15ab9238afa6da7f69895bb5d1ee83aeea2e3509af4472d0b9", size = 1935777 }, ] +[[package]] +name = "pygments" +version = "2.19.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7c/2d/c3338d48ea6cc0feb8446d8e6937e1408088a72a39937982cc6111d17f84/pygments-2.19.1.tar.gz", hash = "sha256:61c16d2a8576dc0649d9f39e089b5f02bcd27fba10d8fb4dcc28173f7a45151f", size = 4968581 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8a/0b/9fcc47d19c48b59121088dd6da2488a49d5f72dacf8262e2790a1d2c7d15/pygments-2.19.1-py3-none-any.whl", hash = "sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c", size = 1225293 }, +] + +[[package]] +name = "python-dateutil" +version = "2.9.0.post0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "six" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/66/c0/0c8b6ad9f17a802ee498c46e004a0eb49bc148f2fd230864601a86dcf6db/python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 342432 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", size = 229892 }, +] + +[[package]] +name = "pytz" +version = "2025.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f8/bf/abbd3cdfb8fbc7fb3d4d38d320f2441b1e7cbe29be4f23797b4a2b5d8aac/pytz-2025.2.tar.gz", hash = "sha256:360b9e3dbb49a209c21ad61809c7fb453643e048b38924c765813546746e81c3", size = 320884 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/81/c4/34e93fe5f5429d7570ec1fa436f1986fb1f00c3e0f43a589fe2bbcd22c3f/pytz-2025.2-py2.py3-none-any.whl", hash = "sha256:5ddf76296dd8c44c26eb8f4b6f35488f3ccbf6fbbd7adee0b7262d43f0ec2f00", size = 509225 }, +] + +[[package]] +name = "pywin32" +version = "310" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1c/09/9c1b978ffc4ae53999e89c19c77ba882d9fce476729f23ef55211ea1c034/pywin32-310-cp313-cp313-win32.whl", hash = "sha256:5d241a659c496ada3253cd01cfaa779b048e90ce4b2b38cd44168ad555ce74ab", size = 8794384 }, + { url = "https://files.pythonhosted.org/packages/45/3c/b4640f740ffebadd5d34df35fecba0e1cfef8fde9f3e594df91c28ad9b50/pywin32-310-cp313-cp313-win_amd64.whl", hash = "sha256:667827eb3a90208ddbdcc9e860c81bde63a135710e21e4cb3348968e4bd5249e", size = 9503039 }, + { url = "https://files.pythonhosted.org/packages/b4/f4/f785020090fb050e7fb6d34b780f2231f302609dc964672f72bfaeb59a28/pywin32-310-cp313-cp313-win_arm64.whl", hash = "sha256:e308f831de771482b7cf692a1f308f8fca701b2d8f9dde6cc440c7da17e47b33", size = 8458152 }, +] + +[[package]] +name = "pyyaml" +version = "6.0.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/54/ed/79a089b6be93607fa5cdaedf301d7dfb23af5f25c398d5ead2525b063e17/pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e", size = 130631 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ef/e3/3af305b830494fa85d95f6d95ef7fa73f2ee1cc8ef5b495c7c3269fb835f/PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba", size = 181309 }, + { url = "https://files.pythonhosted.org/packages/45/9f/3b1c20a0b7a3200524eb0076cc027a970d320bd3a6592873c85c92a08731/PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1", size = 171679 }, + { url = "https://files.pythonhosted.org/packages/7c/9a/337322f27005c33bcb656c655fa78325b730324c78620e8328ae28b64d0c/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133", size = 733428 }, + { url = "https://files.pythonhosted.org/packages/a3/69/864fbe19e6c18ea3cc196cbe5d392175b4cf3d5d0ac1403ec3f2d237ebb5/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484", size = 763361 }, + { url = "https://files.pythonhosted.org/packages/04/24/b7721e4845c2f162d26f50521b825fb061bc0a5afcf9a386840f23ea19fa/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5", size = 759523 }, + { url = "https://files.pythonhosted.org/packages/2b/b2/e3234f59ba06559c6ff63c4e10baea10e5e7df868092bf9ab40e5b9c56b6/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc", size = 726660 }, + { url = "https://files.pythonhosted.org/packages/fe/0f/25911a9f080464c59fab9027482f822b86bf0608957a5fcc6eaac85aa515/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652", size = 751597 }, + { url = "https://files.pythonhosted.org/packages/14/0d/e2c3b43bbce3cf6bd97c840b46088a3031085179e596d4929729d8d68270/PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183", size = 140527 }, + { url = "https://files.pythonhosted.org/packages/fa/de/02b54f42487e3d3c6efb3f89428677074ca7bf43aae402517bc7cca949f3/PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563", size = 156446 }, +] + +[[package]] +name = "referencing" +version = "0.36.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "rpds-py" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/2f/db/98b5c277be99dd18bfd91dd04e1b759cad18d1a338188c936e92f921c7e2/referencing-0.36.2.tar.gz", hash = "sha256:df2e89862cd09deabbdba16944cc3f10feb6b3e6f18e902f7cc25609a34775aa", size = 74744 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c1/b1/3baf80dc6d2b7bc27a95a67752d0208e410351e3feb4eb78de5f77454d8d/referencing-0.36.2-py3-none-any.whl", hash = "sha256:e8699adbbf8b5c7de96d8ffa0eb5c158b3beafce084968e2ea8bb08c6794dcd0", size = 26775 }, +] + +[[package]] +name = "regex" +version = "2024.11.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/8e/5f/bd69653fbfb76cf8604468d3b4ec4c403197144c7bfe0e6a5fc9e02a07cb/regex-2024.11.6.tar.gz", hash = "sha256:7ab159b063c52a0333c884e4679f8d7a85112ee3078fe3d9004b2dd875585519", size = 399494 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/90/73/bcb0e36614601016552fa9344544a3a2ae1809dc1401b100eab02e772e1f/regex-2024.11.6-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a6ba92c0bcdf96cbf43a12c717eae4bc98325ca3730f6b130ffa2e3c3c723d84", size = 483525 }, + { url = "https://files.pythonhosted.org/packages/0f/3f/f1a082a46b31e25291d830b369b6b0c5576a6f7fb89d3053a354c24b8a83/regex-2024.11.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:525eab0b789891ac3be914d36893bdf972d483fe66551f79d3e27146191a37d4", size = 288324 }, + { url = "https://files.pythonhosted.org/packages/09/c9/4e68181a4a652fb3ef5099e077faf4fd2a694ea6e0f806a7737aff9e758a/regex-2024.11.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:086a27a0b4ca227941700e0b31425e7a28ef1ae8e5e05a33826e17e47fbfdba0", size = 284617 }, + { url = "https://files.pythonhosted.org/packages/fc/fd/37868b75eaf63843165f1d2122ca6cb94bfc0271e4428cf58c0616786dce/regex-2024.11.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bde01f35767c4a7899b7eb6e823b125a64de314a8ee9791367c9a34d56af18d0", size = 795023 }, + { url = "https://files.pythonhosted.org/packages/c4/7c/d4cd9c528502a3dedb5c13c146e7a7a539a3853dc20209c8e75d9ba9d1b2/regex-2024.11.6-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b583904576650166b3d920d2bcce13971f6f9e9a396c673187f49811b2769dc7", size = 833072 }, + { url = "https://files.pythonhosted.org/packages/4f/db/46f563a08f969159c5a0f0e722260568425363bea43bb7ae370becb66a67/regex-2024.11.6-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1c4de13f06a0d54fa0d5ab1b7138bfa0d883220965a29616e3ea61b35d5f5fc7", size = 823130 }, + { url = "https://files.pythonhosted.org/packages/db/60/1eeca2074f5b87df394fccaa432ae3fc06c9c9bfa97c5051aed70e6e00c2/regex-2024.11.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3cde6e9f2580eb1665965ce9bf17ff4952f34f5b126beb509fee8f4e994f143c", size = 796857 }, + { url = "https://files.pythonhosted.org/packages/10/db/ac718a08fcee981554d2f7bb8402f1faa7e868c1345c16ab1ebec54b0d7b/regex-2024.11.6-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0d7f453dca13f40a02b79636a339c5b62b670141e63efd511d3f8f73fba162b3", size = 784006 }, + { url = "https://files.pythonhosted.org/packages/c2/41/7da3fe70216cea93144bf12da2b87367590bcf07db97604edeea55dac9ad/regex-2024.11.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:59dfe1ed21aea057a65c6b586afd2a945de04fc7db3de0a6e3ed5397ad491b07", size = 781650 }, + { url = "https://files.pythonhosted.org/packages/a7/d5/880921ee4eec393a4752e6ab9f0fe28009435417c3102fc413f3fe81c4e5/regex-2024.11.6-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:b97c1e0bd37c5cd7902e65f410779d39eeda155800b65fc4d04cc432efa9bc6e", size = 789545 }, + { url = "https://files.pythonhosted.org/packages/dc/96/53770115e507081122beca8899ab7f5ae28ae790bfcc82b5e38976df6a77/regex-2024.11.6-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:f9d1e379028e0fc2ae3654bac3cbbef81bf3fd571272a42d56c24007979bafb6", size = 853045 }, + { url = "https://files.pythonhosted.org/packages/31/d3/1372add5251cc2d44b451bd94f43b2ec78e15a6e82bff6a290ef9fd8f00a/regex-2024.11.6-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:13291b39131e2d002a7940fb176e120bec5145f3aeb7621be6534e46251912c4", size = 860182 }, + { url = "https://files.pythonhosted.org/packages/ed/e3/c446a64984ea9f69982ba1a69d4658d5014bc7a0ea468a07e1a1265db6e2/regex-2024.11.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4f51f88c126370dcec4908576c5a627220da6c09d0bff31cfa89f2523843316d", size = 787733 }, + { url = "https://files.pythonhosted.org/packages/2b/f1/e40c8373e3480e4f29f2692bd21b3e05f296d3afebc7e5dcf21b9756ca1c/regex-2024.11.6-cp313-cp313-win32.whl", hash = "sha256:63b13cfd72e9601125027202cad74995ab26921d8cd935c25f09c630436348ff", size = 262122 }, + { url = "https://files.pythonhosted.org/packages/45/94/bc295babb3062a731f52621cdc992d123111282e291abaf23faa413443ea/regex-2024.11.6-cp313-cp313-win_amd64.whl", hash = "sha256:2b3361af3198667e99927da8b84c1b010752fa4b1115ee30beaa332cabc3ef1a", size = 273545 }, +] + +[[package]] +name = "requests" +version = "2.32.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "charset-normalizer" }, + { name = "idna" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/63/70/2bf7780ad2d390a8d301ad0b550f1581eadbd9a20f896afe06353c2a2913/requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760", size = 131218 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f9/9b/335f9764261e915ed497fcdeb11df5dfd6f7bf257d4a6a2a686d80da4d54/requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6", size = 64928 }, +] + +[[package]] +name = "rich" +version = "14.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markdown-it-py" }, + { name = "pygments" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a1/53/830aa4c3066a8ab0ae9a9955976fb770fe9c6102117c8ec4ab3ea62d89e8/rich-14.0.0.tar.gz", hash = "sha256:82f1bc23a6a21ebca4ae0c45af9bdbc492ed20231dcb63f297d6d1021a9d5725", size = 224078 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0d/9b/63f4c7ebc259242c89b3acafdb37b41d1185c07ff0011164674e9076b491/rich-14.0.0-py3-none-any.whl", hash = "sha256:1c9491e1951aac09caffd42f448ee3d04e58923ffe14993f6e83068dc395d7e0", size = 243229 }, +] + +[[package]] +name = "rpds-py" +version = "0.25.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/96/d2/7bed8453e53f6c9dea7ff4c19ee980fd87be607b2caf023d62c6579e6c30/rpds_py-0.25.0.tar.gz", hash = "sha256:4d97661bf5848dd9e5eb7ded480deccf9d32ce2cd500b88a26acbf7bd2864985", size = 26822 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0d/d9/6534d5a9d00038261894551ee8043267f17c019e6c0df3c7d822fb5914f1/rpds_py-0.25.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:4e5fe366fa53bd6777cf5440245366705338587b2cf8d61348ddaad744eb591a", size = 364375 }, + { url = "https://files.pythonhosted.org/packages/af/9d/f90c079635017cc50350cbbbf2c4fea7b2a75a24bea92211da1b0c52d55f/rpds_py-0.25.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:54f925ff8d4443b7cae23a5215954abbf4736a3404188bde53c4d744ac001d89", size = 350284 }, + { url = "https://files.pythonhosted.org/packages/f9/04/b54c5b3abdccf03ca3ec3317bd68caaa7907a61fea063096ee08d128b6ed/rpds_py-0.25.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d58258a66255b2500ddaa4f33191ada5ec983a429c09eb151daf81efbb9aa115", size = 392107 }, + { url = "https://files.pythonhosted.org/packages/aa/99/001bc3ab81c1798ee4c7bba7950134258d899e566d6839b6696b47248f71/rpds_py-0.25.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8f3a57f08c558d0983a708bfe6d1265f47b5debff9b366b2f2091690fada055c", size = 398612 }, + { url = "https://files.pythonhosted.org/packages/00/e1/e22893e1043938811a50c857a5780e0a4e2da02dd10ac041ecca1044906a/rpds_py-0.25.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b7d60d42f1b9571341ad2322e748f7a60f9847546cd801a3a0eb72a1b54c6519", size = 452190 }, + { url = "https://files.pythonhosted.org/packages/fb/6c/7071e6d27e784ac33ab4ca048eb550b5fc4f381b29e9ba33254bc6e7eaf6/rpds_py-0.25.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a54b94b0e4de95aa92618906fb631779d9fde29b4bf659f482c354a3a79fd025", size = 440634 }, + { url = "https://files.pythonhosted.org/packages/57/17/7343ea3ec906ee8c2b64a956d702de5067e0058b5d2869fbfb4b11625112/rpds_py-0.25.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af1c2241919304cc2f90e7dcb3eb1c1df6fb4172dd338e629dd6410e48b3d1a0", size = 391000 }, + { url = "https://files.pythonhosted.org/packages/2b/ad/9b3c3e950108073448834f0548077e598588efa413ba8dcc91e7ad6ff59d/rpds_py-0.25.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:7d34547810bfd61acf8a441e8a3651e7a919e8e8aed29850be14a1b05cfc6f41", size = 424621 }, + { url = "https://files.pythonhosted.org/packages/57/06/bd99ca30a6e539c18c6175501c1dd7f9ef0640f7b1dc0b14b094785b509a/rpds_py-0.25.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:66568caacf18542f0cf213db7adf3de2da6ad58c7bf2c4fafec0d81ae557443b", size = 569529 }, + { url = "https://files.pythonhosted.org/packages/c5/79/93381a25668466502adc082d3ce2a9ff35f8116e5e2711cedda0bfcfd699/rpds_py-0.25.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:e49e4c3e899c32884d7828c91d6c3aff08d2f18857f50f86cc91187c31a4ca58", size = 594638 }, + { url = "https://files.pythonhosted.org/packages/91/ee/371ecc045d65af518e2210ad018892b1f7a7a21cd64661156b4d29dfd839/rpds_py-0.25.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:20af08b0b2d5b196a2bcb70becf0b97ec5af579cee0ae6750b08a2eea3b6c77d", size = 561413 }, + { url = "https://files.pythonhosted.org/packages/34/c4/85e9853312b7e5de3c98f100280fbfd903e63936f49f6f11e4cd4eb53299/rpds_py-0.25.0-cp313-cp313-win32.whl", hash = "sha256:d3dc8d6ce8f001c80919bdb49d8b0b815185933a0b8e9cdeaea42b0b6f27eeb0", size = 222326 }, + { url = "https://files.pythonhosted.org/packages/65/c6/ac744cc5752b6f291b2cf13e19cd7ea3cafe68922239a3b95f05f39287b7/rpds_py-0.25.0-cp313-cp313-win_amd64.whl", hash = "sha256:113d134dc5a8d2503630ca2707b58a1bf5b1b3c69b35c7dab8690ee650c111b8", size = 234772 }, + { url = "https://files.pythonhosted.org/packages/4b/aa/dabab50a2fb321a12ffe4668087e5d0f9b06286ccb260d345bf01c79b07c/rpds_py-0.25.0-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:6c72a4a8fab10bc96720ad40941bb471e3b1150fb8d62dab205d495511206cf1", size = 359693 }, + { url = "https://files.pythonhosted.org/packages/11/3d/acda0095fe54ee6c553d222fb3d275506f8db4198b6a72a69eef826d63c1/rpds_py-0.25.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:bb979162323f3534dce84b59f86e689a0761a2a300e0212bfaedfa80d4eb8100", size = 345911 }, + { url = "https://files.pythonhosted.org/packages/db/f3/fba9b387077f9b305fce27fe22bdb731b75bfe208ae005fd09a127eced05/rpds_py-0.25.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:35c8cb5dcf7d36d3adf2ae0730b60fb550a8feb6e432bee7ef84162a0d15714b", size = 387669 }, + { url = "https://files.pythonhosted.org/packages/a2/a7/b8dbcdc9a8f1e96b5abc58bdfc22f2845178279694a9294fe4feb66ae330/rpds_py-0.25.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:673ba018df5ae5e7b6c9a021d51ffe39c0ae1daa0041611ed27a0bca634b2d2e", size = 392202 }, + { url = "https://files.pythonhosted.org/packages/60/60/2d46ad24207114cdb341490387d5a77c845827ac03f2a37182a19d072738/rpds_py-0.25.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:16fb28d3a653f67c871a47c5ca0be17bce9fab8adb8bcf7bd09f3771b8c4d860", size = 450080 }, + { url = "https://files.pythonhosted.org/packages/85/ae/b1966ca161942f2edf0b2c4fb448b88c19bdb37e982d0907c4b484eb0bbc/rpds_py-0.25.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:12a84c3851f9e68633d883c01347db3cb87e6160120a489f9c47162cd276b0a5", size = 438189 }, + { url = "https://files.pythonhosted.org/packages/a8/b0/0a8bff40865e27fc8cd7bdf667958981794ccf5e7989890ae96c89112920/rpds_py-0.25.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6b5f457afffb45d3804728a54083e31fbaf460e902e3f7d063e56d0d0814301e", size = 387925 }, + { url = "https://files.pythonhosted.org/packages/a5/5d/62abbc77e18f9e67556ead54c84a7c662f39236b7a41cf1a39a24bf5e79f/rpds_py-0.25.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9442cbff21122e9a529b942811007d65eabe4182e7342d102caf119b229322c6", size = 417682 }, + { url = "https://files.pythonhosted.org/packages/5d/eb/2f65e4332e3566d06c5ccad64441b1eaaf58a6c5999d533720f1f47d3118/rpds_py-0.25.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:383cf0d4288baf5a16812ed70d54ecb7f2064e255eb7fe42c38e926adeae4534", size = 565244 }, + { url = "https://files.pythonhosted.org/packages/02/3a/ae5f68ab4879d6fbe3abec3139eab1664c3372d8b42864ab940a4940a61c/rpds_py-0.25.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:0dcdee07ebf76223092666c72a9552db276fbe46b98830ecd1bb836cc98adc81", size = 590459 }, + { url = "https://files.pythonhosted.org/packages/c3/f6/ada6c3d9b803a9eb7bc9c8b3f3cebf7d779bbbb056cd7e3fc150e4c74c00/rpds_py-0.25.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:5bbfbd9c74c4dd74815bd532bf29bedea6d27d38f35ef46f9754172a14e4c655", size = 558335 }, + { url = "https://files.pythonhosted.org/packages/68/9a/7d269e8f1bfe3143e699334ca0b578e16b37e6505bf10dca8c02aa8addc8/rpds_py-0.25.0-cp313-cp313t-win32.whl", hash = "sha256:90dbd2c42cb6463c07020695800ae8f347e7dbeff09da2975a988e467b624539", size = 218761 }, + { url = "https://files.pythonhosted.org/packages/16/16/f5843b19b7bfd16d63b960cf4c646953010886cc62dd41b00854d77b0eed/rpds_py-0.25.0-cp313-cp313t-win_amd64.whl", hash = "sha256:8c2ad59c4342a176cb3e0d5753e1c911eabc95c210fc6d0e913c32bf560bf012", size = 232634 }, +] + +[[package]] +name = "s3transfer" +version = "0.12.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "botocore" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/fc/9e/73b14aed38ee1f62cd30ab93cd0072dec7fb01f3033d116875ae3e7b8b44/s3transfer-0.12.0.tar.gz", hash = "sha256:8ac58bc1989a3fdb7c7f3ee0918a66b160d038a147c7b5db1500930a607e9a1c", size = 149178 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/89/64/d2b49620039b82688aeebd510bd62ff4cdcdb86cbf650cc72ae42c5254a3/s3transfer-0.12.0-py3-none-any.whl", hash = "sha256:35b314d7d82865756edab59f7baebc6b477189e6ab4c53050e28c1de4d9cce18", size = 84773 }, +] + +[[package]] +name = "safetensors" +version = "0.5.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/71/7e/2d5d6ee7b40c0682315367ec7475693d110f512922d582fef1bd4a63adc3/safetensors-0.5.3.tar.gz", hash = "sha256:b6b0d6ecacec39a4fdd99cc19f4576f5219ce858e6fd8dbe7609df0b8dc56965", size = 67210 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/18/ae/88f6c49dbd0cc4da0e08610019a3c78a7d390879a919411a410a1876d03a/safetensors-0.5.3-cp38-abi3-macosx_10_12_x86_64.whl", hash = "sha256:bd20eb133db8ed15b40110b7c00c6df51655a2998132193de2f75f72d99c7073", size = 436917 }, + { url = "https://files.pythonhosted.org/packages/b8/3b/11f1b4a2f5d2ab7da34ecc062b0bc301f2be024d110a6466726bec8c055c/safetensors-0.5.3-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:21d01c14ff6c415c485616b8b0bf961c46b3b343ca59110d38d744e577f9cce7", size = 418419 }, + { url = "https://files.pythonhosted.org/packages/5d/9a/add3e6fef267658075c5a41573c26d42d80c935cdc992384dfae435feaef/safetensors-0.5.3-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:11bce6164887cd491ca75c2326a113ba934be596e22b28b1742ce27b1d076467", size = 459493 }, + { url = "https://files.pythonhosted.org/packages/df/5c/bf2cae92222513cc23b3ff85c4a1bb2811a2c3583ac0f8e8d502751de934/safetensors-0.5.3-cp38-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4a243be3590bc3301c821da7a18d87224ef35cbd3e5f5727e4e0728b8172411e", size = 472400 }, + { url = "https://files.pythonhosted.org/packages/58/11/7456afb740bd45782d0f4c8e8e1bb9e572f1bf82899fb6ace58af47b4282/safetensors-0.5.3-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8bd84b12b1670a6f8e50f01e28156422a2bc07fb16fc4e98bded13039d688a0d", size = 522891 }, + { url = "https://files.pythonhosted.org/packages/57/3d/fe73a9d2ace487e7285f6e157afee2383bd1ddb911b7cb44a55cf812eae3/safetensors-0.5.3-cp38-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:391ac8cab7c829452175f871fcaf414aa1e292b5448bd02620f675a7f3e7abb9", size = 537694 }, + { url = "https://files.pythonhosted.org/packages/a6/f8/dae3421624fcc87a89d42e1898a798bc7ff72c61f38973a65d60df8f124c/safetensors-0.5.3-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cead1fa41fc54b1e61089fa57452e8834f798cb1dc7a09ba3524f1eb08e0317a", size = 471642 }, + { url = "https://files.pythonhosted.org/packages/ce/20/1fbe16f9b815f6c5a672f5b760951e20e17e43f67f231428f871909a37f6/safetensors-0.5.3-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1077f3e94182d72618357b04b5ced540ceb71c8a813d3319f1aba448e68a770d", size = 502241 }, + { url = "https://files.pythonhosted.org/packages/5f/18/8e108846b506487aa4629fe4116b27db65c3dde922de2c8e0cc1133f3f29/safetensors-0.5.3-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:799021e78287bac619c7b3f3606730a22da4cda27759ddf55d37c8db7511c74b", size = 638001 }, + { url = "https://files.pythonhosted.org/packages/82/5a/c116111d8291af6c8c8a8b40628fe833b9db97d8141c2a82359d14d9e078/safetensors-0.5.3-cp38-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:df26da01aaac504334644e1b7642fa000bfec820e7cef83aeac4e355e03195ff", size = 734013 }, + { url = "https://files.pythonhosted.org/packages/7d/ff/41fcc4d3b7de837963622e8610d998710705bbde9a8a17221d85e5d0baad/safetensors-0.5.3-cp38-abi3-musllinux_1_2_i686.whl", hash = "sha256:32c3ef2d7af8b9f52ff685ed0bc43913cdcde135089ae322ee576de93eae5135", size = 670687 }, + { url = "https://files.pythonhosted.org/packages/40/ad/2b113098e69c985a3d8fbda4b902778eae4a35b7d5188859b4a63d30c161/safetensors-0.5.3-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:37f1521be045e56fc2b54c606d4455573e717b2d887c579ee1dbba5f868ece04", size = 643147 }, + { url = "https://files.pythonhosted.org/packages/0a/0c/95aeb51d4246bd9a3242d3d8349c1112b4ee7611a4b40f0c5c93b05f001d/safetensors-0.5.3-cp38-abi3-win32.whl", hash = "sha256:cfc0ec0846dcf6763b0ed3d1846ff36008c6e7290683b61616c4b040f6a54ace", size = 296677 }, + { url = "https://files.pythonhosted.org/packages/69/e2/b011c38e5394c4c18fb5500778a55ec43ad6106126e74723ffaee246f56e/safetensors-0.5.3-cp38-abi3-win_amd64.whl", hash = "sha256:836cbbc320b47e80acd40e44c8682db0e8ad7123209f69b093def21ec7cafd11", size = 308878 }, +] + +[[package]] +name = "sagemaker" +version = "2.244.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "boto3" }, + { name = "cloudpickle" }, + { name = "docker" }, + { name = "fastapi" }, + { name = "google-pasta" }, + { name = "graphene" }, + { name = "importlib-metadata" }, + { name = "jsonschema" }, + { name = "numpy" }, + { name = "omegaconf" }, + { name = "packaging" }, + { name = "pandas" }, + { name = "pathos" }, + { name = "platformdirs" }, + { name = "protobuf" }, + { name = "psutil" }, + { name = "pyyaml" }, + { name = "requests" }, + { name = "sagemaker-core" }, + { name = "schema" }, + { name = "smdebug-rulesconfig" }, + { name = "tblib" }, + { name = "tqdm" }, + { name = "urllib3" }, + { name = "uvicorn" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/0d/64/5bf09f7366674e4d3db3981f2c0b27199215452d1800e8f8cf9ae6cc9ff2/sagemaker-2.244.2.tar.gz", hash = "sha256:cc5e6ca6c1eb08938cb8276d03857cd2d8e32bedad8e38ad45059f0af5808845", size = 1203691 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/df/5e/4a152aa1d002c0ecf5258b81d9bdc9a87db98e7e119ae402b66246976301/sagemaker-2.244.2-py3-none-any.whl", hash = "sha256:78a90a5eb0289c1f211763bba1ffcb42a66070761e7c486054f46019fdc54ca2", size = 1657575 }, +] + +[[package]] +name = "sagemaker-core" +version = "1.0.34" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "boto3" }, + { name = "importlib-metadata" }, + { name = "jsonschema" }, + { name = "mock" }, + { name = "platformdirs" }, + { name = "pydantic" }, + { name = "pyyaml" }, + { name = "rich" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f4/e9/f3e0d489873c005d827f4a33df623954d29528e4fb8b7fa5e3f868f7eab9/sagemaker_core-1.0.34.tar.gz", hash = "sha256:1693f2a080529538d62bb8dcf75f1745955296d10ee25d55328fdcb6decfafca", size = 397086 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/70/5d/38a1b2b2974597ceb67e663ce7892216b361b0f491788ce2ddee32dfa0a8/sagemaker_core-1.0.34-py3-none-any.whl", hash = "sha256:3618f022ff8b4da76982623d1ffcb9a311d586a7d692f5660ff14e155819c19f", size = 411755 }, +] + +[[package]] +name = "schema" +version = "0.7.7" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d4/01/0ea2e66bad2f13271e93b729c653747614784d3ebde219679e41ccdceecd/schema-0.7.7.tar.gz", hash = "sha256:7da553abd2958a19dc2547c388cde53398b39196175a9be59ea1caf5ab0a1807", size = 44245 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ad/1b/81855a88c6db2b114d5b2e9f96339190d5ee4d1b981d217fa32127bb00e0/schema-0.7.7-py2.py3-none-any.whl", hash = "sha256:5d976a5b50f36e74e2157b47097b60002bd4d42e65425fcc9c9befadb4255dde", size = 18632 }, +] + +[[package]] +name = "six" +version = "1.17.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81", size = 34031 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050 }, +] + +[[package]] +name = "smdebug-rulesconfig" +version = "1.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/cc/7d/8ad6a2098e03c1f811d1277a2cedb81265828f144f6d323b83a2392e8bb9/smdebug_rulesconfig-1.0.1.tar.gz", hash = "sha256:7a19e6eb2e6bcfefbc07e4a86ef7a88f32495001a038bf28c7d8e77ab793fcd6", size = 12060 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/26/a1/45a13a05198bbe9527bab2c5e5daa8bd02678aa825eec14783e767bfa7d1/smdebug_rulesconfig-1.0.1-py2.py3-none-any.whl", hash = "sha256:104da3e6931ecf879dfc687ca4bbb3bee5ea2bc27f4478e9dbb3ee3655f1ae61", size = 20282 }, +] + [[package]] name = "sniffio" version = "1.3.1" @@ -122,6 +843,73 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/8b/0c/9d30a4ebeb6db2b25a841afbb80f6ef9a854fc3b41be131d249a977b4959/starlette-0.46.2-py3-none-any.whl", hash = "sha256:595633ce89f8ffa71a015caed34a5b2dc1c0cdb3f0f1fbd1e69339cf2abeec35", size = 72037 }, ] +[[package]] +name = "tblib" +version = "3.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/54/95/4b3044ec4bf248186769629bbfb495a458deb6e4c1f9eff7f298ae1e336e/tblib-3.1.0.tar.gz", hash = "sha256:06404c2c9f07f66fee2d7d6ad43accc46f9c3361714d9b8426e7f47e595cd652", size = 30766 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/27/44/aa5c8b10b2cce7a053018e0d132bd58e27527a0243c4985383d5b6fd93e9/tblib-3.1.0-py3-none-any.whl", hash = "sha256:670bb4582578134b3d81a84afa1b016128b429f3d48e6cbbaecc9d15675e984e", size = 12552 }, +] + +[[package]] +name = "tokenizers" +version = "0.21.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "huggingface-hub" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/92/76/5ac0c97f1117b91b7eb7323dcd61af80d72f790b4df71249a7850c195f30/tokenizers-0.21.1.tar.gz", hash = "sha256:a1bb04dc5b448985f86ecd4b05407f5a8d97cb2c0532199b2a302a604a0165ab", size = 343256 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a5/1f/328aee25f9115bf04262e8b4e5a2050b7b7cf44b59c74e982db7270c7f30/tokenizers-0.21.1-cp39-abi3-macosx_10_12_x86_64.whl", hash = "sha256:e78e413e9e668ad790a29456e677d9d3aa50a9ad311a40905d6861ba7692cf41", size = 2780767 }, + { url = "https://files.pythonhosted.org/packages/ae/1a/4526797f3719b0287853f12c5ad563a9be09d446c44ac784cdd7c50f76ab/tokenizers-0.21.1-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:cd51cd0a91ecc801633829fcd1fda9cf8682ed3477c6243b9a095539de4aecf3", size = 2650555 }, + { url = "https://files.pythonhosted.org/packages/4d/7a/a209b29f971a9fdc1da86f917fe4524564924db50d13f0724feed37b2a4d/tokenizers-0.21.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:28da6b72d4fb14ee200a1bd386ff74ade8992d7f725f2bde2c495a9a98cf4d9f", size = 2937541 }, + { url = "https://files.pythonhosted.org/packages/3c/1e/b788b50ffc6191e0b1fc2b0d49df8cff16fe415302e5ceb89f619d12c5bc/tokenizers-0.21.1-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:34d8cfde551c9916cb92014e040806122295a6800914bab5865deb85623931cf", size = 2819058 }, + { url = "https://files.pythonhosted.org/packages/36/aa/3626dfa09a0ecc5b57a8c58eeaeb7dd7ca9a37ad9dd681edab5acd55764c/tokenizers-0.21.1-cp39-abi3-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aaa852d23e125b73d283c98f007e06d4595732104b65402f46e8ef24b588d9f8", size = 3133278 }, + { url = "https://files.pythonhosted.org/packages/a4/4d/8fbc203838b3d26269f944a89459d94c858f5b3f9a9b6ee9728cdcf69161/tokenizers-0.21.1-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a21a15d5c8e603331b8a59548bbe113564136dc0f5ad8306dd5033459a226da0", size = 3144253 }, + { url = "https://files.pythonhosted.org/packages/d8/1b/2bd062adeb7c7511b847b32e356024980c0ffcf35f28947792c2d8ad2288/tokenizers-0.21.1-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2fdbd4c067c60a0ac7eca14b6bd18a5bebace54eb757c706b47ea93204f7a37c", size = 3398225 }, + { url = "https://files.pythonhosted.org/packages/8a/63/38be071b0c8e06840bc6046991636bcb30c27f6bb1e670f4f4bc87cf49cc/tokenizers-0.21.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2dd9a0061e403546f7377df940e866c3e678d7d4e9643d0461ea442b4f89e61a", size = 3038874 }, + { url = "https://files.pythonhosted.org/packages/ec/83/afa94193c09246417c23a3c75a8a0a96bf44ab5630a3015538d0c316dd4b/tokenizers-0.21.1-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:db9484aeb2e200c43b915a1a0150ea885e35f357a5a8fabf7373af333dcc8dbf", size = 9014448 }, + { url = "https://files.pythonhosted.org/packages/ae/b3/0e1a37d4f84c0f014d43701c11eb8072704f6efe8d8fc2dcdb79c47d76de/tokenizers-0.21.1-cp39-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:ed248ab5279e601a30a4d67bdb897ecbe955a50f1e7bb62bd99f07dd11c2f5b6", size = 8937877 }, + { url = "https://files.pythonhosted.org/packages/ac/33/ff08f50e6d615eb180a4a328c65907feb6ded0b8f990ec923969759dc379/tokenizers-0.21.1-cp39-abi3-musllinux_1_2_i686.whl", hash = "sha256:9ac78b12e541d4ce67b4dfd970e44c060a2147b9b2a21f509566d556a509c67d", size = 9186645 }, + { url = "https://files.pythonhosted.org/packages/5f/aa/8ae85f69a9f6012c6f8011c6f4aa1c96154c816e9eea2e1b758601157833/tokenizers-0.21.1-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:e5a69c1a4496b81a5ee5d2c1f3f7fbdf95e90a0196101b0ee89ed9956b8a168f", size = 9384380 }, + { url = "https://files.pythonhosted.org/packages/e8/5b/a5d98c89f747455e8b7a9504910c865d5e51da55e825a7ae641fb5ff0a58/tokenizers-0.21.1-cp39-abi3-win32.whl", hash = "sha256:1039a3a5734944e09de1d48761ade94e00d0fa760c0e0551151d4dd851ba63e3", size = 2239506 }, + { url = "https://files.pythonhosted.org/packages/e6/b6/072a8e053ae600dcc2ac0da81a23548e3b523301a442a6ca900e92ac35be/tokenizers-0.21.1-cp39-abi3-win_amd64.whl", hash = "sha256:0f0dcbcc9f6e13e675a66d7a5f2f225a736745ce484c1a4e07476a89ccdad382", size = 2435481 }, +] + +[[package]] +name = "tqdm" +version = "4.67.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a8/4b/29b4ef32e036bb34e4ab51796dd745cdba7ed47ad142a9f4a1eb8e0c744d/tqdm-4.67.1.tar.gz", hash = "sha256:f8aef9c52c08c13a65f30ea34f4e5aac3fd1a34959879d7e59e63027286627f2", size = 169737 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d0/30/dc54f88dd4a2b5dc8a0279bdd7270e735851848b762aeb1c1184ed1f6b14/tqdm-4.67.1-py3-none-any.whl", hash = "sha256:26445eca388f82e72884e0d580d5464cd801a3ea01e63e5601bdff9ba6a48de2", size = 78540 }, +] + +[[package]] +name = "transformers" +version = "4.52.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "filelock" }, + { name = "huggingface-hub" }, + { name = "numpy" }, + { name = "packaging" }, + { name = "pyyaml" }, + { name = "regex" }, + { name = "requests" }, + { name = "safetensors" }, + { name = "tokenizers" }, + { name = "tqdm" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ad/31/779c82f55eee0b66164259a78c5bbf29badacb5f4651b35dfb51c843e6cd/transformers-4.52.2.tar.gz", hash = "sha256:fc86139b95ae273d98dae9dee54693296f2c4f3b1a1325cc3c2d1e65fb503c12", size = 8955077 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7d/0d/f6b21bcb1d1c16c477983cbedcc34dda5727ec14a02dc1b84930f1ecd97d/transformers-4.52.2-py3-none-any.whl", hash = "sha256:d419a87a185097fc162a61f01287b54d5445a9940345ecc5fd06fb74565bd234", size = 10460206 }, +] + [[package]] name = "typing-extensions" version = "4.13.2" @@ -142,3 +930,43 @@ sdist = { url = "https://files.pythonhosted.org/packages/82/5c/e6082df02e215b846 wheels = [ { url = "https://files.pythonhosted.org/packages/31/08/aa4fdfb71f7de5176385bd9e90852eaf6b5d622735020ad600f2bab54385/typing_inspection-0.4.0-py3-none-any.whl", hash = "sha256:50e72559fcd2a6367a19f7a7e610e6afcb9fac940c650290eed893d61386832f", size = 14125 }, ] + +[[package]] +name = "tzdata" +version = "2025.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/95/32/1a225d6164441be760d75c2c42e2780dc0873fe382da3e98a2e1e48361e5/tzdata-2025.2.tar.gz", hash = "sha256:b60a638fcc0daffadf82fe0f57e53d06bdec2f36c4df66280ae79bce6bd6f2b9", size = 196380 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5c/23/c7abc0ca0a1526a0774eca151daeb8de62ec457e77262b66b359c3c7679e/tzdata-2025.2-py2.py3-none-any.whl", hash = "sha256:1a403fada01ff9221ca8044d701868fa132215d84beb92242d9acd2147f667a8", size = 347839 }, +] + +[[package]] +name = "urllib3" +version = "2.4.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/8a/78/16493d9c386d8e60e442a35feac5e00f0913c0f4b7c217c11e8ec2ff53e0/urllib3-2.4.0.tar.gz", hash = "sha256:414bc6535b787febd7567804cc015fee39daab8ad86268f1310a9250697de466", size = 390672 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6b/11/cc635220681e93a0183390e26485430ca2c7b5f9d33b15c74c2861cb8091/urllib3-2.4.0-py3-none-any.whl", hash = "sha256:4e16665048960a0900c702d4a66415956a584919c03361cac9f1df5c5dd7e813", size = 128680 }, +] + +[[package]] +name = "uvicorn" +version = "0.34.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, + { name = "h11" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a6/ae/9bbb19b9e1c450cf9ecaef06463e40234d98d95bf572fab11b4f19ae5ded/uvicorn-0.34.2.tar.gz", hash = "sha256:0e929828f6186353a80b58ea719861d2629d766293b6d19baf086ba31d4f3328", size = 76815 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b1/4b/4cef6ce21a2aaca9d852a6e84ef4f135d99fcd74fa75105e2fc0c8308acd/uvicorn-0.34.2-py3-none-any.whl", hash = "sha256:deb49af569084536d269fe0a6d67e3754f104cf03aba7c11c40f01aadf33c403", size = 62483 }, +] + +[[package]] +name = "zipp" +version = "3.21.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/3f/50/bad581df71744867e9468ebd0bcd6505de3b275e06f202c2cb016e3ff56f/zipp-3.21.0.tar.gz", hash = "sha256:2c9958f6430a2040341a52eb608ed6dd93ef4392e02ffe219417c1b28b5dd1f4", size = 24545 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/1a/7e4798e9339adc931158c9d69ecc34f5e6791489d469f5e50ec15e35f458/zipp-3.21.0-py3-none-any.whl", hash = "sha256:ac1bbe05fd2991f160ebce24ffbac5f6d11d83dc90891255885223d42b3cd931", size = 9630 }, +] diff --git a/front_end/.env.example b/front_end/.env.example deleted file mode 100644 index 3c0bf0d..0000000 --- a/front_end/.env.example +++ /dev/null @@ -1,17 +0,0 @@ -# Since the ".env" file is gitignored, you can use the ".env.example" file to -# build a new ".env" file when you clone the repo. Keep this file up-to-date -# when you add new variables to `.env`. - -# This file will be committed to version control, so make sure not to have any -# secrets in it. If you are cloning this repo, create a copy of this file named -# ".env" and populate it with your secrets. - -# When adding additional environment variables, the schema in "/src/env.js" -# should be updated accordingly. - -# Drizzle -DATABASE_URL="postgresql://postgres:password@localhost:5432/front_end" - -# Example: -# SERVERVAR="foo" -# NEXT_PUBLIC_CLIENTVAR="bar" diff --git a/front_end/.gitignore b/front_end/.gitignore index 8cbfb3a..c066c42 100644 --- a/front_end/.gitignore +++ b/front_end/.gitignore @@ -35,6 +35,7 @@ yarn-error.log* # do not commit any .env files to git, except for the .env.example file. https://create.t3.gg/en/usage/env-variables#using-environment-variables .env .env*.local +.env.sentry-build-plugin # vercel .vercel diff --git a/front_end/.jukit/.jukit_info.json b/front_end/.jukit/.jukit_info.json new file mode 100644 index 0000000..92c7342 --- /dev/null +++ b/front_end/.jukit/.jukit_info.json @@ -0,0 +1 @@ +{"terminal": "nvimterm"} \ No newline at end of file diff --git a/front_end/package.json b/front_end/package.json index c39769d..b051e3a 100644 --- a/front_end/package.json +++ b/front_end/package.json @@ -23,7 +23,11 @@ "@radix-ui/react-checkbox": "^1.3.1", "@radix-ui/react-label": "^2.1.6", "@radix-ui/react-scroll-area": "^1.2.8", + "@radix-ui/react-slider": "^1.3.5", "@radix-ui/react-slot": "^1.2.2", + "@radix-ui/react-switch": "^1.2.5", + "@radix-ui/react-tooltip": "^1.2.7", + "@react-email/components": "^0.0.41", "@sentry/nextjs": "^9.19.0", "@t3-oss/env-nextjs": "^0.12.0", "@tanstack/react-query": "^5.76.1", @@ -32,6 +36,8 @@ "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "drizzle-orm": "^0.41.0", + "import-in-the-middle": "^1.13.2", + "jotai": "^2.12.4", "lucide-react": "^0.510.0", "motion": "^12.12.1", "next": "^15.2.3", @@ -41,6 +47,8 @@ "posthog-node": "^4.17.1", "react": "^19.0.0", "react-dom": "^19.0.0", + "require-in-the-middle": "^7.5.2", + "resend": "^4.5.1", "sonner": "^2.0.3", "tailwind-merge": "^3.3.0", "zod": "^3.24.2" @@ -66,5 +74,16 @@ "ct3aMetadata": { "initVersion": "7.39.3" }, - "packageManager": "pnpm@10.4.1" + "packageManager": "pnpm@10.4.1", + "pnpm": { + "onlyBuiltDependencies": [ + "@sentry/cli", + "@tailwindcss/oxide", + "bufferutil", + "core-js", + "esbuild", + "sharp", + "unrs-resolver" + ] + } } diff --git a/front_end/pnpm-lock.yaml b/front_end/pnpm-lock.yaml index f9a4f02..f54b7f7 100644 --- a/front_end/pnpm-lock.yaml +++ b/front_end/pnpm-lock.yaml @@ -17,9 +17,21 @@ importers: '@radix-ui/react-scroll-area': specifier: ^1.2.8 version: 1.2.8(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slider': + specifier: ^1.3.5 + version: 1.3.5(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-slot': specifier: ^1.2.2 version: 1.2.2(@types/react@19.1.4)(react@19.1.0) + '@radix-ui/react-switch': + specifier: ^1.2.5 + version: 1.2.5(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-tooltip': + specifier: ^1.2.7 + version: 1.2.7(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-email/components': + specifier: ^0.0.41 + version: 0.0.41(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@sentry/nextjs': specifier: ^9.19.0 version: 9.19.0(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(next@15.3.2(@babel/core@7.27.1)(@opentelemetry/api@1.9.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0)(webpack@5.99.8(esbuild@0.19.12)) @@ -44,6 +56,12 @@ importers: drizzle-orm: specifier: ^0.41.0 version: 0.41.0(@opentelemetry/api@1.9.0)(@types/pg@8.11.6)(@vercel/postgres@0.10.0)(gel@2.1.0)(kysely@0.28.2)(postgres@3.4.5) + import-in-the-middle: + specifier: ^1.13.2 + version: 1.13.2 + jotai: + specifier: ^2.12.4 + version: 2.12.4(@types/react@19.1.4)(react@19.1.0) lucide-react: specifier: ^0.510.0 version: 0.510.0(react@19.1.0) @@ -71,6 +89,12 @@ importers: react-dom: specifier: ^19.0.0 version: 19.1.0(react@19.1.0) + require-in-the-middle: + specifier: ^7.5.2 + version: 7.5.2 + resend: + specifier: ^4.5.1 + version: 4.5.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) sonner: specifier: ^2.0.3 version: 2.0.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) @@ -543,6 +567,21 @@ packages: peerDependencies: '@opentelemetry/api': ^1.9.0 + '@floating-ui/core@1.7.0': + resolution: {integrity: sha512-FRdBLykrPPA6P76GGGqlex/e7fbe0F1ykgxHYNXQsH/iTEtjMj/f9bpY5oQqbjt5VgZvgz/uKXbGuROijh3VLA==} + + '@floating-ui/dom@1.7.0': + resolution: {integrity: sha512-lGTor4VlXcesUMh1cupTUTDoCxMb0V6bm3CnxHzQcw8Eaf1jQbgQX4i02fYgT0vJ82tb5MZ4CZk1LRGkktJCzg==} + + '@floating-ui/react-dom@2.1.2': + resolution: {integrity: sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + + '@floating-ui/utils@0.2.9': + resolution: {integrity: sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==} + '@hexagon/base64@1.1.28': resolution: {integrity: sha512-lhqDEAvWixy3bZ+UOYbPwUbBkwBq5C1LAJ/xPC8Oi+lL54oyakv/npbA0aU2hgCsx/1NUd4IBvV03+aUBWxerw==} @@ -1008,6 +1047,19 @@ packages: '@radix-ui/primitive@1.1.2': resolution: {integrity: sha512-XnbHrrprsNqZKQhStrSwgRUQzoCI1glLzdw79xiZPoofhGICeZRSQ3dIxAKH1gb3OHfNf4d6f+vAv3kil2eggA==} + '@radix-ui/react-arrow@1.1.7': + resolution: {integrity: sha512-F+M1tLhO+mlQaOWspE8Wstg+z6PwxwRd8oQ8IXceWz92kfAmalTRf0EjrouQeo7QssEPfCn05B4Ihs1K9WQ/7w==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-checkbox@1.3.1': resolution: {integrity: sha512-xTaLKAO+XXMPK/BpVTSaAAhlefmvMSACjIhK9mGsImvX2ljcTDm8VGR1CuS1uYcNdR5J+oiOhoJZc5un6bh3VQ==} peerDependencies: @@ -1021,6 +1073,19 @@ packages: '@types/react-dom': optional: true + '@radix-ui/react-collection@1.1.7': + resolution: {integrity: sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-compose-refs@1.1.2': resolution: {integrity: sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==} peerDependencies: @@ -1048,6 +1113,28 @@ packages: '@types/react': optional: true + '@radix-ui/react-dismissable-layer@1.1.10': + resolution: {integrity: sha512-IM1zzRV4W3HtVgftdQiiOmA0AdJlCtMLe00FXaHwgt3rAnNsIyDqshvkIW3hj/iu5hu8ERP7KIYki6NkqDxAwQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-id@1.1.1': + resolution: {integrity: sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@radix-ui/react-label@2.1.6': resolution: {integrity: sha512-S/hv1mTlgcPX2gCTJrWuTjSXf7ER3Zf7zWGtOprxhIIY93Qin3n5VgNA0Ez9AgrK/lEtlYgzLd4f5x6AVar4Yw==} peerDependencies: @@ -1061,6 +1148,32 @@ packages: '@types/react-dom': optional: true + '@radix-ui/react-popper@1.2.7': + resolution: {integrity: sha512-IUFAccz1JyKcf/RjB552PlWwxjeCJB8/4KxT7EhBHOJM+mN7LdW+B3kacJXILm32xawcMMjb2i0cIZpo+f9kiQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-portal@1.1.9': + resolution: {integrity: sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-presence@1.1.4': resolution: {integrity: sha512-ueDqRbdc4/bkaQT3GIpLQssRlFgWaL/U2z/S31qRwwLWoxHLgry3SIfCwhxeQNbirEUXFa+lq3RL3oBYXtcmIA==} peerDependencies: @@ -1087,6 +1200,19 @@ packages: '@types/react-dom': optional: true + '@radix-ui/react-primitive@2.1.3': + resolution: {integrity: sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-scroll-area@1.2.8': resolution: {integrity: sha512-K5h1RkYA6M0Sn61BV5LQs686zqBsSC0sGzL4/Gw4mNnjzrQcGSc6YXfC6CRFNaGydSdv5+M8cb0eNsOGo0OXtQ==} peerDependencies: @@ -1100,6 +1226,19 @@ packages: '@types/react-dom': optional: true + '@radix-ui/react-slider@1.3.5': + resolution: {integrity: sha512-rkfe2pU2NBAYfGaxa3Mqosi7VZEWX5CxKaanRv0vZd4Zhl9fvQrg0VM93dv3xGLGfrHuoTRF3JXH8nb9g+B3fw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-slot@1.2.2': resolution: {integrity: sha512-y7TBO4xN4Y94FvcWIOIh18fM4R1A8S4q1jhoz4PNzOoHsFcN8pogcFmZrTYAm4F9VRUrWP/Mw7xSKybIeRI+CQ==} peerDependencies: @@ -1109,6 +1248,41 @@ packages: '@types/react': optional: true + '@radix-ui/react-slot@1.2.3': + resolution: {integrity: sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-switch@1.2.5': + resolution: {integrity: sha512-5ijLkak6ZMylXsaImpZ8u4Rlf5grRmoc0p0QeX9VJtlrM4f5m3nCTX8tWga/zOA8PZYIR/t0p2Mnvd7InrJ6yQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-tooltip@1.2.7': + resolution: {integrity: sha512-Ap+fNYwKTYJ9pzqW+Xe2HtMRbQ/EeWkj2qykZ6SuEV4iS/o1bZI5ssJbk4D2r8XuDuOBVz/tIx2JObtuqU+5Zw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-use-callback-ref@1.1.1': resolution: {integrity: sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==} peerDependencies: @@ -1136,6 +1310,15 @@ packages: '@types/react': optional: true + '@radix-ui/react-use-escape-keydown@1.1.1': + resolution: {integrity: sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@radix-ui/react-use-layout-effect@1.1.1': resolution: {integrity: sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==} peerDependencies: @@ -1154,6 +1337,15 @@ packages: '@types/react': optional: true + '@radix-ui/react-use-rect@1.1.1': + resolution: {integrity: sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@radix-ui/react-use-size@1.1.1': resolution: {integrity: sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==} peerDependencies: @@ -1163,6 +1355,154 @@ packages: '@types/react': optional: true + '@radix-ui/react-visually-hidden@1.2.3': + resolution: {integrity: sha512-pzJq12tEaaIhqjbzpCuv/OypJY/BPavOofm+dbab+MHLajy277+1lLm6JFcGgF5eskJ6mquGirhXY2GD/8u8Ug==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/rect@1.1.1': + resolution: {integrity: sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==} + + '@react-email/body@0.0.11': + resolution: {integrity: sha512-ZSD2SxVSgUjHGrB0Wi+4tu3MEpB4fYSbezsFNEJk2xCWDBkFiOeEsjTmR5dvi+CxTK691hQTQlHv0XWuP7ENTg==} + peerDependencies: + react: ^18.0 || ^19.0 || ^19.0.0-rc + + '@react-email/button@0.0.19': + resolution: {integrity: sha512-HYHrhyVGt7rdM/ls6FuuD6XE7fa7bjZTJqB2byn6/oGsfiEZaogY77OtoLL/mrQHjHjZiJadtAMSik9XLcm7+A==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.0 || ^19.0 || ^19.0.0-rc + + '@react-email/code-block@0.0.13': + resolution: {integrity: sha512-4DE4yPSgKEOnZMzcrDvRuD6mxsNxOex0hCYEG9F9q23geYgb2WCCeGBvIUXVzK69l703Dg4Vzrd5qUjl+JfcwA==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.0 || ^19.0 || ^19.0.0-rc + + '@react-email/code-inline@0.0.5': + resolution: {integrity: sha512-MmAsOzdJpzsnY2cZoPHFPk6uDO/Ncpb4Kh1hAt9UZc1xOW3fIzpe1Pi9y9p6wwUmpaeeDalJxAxH6/fnTquinA==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.0 || ^19.0 || ^19.0.0-rc + + '@react-email/column@0.0.13': + resolution: {integrity: sha512-Lqq17l7ShzJG/d3b1w/+lVO+gp2FM05ZUo/nW0rjxB8xBICXOVv6PqjDnn3FXKssvhO5qAV20lHM6S+spRhEwQ==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.0 || ^19.0 || ^19.0.0-rc + + '@react-email/components@0.0.41': + resolution: {integrity: sha512-WUI3wHwra3QS0pwrovSU6b0I0f3TvY33ph0y44LuhSYDSQlMRyeOzgoT6HRDY5FXMDF57cHYq9WoKwpwP0yd7Q==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.0 || ^19.0 || ^19.0.0-rc + + '@react-email/container@0.0.15': + resolution: {integrity: sha512-Qo2IQo0ru2kZq47REmHW3iXjAQaKu4tpeq/M8m1zHIVwKduL2vYOBQWbC2oDnMtWPmkBjej6XxgtZByxM6cCFg==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.0 || ^19.0 || ^19.0.0-rc + + '@react-email/font@0.0.9': + resolution: {integrity: sha512-4zjq23oT9APXkerqeslPH3OZWuh5X4crHK6nx82mVHV2SrLba8+8dPEnWbaACWTNjOCbcLIzaC9unk7Wq2MIXw==} + peerDependencies: + react: ^18.0 || ^19.0 || ^19.0.0-rc + + '@react-email/head@0.0.12': + resolution: {integrity: sha512-X2Ii6dDFMF+D4niNwMAHbTkeCjlYYnMsd7edXOsi0JByxt9wNyZ9EnhFiBoQdqkE+SMDcu8TlNNttMrf5sJeMA==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.0 || ^19.0 || ^19.0.0-rc + + '@react-email/heading@0.0.15': + resolution: {integrity: sha512-xF2GqsvBrp/HbRHWEfOgSfRFX+Q8I5KBEIG5+Lv3Vb2R/NYr0s8A5JhHHGf2pWBMJdbP4B2WHgj/VUrhy8dkIg==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.0 || ^19.0 || ^19.0.0-rc + + '@react-email/hr@0.0.11': + resolution: {integrity: sha512-S1gZHVhwOsd1Iad5IFhpfICwNPMGPJidG/Uysy1AwmspyoAP5a4Iw3OWEpINFdgh9MHladbxcLKO2AJO+cA9Lw==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.0 || ^19.0 || ^19.0.0-rc + + '@react-email/html@0.0.11': + resolution: {integrity: sha512-qJhbOQy5VW5qzU74AimjAR9FRFQfrMa7dn4gkEXKMB/S9xZN8e1yC1uA9C15jkXI/PzmJ0muDIWmFwatm5/+VA==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.0 || ^19.0 || ^19.0.0-rc + + '@react-email/img@0.0.11': + resolution: {integrity: sha512-aGc8Y6U5C3igoMaqAJKsCpkbm1XjguQ09Acd+YcTKwjnC2+0w3yGUJkjWB2vTx4tN8dCqQCXO8FmdJpMfOA9EQ==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.0 || ^19.0 || ^19.0.0-rc + + '@react-email/link@0.0.12': + resolution: {integrity: sha512-vF+xxQk2fGS1CN7UPQDbzvcBGfffr+GjTPNiWM38fhBfsLv6A/YUfaqxWlmL7zLzVmo0K2cvvV9wxlSyNba1aQ==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.0 || ^19.0 || ^19.0.0-rc + + '@react-email/markdown@0.0.15': + resolution: {integrity: sha512-UQA9pVm5sbflgtg3EX3FquUP4aMBzmLReLbGJ6DZQZnAskBF36aI56cRykDq1o+1jT+CKIK1CducPYziaXliag==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.0 || ^19.0 || ^19.0.0-rc + + '@react-email/preview@0.0.13': + resolution: {integrity: sha512-F7j9FJ0JN/A4d7yr+aw28p4uX7VLWs7hTHtLo7WRyw4G+Lit6Zucq4UWKRxJC8lpsUdzVmG7aBJnKOT+urqs/w==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.0 || ^19.0 || ^19.0.0-rc + + '@react-email/render@1.0.6': + resolution: {integrity: sha512-zNueW5Wn/4jNC1c5LFgXzbUdv5Lhms+FWjOvWAhal7gx5YVf0q6dPJ0dnR70+ifo59gcMLwCZEaTS9EEuUhKvQ==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^18.0 || ^19.0 || ^19.0.0-rc + + '@react-email/render@1.1.2': + resolution: {integrity: sha512-RnRehYN3v9gVlNMehHPHhyp2RQo7+pSkHDtXPvg3s0GbzM9SQMW4Qrf8GRNvtpLC4gsI+Wt0VatNRUFqjvevbw==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^18.0 || ^19.0 || ^19.0.0-rc + + '@react-email/row@0.0.12': + resolution: {integrity: sha512-HkCdnEjvK3o+n0y0tZKXYhIXUNPDx+2vq1dJTmqappVHXS5tXS6W5JOPZr5j+eoZ8gY3PShI2LWj5rWF7ZEtIQ==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.0 || ^19.0 || ^19.0.0-rc + + '@react-email/section@0.0.16': + resolution: {integrity: sha512-FjqF9xQ8FoeUZYKSdt8sMIKvoT9XF8BrzhT3xiFKdEMwYNbsDflcjfErJe3jb7Wj/es/lKTbV5QR1dnLzGpL3w==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.0 || ^19.0 || ^19.0.0-rc + + '@react-email/tailwind@1.0.5': + resolution: {integrity: sha512-BH00cZSeFfP9HiDASl+sPHi7Hh77W5nzDgdnxtsVr/m3uQD9g180UwxcE3PhOfx0vRdLzQUU8PtmvvDfbztKQg==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.0 || ^19.0 || ^19.0.0-rc + + '@react-email/text@0.1.4': + resolution: {integrity: sha512-cMNE02y8172DocpNGh97uV5HSTawaS4CKG/zOku8Pu+m6ehBKbAjgtQZDIxhgstw8+TWraFB8ltS1DPjfG8nLA==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.0 || ^19.0 || ^19.0.0-rc + '@rollup/plugin-commonjs@28.0.1': resolution: {integrity: sha512-+tNWdlWKbpB3WgBN7ijjYkq9X5uhjmcvyjEght4NmH5fAU++zfQzAJ6wumLS+dNcvwEZhKx2Z+skY8m7v0wGSA==} engines: {node: '>=16.0.0 || 14 >= 14.17'} @@ -1282,6 +1622,9 @@ packages: '@rushstack/eslint-patch@1.11.0': resolution: {integrity: sha512-zxnHvoMQVqewTJr/W4pKjF0bMGiKJv1WX7bSrkl46Hg0QjESbzBROWK0Wg4RphzSOS5Jiy7eFimmM3UgMrMZbQ==} + '@selderee/plugin-htmlparser2@0.11.0': + resolution: {integrity: sha512-P33hHGdldxGabLFjPPpaTxVolMrzrcegejx+0GxjrIb9Zv48D8yAIA/QTDR2dFl7Uz7urX8aX6+5bCZslr+gWQ==} + '@sentry-internal/browser-utils@9.19.0': resolution: {integrity: sha512-DlEHX4eIHe5yIuh/cFu9OiaFuk1CTnFK95zj61I7Q2fxmN43dIwC3xAAGJ/Hy+GDQi7kU+BiS2sudSHSTq81BA==} engines: {node: '>=18'} @@ -2086,6 +2429,10 @@ packages: deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + define-data-property@1.1.4: resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} @@ -2113,6 +2460,19 @@ packages: resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} engines: {node: '>=0.10.0'} + dom-serializer@2.0.0: + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + + domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + + domhandler@5.0.3: + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} + engines: {node: '>= 4'} + + domutils@3.2.2: + resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} + dotenv@16.5.0: resolution: {integrity: sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg==} engines: {node: '>=12'} @@ -2231,6 +2591,10 @@ packages: resolution: {integrity: sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==} engines: {node: '>=10.13.0'} + entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + env-paths@3.0.0: resolution: {integrity: sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -2454,6 +2818,9 @@ packages: resolution: {integrity: sha512-DT9ck5YIRU+8GYzzU5kT3eHGA5iL+1Zd0EutOmTE9Dtk+Tvuzd23VBU+ec7HPNSTxXYO55gPV/hq4pSBJDjFpA==} engines: {node: '>= 18'} + fast-deep-equal@2.0.1: + resolution: {integrity: sha512-bCK/2Z4zLidyB4ReuIsvALH6w31YfAQDmXMqMx6FyfHqvBxtjC0eRumeSu4Bs3XtXwpyIywtSTrVT99BxY1f9w==} + fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} @@ -2662,6 +3029,13 @@ packages: hoist-non-react-statics@3.3.2: resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} + html-to-text@9.0.5: + resolution: {integrity: sha512-qY60FjREgVZL03vJU6IfMV4GDjGBIoOyvuFdpBDIX9yTlDw0TjxVBQp+P8NvpdIXNJvfWBTNul7fsAQJq2FNpg==} + engines: {node: '>=14'} + + htmlparser2@8.0.2: + resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} + http-errors@2.0.0: resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} engines: {node: '>= 0.8'} @@ -2841,6 +3215,18 @@ packages: jose@5.10.0: resolution: {integrity: sha512-s+3Al/p9g32Iq+oqXxkW//7jk2Vig6FF1CFqzVXoTUXt2qz89YWbL+OwS17NFYEvxC35n0FKeGO2LGYSxeM2Gg==} + jotai@2.12.4: + resolution: {integrity: sha512-eFXLJol4oOLM8BS1+QV+XwaYQITG8n1tatBCFl4F5HE3zR5j2WIK8QpMt7VJIYmlogNUZfvB7wjwLoVk+umB9Q==} + engines: {node: '>=12.20.0'} + peerDependencies: + '@types/react': '>=17.0.0' + react: '>=17.0.0' + peerDependenciesMeta: + '@types/react': + optional: true + react: + optional: true + js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -2895,6 +3281,9 @@ packages: resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} engines: {node: '>=0.10'} + leac@0.6.0: + resolution: {integrity: sha512-y+SqErxb8h7nE/fiEX07jsbuhrpO9lL8eca7/Y1nuWV2moNlXhyd59iDGcRf6moVyDMbmTNzL40SUyrFU/yDpg==} + levn@0.4.1: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} @@ -2996,10 +3385,20 @@ packages: resolution: {integrity: sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==} engines: {node: '>=12'} + marked@7.0.4: + resolution: {integrity: sha512-t8eP0dXRJMtMvBojtkcsA7n48BkauktUKzfkPSCq85ZMTJ0v76Rke4DYz01omYpPTUh4p/f7HePgRo3ebG8+QQ==} + engines: {node: '>= 16'} + hasBin: true + math-intrinsics@1.1.0: resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} engines: {node: '>= 0.4'} + md-to-react-email@5.0.5: + resolution: {integrity: sha512-OvAXqwq57uOk+WZqFFNCMZz8yDp8BD3WazW1wAKHUrPbbdr89K9DWS6JXY09vd9xNdPNeurI8DU/X4flcfaD8A==} + peerDependencies: + react: ^18.0 || ^19.0 + media-typer@1.1.0: resolution: {integrity: sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==} engines: {node: '>= 0.8'} @@ -3225,6 +3624,9 @@ packages: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} + parseley@0.12.1: + resolution: {integrity: sha512-e6qHKe3a9HWr0oMRVDTRhKce+bRO8VGQR3NyVwcjwrbhMmFCX9KszEV35+rn4AdilFAq9VPxP/Fe1wC9Qjd2lw==} + parseurl@1.3.3: resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} engines: {node: '>= 0.8'} @@ -3248,6 +3650,9 @@ packages: resolution: {integrity: sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ==} engines: {node: '>=16'} + peberminta@0.9.0: + resolution: {integrity: sha512-XIxfHpEuSJbITd1H3EeQwpcZbTLHc+VVr8ANI9t5sit565tsI4/xK3KWTUFE2e6QiangUkh3B0jihzmGnNrRsQ==} + pg-int8@1.0.1: resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==} engines: {node: '>=4.0.0'} @@ -3415,6 +3820,10 @@ packages: engines: {node: '>=14'} hasBin: true + prismjs@1.30.0: + resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==} + engines: {node: '>=6'} + progress@2.0.3: resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} engines: {node: '>=0.4.0'} @@ -3466,6 +3875,9 @@ packages: react-is@16.13.1: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + react-promise-suspense@0.3.4: + resolution: {integrity: sha512-I42jl7L3Ze6kZaq+7zXWSunBa3b1on5yfvUW6Eo/3fFOj6dZ5Bqmcd264nJbTK/gn1HjjILAjSwnZbV4RpSaNQ==} + react@19.1.0: resolution: {integrity: sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==} engines: {node: '>=0.10.0'} @@ -3490,6 +3902,10 @@ packages: resolution: {integrity: sha512-gAZ+kLqBdHarXB64XpAe2VCjB7rIRv+mU8tfRWziHRJ5umKsIHN2tLLv6EtMw7WCdP19S0ERVMldNvxYCHnhSQ==} engines: {node: '>=8.6.0'} + resend@4.5.1: + resolution: {integrity: sha512-ryhHpZqCBmuVyzM19IO8Egtc2hkWI4JOL5lf5F3P7Dydu3rFeX6lHNpGqG0tjWoZ63rw0l731JEmuJZBdDm3og==} + engines: {node: '>=18'} + resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} @@ -3554,6 +3970,9 @@ packages: resolution: {integrity: sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==} engines: {node: '>= 10.13.0'} + selderee@0.11.0: + resolution: {integrity: sha512-5TF+l7p4+OsnP8BCCvSyZiSPc4x4//p5uPwK8TCnVPJYRmU2aYKMpOXvw8zM5a5JvuuCGN1jmsMwuU2W02ukfA==} + semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true @@ -4289,6 +4708,23 @@ snapshots: transitivePeerDependencies: - supports-color + '@floating-ui/core@1.7.0': + dependencies: + '@floating-ui/utils': 0.2.9 + + '@floating-ui/dom@1.7.0': + dependencies: + '@floating-ui/core': 1.7.0 + '@floating-ui/utils': 0.2.9 + + '@floating-ui/react-dom@2.1.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@floating-ui/dom': 1.7.0 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + + '@floating-ui/utils@0.2.9': {} + '@hexagon/base64@1.1.28': {} '@humanfs/core@0.19.1': {} @@ -4772,6 +5208,15 @@ snapshots: '@radix-ui/primitive@1.1.2': {} + '@radix-ui/react-arrow@1.1.7(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.4 + '@types/react-dom': 19.1.5(@types/react@19.1.4) + '@radix-ui/react-checkbox@1.3.1(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 @@ -4788,6 +5233,18 @@ snapshots: '@types/react': 19.1.4 '@types/react-dom': 19.1.5(@types/react@19.1.4) + '@radix-ui/react-collection@1.1.7(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.4)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.4)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.4)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.4 + '@types/react-dom': 19.1.5(@types/react@19.1.4) + '@radix-ui/react-compose-refs@1.1.2(@types/react@19.1.4)(react@19.1.0)': dependencies: react: 19.1.0 @@ -4806,6 +5263,26 @@ snapshots: optionalDependencies: '@types/react': 19.1.4 + '@radix-ui/react-dismissable-layer@1.1.10(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.4)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.4)(react@19.1.0) + '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.1.4)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.4 + '@types/react-dom': 19.1.5(@types/react@19.1.4) + + '@radix-ui/react-id@1.1.1(@types/react@19.1.4)(react@19.1.0)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.4)(react@19.1.0) + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.4 + '@radix-ui/react-label@2.1.6(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) @@ -4815,6 +5292,34 @@ snapshots: '@types/react': 19.1.4 '@types/react-dom': 19.1.5(@types/react@19.1.4) + '@radix-ui/react-popper@1.2.7(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@floating-ui/react-dom': 2.1.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-arrow': 1.1.7(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.4)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.4)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.4)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.4)(react@19.1.0) + '@radix-ui/react-use-rect': 1.1.1(@types/react@19.1.4)(react@19.1.0) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.4)(react@19.1.0) + '@radix-ui/rect': 1.1.1 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.4 + '@types/react-dom': 19.1.5(@types/react@19.1.4) + + '@radix-ui/react-portal@1.1.9(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.4)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.4 + '@types/react-dom': 19.1.5(@types/react@19.1.4) + '@radix-ui/react-presence@1.1.4(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.4)(react@19.1.0) @@ -4834,6 +5339,15 @@ snapshots: '@types/react': 19.1.4 '@types/react-dom': 19.1.5(@types/react@19.1.4) + '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.4)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.4 + '@types/react-dom': 19.1.5(@types/react@19.1.4) + '@radix-ui/react-scroll-area@1.2.8(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/number': 1.1.1 @@ -4851,6 +5365,25 @@ snapshots: '@types/react': 19.1.4 '@types/react-dom': 19.1.5(@types/react@19.1.4) + '@radix-ui/react-slider@1.3.5(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/number': 1.1.1 + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.4)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.4)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.4)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.4)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.4)(react@19.1.0) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.4)(react@19.1.0) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.4)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.4 + '@types/react-dom': 19.1.5(@types/react@19.1.4) + '@radix-ui/react-slot@1.2.2(@types/react@19.1.4)(react@19.1.0)': dependencies: '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.4)(react@19.1.0) @@ -4858,6 +5391,48 @@ snapshots: optionalDependencies: '@types/react': 19.1.4 + '@radix-ui/react-slot@1.2.3(@types/react@19.1.4)(react@19.1.0)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.4)(react@19.1.0) + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.4 + + '@radix-ui/react-switch@1.2.5(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.4)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.4)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.4)(react@19.1.0) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.4)(react@19.1.0) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.4)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.4 + '@types/react-dom': 19.1.5(@types/react@19.1.4) + + '@radix-ui/react-tooltip@1.2.7(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.4)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.4)(react@19.1.0) + '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.4)(react@19.1.0) + '@radix-ui/react-popper': 1.2.7(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.4)(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.4)(react@19.1.0) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.4 + '@types/react-dom': 19.1.5(@types/react@19.1.4) + '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.1.4)(react@19.1.0)': dependencies: react: 19.1.0 @@ -4879,6 +5454,13 @@ snapshots: optionalDependencies: '@types/react': 19.1.4 + '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.1.4)(react@19.1.0)': + dependencies: + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.4)(react@19.1.0) + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.4 + '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.1.4)(react@19.1.0)': dependencies: react: 19.1.0 @@ -4891,6 +5473,13 @@ snapshots: optionalDependencies: '@types/react': 19.1.4 + '@radix-ui/react-use-rect@1.1.1(@types/react@19.1.4)(react@19.1.0)': + dependencies: + '@radix-ui/rect': 1.1.1 + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.4 + '@radix-ui/react-use-size@1.1.1(@types/react@19.1.4)(react@19.1.0)': dependencies: '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.4)(react@19.1.0) @@ -4898,6 +5487,137 @@ snapshots: optionalDependencies: '@types/react': 19.1.4 + '@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.4 + '@types/react-dom': 19.1.5(@types/react@19.1.4) + + '@radix-ui/rect@1.1.1': {} + + '@react-email/body@0.0.11(react@19.1.0)': + dependencies: + react: 19.1.0 + + '@react-email/button@0.0.19(react@19.1.0)': + dependencies: + react: 19.1.0 + + '@react-email/code-block@0.0.13(react@19.1.0)': + dependencies: + prismjs: 1.30.0 + react: 19.1.0 + + '@react-email/code-inline@0.0.5(react@19.1.0)': + dependencies: + react: 19.1.0 + + '@react-email/column@0.0.13(react@19.1.0)': + dependencies: + react: 19.1.0 + + '@react-email/components@0.0.41(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-email/body': 0.0.11(react@19.1.0) + '@react-email/button': 0.0.19(react@19.1.0) + '@react-email/code-block': 0.0.13(react@19.1.0) + '@react-email/code-inline': 0.0.5(react@19.1.0) + '@react-email/column': 0.0.13(react@19.1.0) + '@react-email/container': 0.0.15(react@19.1.0) + '@react-email/font': 0.0.9(react@19.1.0) + '@react-email/head': 0.0.12(react@19.1.0) + '@react-email/heading': 0.0.15(react@19.1.0) + '@react-email/hr': 0.0.11(react@19.1.0) + '@react-email/html': 0.0.11(react@19.1.0) + '@react-email/img': 0.0.11(react@19.1.0) + '@react-email/link': 0.0.12(react@19.1.0) + '@react-email/markdown': 0.0.15(react@19.1.0) + '@react-email/preview': 0.0.13(react@19.1.0) + '@react-email/render': 1.1.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-email/row': 0.0.12(react@19.1.0) + '@react-email/section': 0.0.16(react@19.1.0) + '@react-email/tailwind': 1.0.5(react@19.1.0) + '@react-email/text': 0.1.4(react@19.1.0) + react: 19.1.0 + transitivePeerDependencies: + - react-dom + + '@react-email/container@0.0.15(react@19.1.0)': + dependencies: + react: 19.1.0 + + '@react-email/font@0.0.9(react@19.1.0)': + dependencies: + react: 19.1.0 + + '@react-email/head@0.0.12(react@19.1.0)': + dependencies: + react: 19.1.0 + + '@react-email/heading@0.0.15(react@19.1.0)': + dependencies: + react: 19.1.0 + + '@react-email/hr@0.0.11(react@19.1.0)': + dependencies: + react: 19.1.0 + + '@react-email/html@0.0.11(react@19.1.0)': + dependencies: + react: 19.1.0 + + '@react-email/img@0.0.11(react@19.1.0)': + dependencies: + react: 19.1.0 + + '@react-email/link@0.0.12(react@19.1.0)': + dependencies: + react: 19.1.0 + + '@react-email/markdown@0.0.15(react@19.1.0)': + dependencies: + md-to-react-email: 5.0.5(react@19.1.0) + react: 19.1.0 + + '@react-email/preview@0.0.13(react@19.1.0)': + dependencies: + react: 19.1.0 + + '@react-email/render@1.0.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + html-to-text: 9.0.5 + prettier: 3.5.3 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + react-promise-suspense: 0.3.4 + + '@react-email/render@1.1.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + html-to-text: 9.0.5 + prettier: 3.5.3 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + react-promise-suspense: 0.3.4 + + '@react-email/row@0.0.12(react@19.1.0)': + dependencies: + react: 19.1.0 + + '@react-email/section@0.0.16(react@19.1.0)': + dependencies: + react: 19.1.0 + + '@react-email/tailwind@1.0.5(react@19.1.0)': + dependencies: + react: 19.1.0 + + '@react-email/text@0.1.4(react@19.1.0)': + dependencies: + react: 19.1.0 + '@rollup/plugin-commonjs@28.0.1(rollup@4.35.0)': dependencies: '@rollup/pluginutils': 5.1.4(rollup@4.35.0) @@ -4979,6 +5699,11 @@ snapshots: '@rushstack/eslint-patch@1.11.0': {} + '@selderee/plugin-htmlparser2@0.11.0': + dependencies: + domhandler: 5.0.3 + selderee: 0.11.0 + '@sentry-internal/browser-utils@9.19.0': dependencies: '@sentry/core': 9.19.0 @@ -5917,6 +6642,8 @@ snapshots: deep-is@0.1.4: {} + deepmerge@4.3.1: {} + define-data-property@1.1.4: dependencies: es-define-property: 1.0.1 @@ -5941,6 +6668,24 @@ snapshots: dependencies: esutils: 2.0.3 + dom-serializer@2.0.0: + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + entities: 4.5.0 + + domelementtype@2.3.0: {} + + domhandler@5.0.3: + dependencies: + domelementtype: 2.3.0 + + domutils@3.2.2: + dependencies: + dom-serializer: 2.0.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + dotenv@16.5.0: {} drizzle-kit@0.30.6: @@ -5981,6 +6726,8 @@ snapshots: graceful-fs: 4.2.11 tapable: 2.2.1 + entities@4.5.0: {} + env-paths@3.0.0: {} es-abstract@1.23.9: @@ -6405,6 +7152,8 @@ snapshots: transitivePeerDependencies: - supports-color + fast-deep-equal@2.0.1: {} + fast-deep-equal@3.1.3: {} fast-glob@3.3.1: @@ -6615,6 +7364,21 @@ snapshots: dependencies: react-is: 16.13.1 + html-to-text@9.0.5: + dependencies: + '@selderee/plugin-htmlparser2': 0.11.0 + deepmerge: 4.3.1 + dom-serializer: 2.0.0 + htmlparser2: 8.0.2 + selderee: 0.11.0 + + htmlparser2@8.0.2: + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.2.2 + entities: 4.5.0 + http-errors@2.0.0: dependencies: depd: 2.0.0 @@ -6809,6 +7573,11 @@ snapshots: jose@5.10.0: {} + jotai@2.12.4(@types/react@19.1.4)(react@19.1.0): + optionalDependencies: + '@types/react': 19.1.4 + react: 19.1.0 + js-tokens@4.0.0: {} js-yaml@4.1.0: @@ -6852,6 +7621,8 @@ snapshots: dependencies: language-subtag-registry: 0.3.23 + leac@0.6.0: {} + levn@0.4.1: dependencies: prelude-ls: 1.2.1 @@ -6932,8 +7703,15 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 + marked@7.0.4: {} + math-intrinsics@1.1.0: {} + md-to-react-email@5.0.5(react@19.1.0): + dependencies: + marked: 7.0.4 + react: 19.1.0 + media-typer@1.1.0: {} merge-descriptors@2.0.0: {} @@ -7133,6 +7911,11 @@ snapshots: dependencies: callsites: 3.1.0 + parseley@0.12.1: + dependencies: + leac: 0.6.0 + peberminta: 0.9.0 + parseurl@1.3.3: {} path-exists@4.0.0: {} @@ -7148,6 +7931,8 @@ snapshots: path-to-regexp@8.2.0: {} + peberminta@0.9.0: {} + pg-int8@1.0.1: {} pg-numeric@1.0.2: {} @@ -7241,6 +8026,8 @@ snapshots: prettier@3.5.3: {} + prismjs@1.30.0: {} + progress@2.0.3: {} prop-types@15.8.1: @@ -7290,6 +8077,10 @@ snapshots: react-is@16.13.1: {} + react-promise-suspense@0.3.4: + dependencies: + fast-deep-equal: 2.0.1 + react@19.1.0: {} readdirp@3.6.0: @@ -7326,6 +8117,13 @@ snapshots: transitivePeerDependencies: - supports-color + resend@4.5.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + dependencies: + '@react-email/render': 1.0.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + transitivePeerDependencies: + - react + - react-dom + resolve-from@4.0.0: {} resolve-pkg-maps@1.0.0: {} @@ -7423,6 +8221,10 @@ snapshots: ajv-formats: 2.1.1(ajv@8.17.1) ajv-keywords: 5.1.0(ajv@8.17.1) + selderee@0.11.0: + dependencies: + parseley: 0.12.1 + semver@6.3.1: {} semver@7.7.2: {} diff --git a/front_end/public/favicon.png b/front_end/public/favicon.png new file mode 100644 index 0000000..fdae967 Binary files /dev/null and b/front_end/public/favicon.png differ diff --git a/front_end/src/app/.jukit/.jukit_info.json b/front_end/src/app/.jukit/.jukit_info.json new file mode 100644 index 0000000..92c7342 --- /dev/null +++ b/front_end/src/app/.jukit/.jukit_info.json @@ -0,0 +1 @@ +{"terminal": "nvimterm"} \ No newline at end of file diff --git a/front_end/src/app/api/send/route.ts b/front_end/src/app/api/send/route.ts new file mode 100644 index 0000000..211bdd3 --- /dev/null +++ b/front_end/src/app/api/send/route.ts @@ -0,0 +1,26 @@ +import { EmailTemplate } from "../../../components/email-template"; +import { Resend } from "resend"; + +const resend = new Resend(process.env.RESEND_API_KEY); + +export async function POST(req: Request) { + const { to, subject, request } = await req.json(); + try { + const { data, error } = await resend.emails.send({ + from: "Valtam ", + to: [to], + subject: subject as string, + react: EmailTemplate({ content: request as string }) as React.ReactNode, + }); + + if (error) { + console.log(error); + return Response.json({ error }, { status: 500 }); + } + + return Response.json(data); + } catch (error) { + console.log(error); + return Response.json({ error }, { status: 500 }); + } +} diff --git a/front_end/src/app/layout.tsx b/front_end/src/app/layout.tsx index 271e13c..fc96275 100644 --- a/front_end/src/app/layout.tsx +++ b/front_end/src/app/layout.tsx @@ -1,26 +1,28 @@ import "~/styles/globals.css"; import { type Metadata } from "next"; -import { Geist } from "next/font/google"; +import { Toaster } from "@/components/ui/sonner"; +import { Roboto } from "next/font/google"; import { ThemeProvider } from "../components/theme-provider"; import { PostHogProvider } from "../components/PostHogProvider"; export const metadata: Metadata = { - title: "Create T3 App", - description: "Generated by create-t3-app", - icons: [{ rel: "icon", url: "/favicon.ico" }], + title: "Valtam", + description: + "This is the interschool code for the Shiv Nadar AI Chatbot competition from the Lotus Valley Gurgaon Team. It is an AI chatbot which runs on NextJS. The llm was built in python, and we use fastapi for the backend to interact with the LLM. ", + icons: [{ rel: "icon", url: "/favicon.png" }], }; -const geist = Geist({ +const font = Roboto({ subsets: ["latin"], - variable: "--font-geist-sans", + variable: "--font-roboto-sans", }); export default function RootLayout({ children, }: Readonly<{ children: React.ReactNode }>) { return ( - + {children} + ); -} \ No newline at end of file +} + diff --git a/front_end/src/app/page.tsx b/front_end/src/app/page.tsx index f654280..8b57c30 100644 --- a/front_end/src/app/page.tsx +++ b/front_end/src/app/page.tsx @@ -4,6 +4,7 @@ import { db } from "../server/db/"; import Navbar from "../components/navbar"; import Chat from "../components/chat"; import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; +import Controls from "@/components/controls"; export default async function HomePage() { const messages = await db.query.messages.findMany(); diff --git a/front_end/src/app/reset_password/.jukit/.jukit_info.json b/front_end/src/app/reset_password/.jukit/.jukit_info.json new file mode 100644 index 0000000..92c7342 --- /dev/null +++ b/front_end/src/app/reset_password/.jukit/.jukit_info.json @@ -0,0 +1 @@ +{"terminal": "nvimterm"} \ No newline at end of file diff --git a/front_end/src/app/reset_password/page.tsx b/front_end/src/app/reset_password/page.tsx new file mode 100644 index 0000000..5b78421 --- /dev/null +++ b/front_end/src/app/reset_password/page.tsx @@ -0,0 +1,41 @@ +import React, { Suspense } from "react"; +import "./signin.css"; +import ResetPassword from "@/components/reset-password"; + +const page = () => { + return ( + + + + } + > +
+
+ +
+
+ +
+
+
+
+
+ ); +}; + +export default page; diff --git a/front_end/src/app/reset_password/signin.css b/front_end/src/app/reset_password/signin.css new file mode 100644 index 0000000..6a437cd --- /dev/null +++ b/front_end/src/app/reset_password/signin.css @@ -0,0 +1,15 @@ +.signin__pattern { + background-color: #141518; + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100'%3E%3Cg fill-rule='evenodd'%3E%3Cg fill='%23a8a0b5' fill-opacity='0.4'%3E%3Cpath opacity='.5' d='M96 95h4v1h-4v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h4v1h-4v9h4v1h-4v9h4v1h-4v9h4v1h-4v9h4v1h-4v9h4v1h-4v9h4v1h-4v9h4v1h-4v9zm-1 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-9-10h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm9-10v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-9-10h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm9-10v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-9-10h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm9-10v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-9-10h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9z'/%3E%3Cpath d='M6 5V0H5v5H0v1h5v94h1V6h94V5H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E"); +} + +.signin__pattern-child { + background-color: linear-gradient( + rgba(20, 21, 24, 0), + rgba(20, 21, 24, 0.3), + rgba(20, 21, 24, 0.5), + rgba(20, 21, 24, 1) + ); + + height: 100%; +} diff --git a/front_end/src/components/.jukit/.jukit_info.json b/front_end/src/components/.jukit/.jukit_info.json new file mode 100644 index 0000000..92c7342 --- /dev/null +++ b/front_end/src/components/.jukit/.jukit_info.json @@ -0,0 +1 @@ +{"terminal": "nvimterm"} \ No newline at end of file diff --git a/front_end/src/components/chat.tsx b/front_end/src/components/chat.tsx index c6e2c68..67fbb19 100644 --- a/front_end/src/components/chat.tsx +++ b/front_end/src/components/chat.tsx @@ -4,7 +4,7 @@ import { Button } from "@/components/ui/button"; import { ScrollArea } from "@/components/ui/scroll-area"; import { authClient } from "../lib/auth-client"; import { PlaceholdersAndVanishInput } from "./ui/placeholders-and-vanish-input"; -import { getMessages, sendMessage } from "@/server/queries"; +import { getMessages, sendLlmMessage, sendMessage } from "@/server/queries"; import { QueryClient, QueryClientProvider, @@ -12,6 +12,16 @@ import { } from "@tanstack/react-query"; import { db } from "../server/db/"; import { LlmMessageCard, UserMessageCard } from "./message_cards"; +import Controls, { + max_length_atom, + check_circulars_atom, + temperate_atom, +} from "./controls"; +import { atom, getDefaultStore, useAtom } from "jotai"; +import { toast } from "sonner"; +import { cn } from "@/lib/utils"; +import { isError } from "util"; +import { Switch } from "@radix-ui/react-switch"; interface propTypes { messages: { @@ -19,7 +29,7 @@ interface propTypes { createdAt: Date; updatedAt: Date | null; text: string | null; - user_id: number; + user_id: string; user_msg: boolean; }[]; } @@ -32,27 +42,87 @@ const Chat = ({ messages }: propTypes) => { }; const ChatCore = () => { + const defaultStore = getDefaultStore(); + + const [fetchingResponse, setFetchingResponse] = useState(false); const { data: session, isPending, error, refetch } = authClient.useSession(); const [newMessage, setNewMessage] = useState(""); + const handleSubmit = async () => { - if (newMessage) { - const msg = await sendMessage( - newMessage, - parseInt(session?.user?.id as string), - ); - setMessages([ - ...messages!, - msg as { - id: number; - createdAt: Date; - updatedAt: Date | null; - text: string | null; - user_id: number; - user_msg: boolean; - }, - ]); - setNewMessage(""); + try { + if (newMessage && !fetchingResponse) { + setFetchingResponse(true); + + const res = await fetch( + `http://127.0.0.1:8000/generate/${defaultStore.get(check_circulars_atom) ? "circular" : "ncert"}`, + { + method: "POST", + headers: { + Accept: "application/json", + "Content-Type": "application/json", + }, + body: JSON.stringify({ + prompt: newMessage, + max_length: defaultStore.get(max_length_atom), + temperature: defaultStore.get(temperate_atom), + }), + }, + ).catch((err) => { + toast.error(err.message); + setFetchingResponse(false); + return; + }); + if (!res) { + setFetchingResponse(false); + return; + } + + const msg = await sendMessage(newMessage, session?.user?.id as string); + const push_queue = []; + push_queue.push( + msg as { + id: number; + createdAt: Date; + updatedAt: Date | null; + text: string | null; + user_id: string; + user_msg: boolean; + }, + ); + + setNewMessage(""); + const data: string = await res.json(); + console.log(data); + const chatbot_response = data.response; + console.log(chatbot_response); + console.log(session?.user?.id); + const to_push = await sendLlmMessage( + chatbot_response as string, + session?.user?.id!, + ).catch((err) => { + toast.error(err.message); + setFetchingResponse(false); + }); + console.log(data); + push_queue.push( + to_push as { + id: number; + createdAt: Date; + updatedAt: Date | null; + text: string | null; + user_id: string; + user_msg: boolean; + }, + ); + if (to_push && push_queue[0]) { + } + setMessages([...messages!, ...push_queue]); + } + setFetchingResponse(false); + } catch (error) { + toast.error(error.message as string); } + setFetchingResponse(false); }; const [messages, setMessages] = useState< { @@ -60,7 +130,7 @@ const ChatCore = () => { createdAt: Date; updatedAt: Date | null; text: string | null; - user_id: number; + user_id: string; user_msg: boolean; }[] >(); @@ -74,26 +144,50 @@ const ChatCore = () => { setMessages(data); console.log("messages", data); } + }, [isMessagesSuccess, data]); return (
{session && ( -
- -
- {messages?.map((message) => ( - <> - {message.user_msg ? ( - +
+ + +
+ {messages?.map((message) => ( +
+ {message.user_msg ? ( + ) : ( - + )} - +
))} + {fetchingResponse && ( + + + + )}
-
+
{ setNewMessage(e.target.value); }} onSubmit={handleSubmit} + disabled={fetchingResponse} />
diff --git a/front_end/src/components/controls.tsx b/front_end/src/components/controls.tsx new file mode 100644 index 0000000..74dc94a --- /dev/null +++ b/front_end/src/components/controls.tsx @@ -0,0 +1,134 @@ +"use client"; +import React from "react"; +import { cn } from "@/lib/utils"; +import { Icon } from "./navbar"; +import { Switch } from "./ui/switch"; +import { Label } from "./ui/label"; +import { Input } from "./ui/input"; +import { atom, useAtom } from "jotai"; +import { Slider } from "./ui/slider"; +import { + Tooltip, + TooltipContent, + TooltipProvider, + TooltipTrigger, +} from "@/components/ui/tooltip"; + +interface Props { + className?: string; +} + +const max_length_atom = atom(100); +const check_circulars_atom = atom(false); +const temperate_atom = atom(0.7); + +export { max_length_atom, check_circulars_atom, temperate_atom }; + +const Controls = ({ className, ...props }: Props) => { + const [_max_length, setMaxLength] = useAtom(max_length_atom); + const [check_circulars, setCheckCirculars] = + useAtom(check_circulars_atom); + const [_temperature, setTemperature] = useAtom(temperate_atom); + + return ( + +
+
+ + + +
+
+ + +

+ Model +

+
+ +

+ Select the model you want to use. +

+
+
+
+ + +
+
+
+ + +

+ Maximum Length +

+
+ +

+ Maximum token length of the model. Longer +
+ tokens will be take longer to generate. +

+
+
+ { + setMaxLength(parseInt(e.target.value)); + }} + placeholder="Max Length" + className="hidden md:block" + /> +
+
+ + +

+ Temperature +

+
+ +

+ Adjust the temperature of the model. Higher temperatures +
+ will make the model more creative, while lower temperatures{" "} +
+ will make it more predictable. +

+
+
+
+ setTemperature(val[0]!)} + /> +
+ {_temperature} +
+
+
+
+
+
+
+ ); +}; + +export default Controls; diff --git a/front_end/src/components/email-template.tsx b/front_end/src/components/email-template.tsx new file mode 100644 index 0000000..cbf892e --- /dev/null +++ b/front_end/src/components/email-template.tsx @@ -0,0 +1,149 @@ +import { + Body, + Button, + Container, + Head, + Heading, + Hr, + Html, + Img, + Link, + Preview, + Section, + Text, +} from "@react-email/components"; + +interface PasswordResetEmailProps { + content: string; +} + +export const EmailTemplate = ({ content }: PasswordResetEmailProps) => { + const baseUrl = process.env.NEXT_PUBLIC_BASE_URL || "http:localhost:3000"; + + return ( + + + Reset your password for your account + + + Your Company + Reset your password + Hey there! + + We received a request to reset your password. If you didn't + make this request, you can safely ignore this email. + +
+ + Reset Password + +
+ +
+ + If you didn't request a password reset, please ignore this + email.{" "} + +
+ + + ); +}; + +export default EmailTemplate; + +const main = { + backgroundColor: "#f6f9fc", + fontFamily: + '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Ubuntu, sans-serif', + padding: "40px 0", +}; + +const container = { + backgroundColor: "#ffffff", + border: "1px solid #eee", + borderRadius: "5px", + boxShadow: "0 5px 10px rgba(20, 50, 70, 0.2)", + margin: "0 auto", + maxWidth: "600px", + padding: "20px", +}; + +const logo = { + margin: "0 auto 20px", + display: "block", +}; + +const h1 = { + color: "#1f2937", + fontSize: "24px", + fontWeight: "600", + lineHeight: "1.1", + margin: "0 0 15px", + textAlign: "center" as const, +}; + +const text = { + color: "#4b5563", + fontSize: "16px", + lineHeight: "1.4", + margin: "0 0 15px", +}; + +const buttonContainer = { + margin: "25px 0", + textAlign: "center" as const, +}; + +const button = { + backgroundColor: "#3b82f6", + borderRadius: "5px", + color: "#fff", + display: "inline-block", + fontSize: "16px", + fontWeight: "600", + lineHeight: "1", + padding: "12px 20px", + textAlign: "center" as const, + textDecoration: "none", +}; + +const codeContainer = { + background: "#f3f4f6", + borderRadius: "5px", + margin: "16px 0", + padding: "10px", + textAlign: "center" as const, +}; + +const code = { + color: "#1f2937", + display: "inline-block", + fontFamily: "monospace", + fontSize: "24px", + fontWeight: "700", + letterSpacing: "2px", + margin: "0", +}; + +const hr = { + borderColor: "#e5e7eb", + margin: "20px 0", +}; + +const footer = { + color: "#6b7280", + fontSize: "14px", + lineHeight: "24px", +}; + +const link = { + color: "#3b82f6", + textDecoration: "underline", +}; diff --git a/front_end/src/components/message_cards.tsx b/front_end/src/components/message_cards.tsx index f813f89..749eed7 100644 --- a/front_end/src/components/message_cards.tsx +++ b/front_end/src/components/message_cards.tsx @@ -1,35 +1,70 @@ import { cn } from "@/lib/utils"; import { Card, CardContent } from "@/components/ui/card"; +import { Icon } from "./navbar"; type CardProps = React.ComponentProps; interface MessageCardProps extends CardProps { message: string; + timestamp: Date; } export function UserMessageCard({ className, message, + timestamp, ...props }: MessageCardProps) { return ( - - -
{message}
-
-
+
+ + +
{message}
+
+
+ + {new Date().getDay == timestamp.getDay + ? timestamp.toLocaleTimeString() + : timestamp.toLocaleString()} + +
); } export function LlmMessageCard({ className, message, + timestamp, ...props }: MessageCardProps) { + if (!message) { + return
Error: no response generated.
; + } return ( - - -
{message}
-
-
+
+
+ + + + +
+
{message}
+
+
+ + {" "} + {new Date().getDay == timestamp.getDay + ? timestamp.toLocaleTimeString() + : timestamp.toLocaleString()} + +
); } diff --git a/front_end/src/components/navbar.tsx b/front_end/src/components/navbar.tsx index 9d7fe30..4388106 100644 --- a/front_end/src/components/navbar.tsx +++ b/front_end/src/components/navbar.tsx @@ -3,22 +3,49 @@ import React from "react"; import { authClient } from "../lib/auth-client"; import { Button } from "./ui/button"; import Link from "next/link"; +import { atom, getDefaultStore, useAtom } from "jotai"; +import { Input } from "./ui/input"; +import Image from "next/image"; +import { Switch } from "./ui/switch"; +import { Label } from "./ui/label"; + +const max_length_atom = atom(100); +const check_circulars_atom = atom(false); +const defaultStore = getDefaultStore(); +export { max_length_atom, check_circulars_atom }; + +export const Icon = ({ className, ...rest }: any) => { + return ( + + + + ); +}; const Navbar = () => { - const { - data: session, - isPending, //loading state - error, //error object - refetch, //refetch the session - } = authClient.useSession(); + const { data: session } = authClient.useSession(); + const [_max_length, setMaxLength] = useAtom(max_length_atom); + const [check_circulars, setCheckCirculars] = + useAtom(check_circulars_atom); + if (!session?.user?.image) { + console.log("test") + } return (