It was proven by Leslie Valiant and Vijay Vazirani in their paper titled NP is as easy as detecting unique solutions published in 1986.
[1] The Valiant–Vazirani theorem implies that the Boolean satisfiability problem, which is NP-complete, remains a computationally hard problem even if the input instances are promised to have at most one satisfying assignment.
The promise problem Unambiguous-SAT can be decided by a nondeterministic Turing machine that has at most one accepting computation path, thus it belongs to the promise version of the complexity class UP (the class UP as such is only defined for languages).
As a consequence (not needed for the NP = RP argument, but of independent interest), if we choose one of the Gi at random, we obtain a randomized reduction with one-sided error from SAT to Unambiguous-SAT that succeeds with probability at least Ω(1/n).
More generally, this argument shows unconditionally that NP is included in RPpromiseUP.