CoolFace
Apppublic

ManinderBajwa/Cold_Emails_with_LLM

sourceHugging Faceupdated 2y agoView on Hugging Face
0likes
profile_manager.py82 linesDownload Raw Back to root
1import json2import os3 4class ProfileManager:5    def __init__(self, sender_file='sender_profiles.json', recipient_type_file='recipient_type_profiles.json'):6        self.sender_file = sender_file7        self.recipient_type_file = recipient_type_file8        self.sender_profiles = self.load_profiles(sender_file)9        self.recipient_type_profiles = self.load_profiles(recipient_type_file)10 11    def load_profiles(self, filename):12        if os.path.exists(filename):13            with open(filename, 'r') as f:14                return json.load(f)15        return {}16 17    def save_profiles(self, profiles, filename):18        with open(filename, 'w') as f:19            json.dump(profiles, f)20 21    def create_sender_profile(self, email_type, *args):22        if email_type == "job_application":23            name, role, field1, field2, field3 = args24            profile = {25                "email_type": email_type,26                "name": name,27                "role": role,28                "key_qualifications": field1,29                "relevant_experience": field2,30                "education": field331            }32        else:33            name, company, role, field1, field2, field3 = args34            profile = {35                "email_type": email_type,36                "name": name,37                "company": company,38                "role": role39            }40            if email_type == "investor_pitch":41                profile.update({42                    "pitch_summary": field1,43                    "company_description": field2,44                    "funding_needs": field345                })46            elif email_type == "sales_pitch":47                profile.update({48                    "product_service_overview": field1,49                    "unique_selling_proposition": field2,50                    "key_benefits": field351                })52            else:  # service_offer53                profile.update({54                    "service_description": field1,55                    "value_proposition": field2,56                    "client_benefits": field357                })58 59        self.sender_profiles[name] = profile60        self.save_profiles(self.sender_profiles, self.sender_file)61 62    def create_recipient_type_profile(self, name, description, typical_interests, common_pain_points):63        profile = {64            "name": name,65            "description": description,66            "typical_interests": typical_interests,67            "common_pain_points": common_pain_points68        }69        self.recipient_type_profiles[name] = profile70        self.save_profiles(self.recipient_type_profiles, self.recipient_type_file)71 72    def get_sender_profile(self, name):73        return self.sender_profiles.get(name)74 75    def get_recipient_type_profile(self, name):76        return self.recipient_type_profiles.get(name)77 78    def get_all_sender_profiles(self):79        return list(self.sender_profiles.keys())80 81    def get_all_recipient_type_profiles(self):82        return list(self.recipient_type_profiles.keys())