Mini-Projects Overview¶
Hands-On AI mini-projects are designed to provide hands-on learning experiences with large language models across different application types. These projects range from beginner to advanced levels and cover the various modules in Hands-On AI.
Project Structure¶
Each mini-project follows a consistent structure:
- Title and Difficulty Level: Clearly indicates the project focus and complexity
- Learning Objectives: What students will accomplish and learn
- Required Background: Prerequisites and knowledge needed
- Implementation Guide: Step-by-step instructions
- Extension Activities: Ways to expand on the basic project
- Assessment Criteria: How to evaluate project success
A note on type hints¶
The example code in these projects is written without type hints on purpose.
For someone still learning the language, annotations like
def ask(self, prompt: str) -> str: add reading overhead before the idea itself
has landed, so the examples stay deliberately plain to keep the focus on the
concept.
This is a teaching choice, not a recommendation against type hints:
- For teachers: the plain style is intentional. The
hands_on_ailibrary itself is fully type-hinted and type-checked (mypy), so the package models good practice even though the project snippets keep things simple. - For advanced students: adding type hints is a great extension exercise and
reflects industry best practice. Annotate your project, run a type checker
(
mypyorpyright), and fix what it finds. Because the library ships type information, your editor and the checker will understand its functions too.
Project Categories¶
Chat Module Projects¶
Chat projects focus on creating conversational applications:
- Personality Bots: Custom chat personalities for specific purposes
- Interactive Applications: Goal-oriented conversation systems
- Educational Assistants: Subject-specific tutoring systems
- Creative Writing: Story generation and creative applications
RAG Module Projects¶
Retrieval-Augmented Generation projects combine document processing with LLMs:
- Custom Knowledge Bases: Creating systems that answer questions from specific sources
- Document Analysis: Processing and extracting information from documents
- Hybrid Systems: Combining retrieval with additional processing
Agent Module Projects¶
Agent projects implement tool-using, reasoning systems:
- Custom Tool Creation: Building specialized tools for agents
- Multi-step Problem Solving: Complex reasoning tasks
- Domain-specific Assistants: Specialized agents for particular fields
How to Use These Projects¶
- Browse the Project Gallery to find a suitable project
- Review the project documentation to understand requirements
- Follow the implementation guide, making adaptations as needed
- Use the provided starter code and templates when available
- Evaluate based on the assessment criteria
Project Implementation Workflow¶
- Setup: Configure the required environment and dependencies
- Planning: Sketch the solution approach and identify key components
- Implementation: Code the solution, following the project guide
- Testing: Verify functionality with appropriate test cases
- Extension: Add additional features or improvements
- Documentation: Add comments and documentation for your code
Contributing New Projects¶
If you'd like to contribute a new mini-project:
- Use the Project Template as a starting point
- Ensure your project includes clear learning objectives
- Provide a step-by-step implementation guide
- Include sample code and expected outputs
- Add assessment criteria and extension activities
Using Projects in the Classroom¶
For educators, these projects can be:
- Individual assignments: Students complete projects independently
- Group projects: Teams collaborate on more complex implementations
- In-class demonstrations: Showcase capabilities and concepts
- Course capstones: Combined with other modules for comprehensive projects
See the Education Guide for more information on integrating these projects into your curriculum.