Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Epic 2.14 Writing Feedback Generator #119

Open
31 tasks
Ahmedr275 opened this issue Nov 19, 2024 · 9 comments · Fixed by #126
Open
31 tasks

Epic 2.14 Writing Feedback Generator #119

Ahmedr275 opened this issue Nov 19, 2024 · 9 comments · Fixed by #126
Labels
type:new-feature For proposals or implementation of entirely new features or functionalities.

Comments

@Ahmedr275
Copy link
Contributor

Ahmedr275 commented Nov 19, 2024

Develop Writing Feedback Generator Tool

Description

As an educator, I want to generate constructive feedback on students' writing assignments based on specific assessment criteria so that I can help students improve their writing skills and address areas of weakness effectively.

The tool should allow users to:

  • Specify a grade level.
  • Provide a description of the writing assignment.
  • Define rubric criteria or feedback focus.
  • Upload a student’s written work for evaluation.
  • Accept file uploads (one file per prompt) in supported formats:
    • Upload: CSV, PDF, DOCX, PPT, Plain Text
    • URLs: YouTube Video, Website, Google Sheets

The tool will generate feedback tailored to the assignment, rubric criteria, and uploaded writing sample.

Design

Writing Feedback
Writing Feedback-1
Writing Feedback-2

Acceptance Criteria

  • Feature Requirements:

    • Input Handling:
      • Users can specify a grade level from a dropdown menu (e.g., Pre-K to University).
      • Users can provide an assignment description via:
        • Direct text input.
      • Users can define rubric criteria or feedback focus via:
        • Direct text input.
        • Document attachment (one file per prompt) in the following formats:
          • Upload: CSV, PDF, DOCX, PPT, Plain Text
          • URLs: YouTube Video, Website, Google Sheets
      • Users can upload the student’s written work for evaluation via:
        • Direct text input.
        • Document attachment (one file per prompt) in the following formats:
          • Upload: CSV, PDF, DOCX, PPT, Plain Text
          • URLs: YouTube Video, Website, Google Sheets
    • Feedback Generation Logic:
      • The tool generates detailed and constructive feedback based on:
        • The assignment description.
        • The defined rubric criteria or feedback focus.
        • The uploaded writing sample.
      • Feedback includes:
        • Strengths and areas for improvement.
        • Suggestions for enhancing clarity, coherence, and adherence to guidelines.
        • Comments on grammar, spelling, and creativity.
    • Output Format:
      • Feedback is presented as a downloadable PDF or DOCX document.
  • Technical Implementation:

    • Create a new folder within app/features/ named writing_feedback_generator.
    • Implement the executor function in core.py with input parameters matching the tool's functionality, including type hints.
    • Use tools.py for abstractions and helper functions to keep core.py clean and maintainable.
    • Include a metadata.json file defining the input parameters for proper validation.
    • Utilize a prompt/ folder for AI-driven generation prompts if necessary.
    • Implement logging and error handling as per platform standards.
  • Unit Tests:

    • Write unit tests for all functions and classes in core.py and tools.py using PyTest.
      • Tests cover:
        • Normal operation with valid inputs.
        • Edge cases and invalid inputs.
        • Error handling and exceptions.
  • Code Quality and Documentation:

    • Ensure code follows best practices for readability and maintainability.
      • Use consistent naming conventions.
      • Include type hints for all functions and methods.
      • Avoid redundant or unnecessary code.
    • Add docstrings to all functions and classes explaining their purpose and usage.
      • Provide comments within the code where necessary to explain complex logic.
  • Integration and Testing:

    • Ensure the feature integrates seamlessly with the existing Marvel AI platform.
      • The executor function is compatible with the router.py layer for request handling.
      • Inputs are validated as per the platform's requirements.
    • Test the entire feature from input handling to output generation.
      • Verify that users can input their data and receive the expected outputs without errors.

Sample Input and Output

Input:

  • Grade Level: 9th Grade
  • Assignment Description: Grade_9_Writing_Assignment.pdf pasted as text.
  • Rubric Criteria/Feedback Focus:
    Assessment Criteria:
    1. Clarity and coherence of ideas.
    2. Creativity in imagining alternate scenarios.
    3. Depth of understanding of the historical figure's context.
    4. Grammar, spelling, and adherence to the guidelines.
    
  • Writing to Review:
    If_I_Were_Abraham_Lincoln_Essay.pdf

Output:

Output for Writing Feedback.pdf


Resources

  1. Design Mockup
  2. How to Create your Marvel AI Tool
  3. Developing Educator Tools for the Marvel AI Backend: A Step-By-Step Guide (VIDEO)
  4. Marvel AI Document Loader: Multi-File Quiz Generation Explained

Please ensure that each of these criteria is fulfilled for the issue to be considered complete.

@Ahmedr275 Ahmedr275 added the type:new-feature For proposals or implementation of entirely new features or functionalities. label Nov 19, 2024
@Ahmedr275 Ahmedr275 moved this to Todo in Issues board Nov 19, 2024
@AaronSosaRamos AaronSosaRamos self-assigned this Nov 28, 2024
@AaronSosaRamos AaronSosaRamos linked a pull request Nov 28, 2024 that will close this issue
@AaronSosaRamos
Copy link
Contributor

#126 needs to be checked against acceptance criteria

@Ahmedr275 Ahmedr275 changed the title [Feature] - Develop Writing Feedback Generator Epic 2.10 Writing Feedback Generator Dec 3, 2024
@Ahmedr275 Ahmedr275 changed the title Epic 2.10 Writing Feedback Generator Epic 2.14 Writing Feedback Generator Dec 6, 2024
@kingsleyli920
Copy link

kingsleyli920 commented Dec 30, 2024

Hello there,

I am learning on the codes in recent days. And I feel it's better for me to pick an issue to solve to understand the project deeply.

I am just curious that the issue is still open right? Is that possible for me to pick it up? If this is not available, could you please recommend me an available issue for me to solve?

Thanks.

@Ahmedr275
Copy link
Contributor Author

Hey @kingsleyli920 , that's exactly how we want folks to go about their first issue. You can work on this and create your own PR for it. The current PR available for this doesn't cover everything outlined in the issue so you can keep that as your reference if you'd like.

@kingsleyli920
Copy link

@Ahmedr275 Thanks a lot. I received a message mentioned that the whole project will transfer from LangGraph to Google Gemini. Should I wait for more info about the update before I start the issue? Thank you so much.

@Ahmedr275
Copy link
Contributor Author

Hey @kingsleyli920 , that is for the AI Assistants not tools. This issue is unaffected by the changes.

@kingsleyli920
Copy link

Hey @kingsleyli920 , that is for the AI Assistants not tools. This issue is unaffected by the changes.

Thanks a lot. I will work on this tool.

@kingsleyli920
Copy link

Hey @kingsleyli920 , that is for the AI Assistants not tools. This issue is unaffected by the changes.

Hello @Ahmedr275 ,

I am working on the output functionality. Currently, the output is in JSON format. However, based on the documentation above, the output is expected to be a PDF or DOC file. Could you provide more details about the requirements for the output? For example, is there a specific path where the output files should be stored, or any other considerations I should keep in mind? Thank you!

@AaronSosaRamos
Copy link
Contributor

Hey @kingsleyli920, thank you for your questions. The output from the Marvel AI backend is in JSON format. The expected exporting formats (PDF or DOC file) are mentioned for contributing in the ideation process of an effective Pydantic Schema and LLM pipeline for retrieving JSON info. that will easily satisfy those requirements. But in the end, it is about the JSON responses in our backend.

@kingsleyli920
Copy link

I believe all required features are implemented for this task. If export PDF and DOC is not necessary at the moment. I am going to pick up another task. Thanks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type:new-feature For proposals or implementation of entirely new features or functionalities.
Projects
Status: Todo
Development

Successfully merging a pull request may close this issue.

3 participants