Faits: Faits: A. A._ a été arrêté le 7 octobre 2006 et placé en détention préventive sous l'inculpation de viol. Il est accusé par son amie intime, B._, de l'avoir contrainte à entretenir une relation sexuelle en la maintenant fermement après l'avoir frappée. Le 16 mai 2007, A._ a déposé une demande de mise en liberté provisoire que le Juge d'instruction cantonal a rejetée par ordonnance du 22 mai 2007. Statuant par arrêt rendu le 6 juin 2007 sur recours du prévenu, le Tribunal d'accusation du Tribunal cantonal du canton de Vaud (ci-après: le Tribunal d'accusation) a confirmé cette décision en raison d'un risque de récidive. Il a par ailleurs estimé que le principe de la proportionnalité était respecté compte tenu de la durée de la détention préventive déjà subie, des antécédents de l'intéressé, ainsi que de la gravité des actes qui lui étaient reprochés. Le 16 mai 2007, A._ a déposé une demande de mise en liberté provisoire que le Juge d'instruction cantonal a rejetée par ordonnance du 22 mai 2007. Statuant par arrêt rendu le 6 juin 2007 sur recours du prévenu, le Tribunal d'accusation du Tribunal cantonal du canton de Vaud (ci-après: le Tribunal d'accusation) a confirmé cette décision en raison d'un risque de récidive. Il a par ailleurs estimé que le principe de la proportionnalité était respecté compte tenu de la durée de la détention préventive déjà subie, des antécédents de l'intéressé, ainsi que de la gravité des actes qui lui étaient reprochés. B. Agissant par la voie du recours en matière pénale, A._ demande au Tribunal fédéral principalement de réformer cet arrêt et d'ordonner sa mise en liberté immédiate assortie de l'obligation de suivre un traitement auprès de l'unité socio-éducative du Centre de traitement en alcoologie, à Lausanne, dans le but d'une abstinence à l'alcool, et de l'interdiction de prendre contact, de quelque manière que ce soit, avec B._. Il conclut subsidiairement à l'annulation de l'arrêt attaqué et au renvoi de la cause à l'autorité inférieure pour nouvelle décision dans le sens des considérants. Il requiert l'assistance judiciaire. Le Tribunal d'accusation, le Procureur général du canton de Vaud et le Juge d'instruction cantonal ont renoncé à déposer des observations. 