Jazz is pretty boisterous. And when she and Tango play, it sounds like they're killing each other lol! But they're just playing. I don't have much advice to give you because I purposely let Tango call the shots as to how much is too much. He keeps her in line. When she bites too hard or gets too crazy, he'll let her know, by either sitting on her (I'm not kidding) or changing his play growl into a real one. Jazz backs right off when she gets those signals from Tango. (Tango, just btw, is NOT aggressive at all, this is a behavior he reserves purely for Jazz.)
Also, I don't know that that's the "correct" thing to do/to allow to happen, from a purely training/discipline perspective, but it works.
Jazz also started out using her teeth really hard on me when I first got her. I tried telling her no gently, then sharply, then making a yelping sound (which I understand her mother would have done had she been with her) and none of that made the SLIGHTEST difference. So I resorted to making it a bit uncomfortable for her to bite me. When she started to nip, I'd slip my thumb into her mouth and press it on her upper palate at the same time I was pressing down on her snout with a finger, sort of like a pincer grip. It didn't hurt her, but it WAS uncomfortable. She couldn't close her mouth, and she had this pressure. Every time she bit me, I'd do that. I wouldn't say anything. It took about a week (and I'd LOOK for opportunities to do this so she'd get the message faster) but she stopped trying to nip me, having come to associate it with something unpleasant. Very occasionally she'll forget, and start to nip, but one episode of me re-visiting that technique, and it doesn't happen again.