import os import json iedid_dir = 'c:/Users/toecm/Documents/Pure Versation/pureversation/backend/IEDID' lab_profiles_dir = 'c:/Users/toecm/Documents/Pure Versation/pureversation/backend/lab_profiles' # Top languages and representative dialects top_languages = { 'Mandarin Chinese': ['Standard Mandarin', 'Beijing Dialect', 'Taiwanese Mandarin', 'Singaporean Mandarin'], 'Spanish': ['Castilian Spanish', 'Mexican Spanish', 'Argentine Spanish', 'Colombian Spanish', 'Caribbean Spanish'], 'Hindi': ['Standard Hindi', 'Bhojpuri', 'Awadhi', 'Haryanvi', 'Rajasthani'], 'Arabic': ['Modern Standard Arabic', 'Egyptian Arabic', 'Levantine Arabic', 'Gulf Arabic', 'Maghrebi Arabic'], 'Bengali': ['Rarhi', 'Varendri', 'Kamarupi', 'Bangali', 'Sylheti'], 'Portuguese': ['Brazilian Portuguese', 'European Portuguese', 'Angolan Portuguese', 'Mozambican Portuguese'], 'Russian': ['Northern Russian', 'Central Russian', 'Southern Russian'], 'Japanese': ['Kanto', 'Kansai', 'Kyushu', 'Tohoku'], 'Western Punjabi': ['Majhi', 'Pothohari', 'Jhangochi', 'Shahpuri'], 'Marathi': ['Standard Marathi', 'Varhadi', 'Konkani', 'Deshi'], 'Telugu': ['Coastal Telugu', 'Rayalaseema', 'Telangana'], 'Wu Chinese': ['Shanghainese', 'Suzhounese', 'Wenzhounese'], 'Turkish': ['Istanbul Turkish', 'Rumelian', 'Anatolian'], 'Korean': ['Seoul Dialect', 'Gyeongsang Satoori', 'Jeolla Satoori', 'Chungcheong Satoori', 'Jeju Dialect'], 'French': ['Metropolitan French', 'Quebec French', 'African French', 'Belgian French', 'Swiss French'], 'German': ['High German', 'Low German', 'Bavarian', 'Austrian German', 'Swiss German'], 'Vietnamese': ['Northern Vietnamese', 'Central Vietnamese', 'Southern Vietnamese'], 'Tamil': ['Central Tamil', 'Madurai Tamil', 'Kongu Tamil', 'Chennai Tamil', 'Sri Lankan Tamil'], 'Yue Chinese (Cantonese)': ['Guangzhou Cantonese', 'Hong Kong Cantonese', 'Macau Cantonese'], 'Urdu': ['Dakhini', 'Rekhta'], 'Javanese': ['Central Javanese', 'Eastern Javanese', 'Western Javanese'], 'Italian': ['Standard Italian', 'Neapolitan', 'Sicilian', 'Venetian'], 'Egyptian Arabic': ['Cairene', 'Saidi', 'Alexandrian'], 'Gujarati': ['Standard Gujarati', 'Kathiawadi', 'Surati', 'Pattani'], 'Iranian Persian': ['Tehrani', 'Shirazi', 'Isfahani', 'Mashhadi'], 'Bhojpuri': ['Northern Bhojpuri', 'Southern Bhojpuri', 'Western Bhojpuri'], 'Min Nan Chinese': ['Hokkien', 'Teochew', 'Hainanese'], 'Hakka Chinese': ['Meixian', 'Hailu', 'Sixian'], 'Jin Chinese': ['Bingzhou', 'Lüliang', 'Zhangjiakou-Hohhot'], 'Hausa': ['Kano', 'Sokoto', 'Zaria', 'Katsina'], 'Kannada': ['Mysore', 'Hubli', 'Mangalore', 'Kundapura'], 'Indonesian': ['Standard Indonesian', 'Jakarta Indonesian', 'Papuan Malay'], 'Polish': ['Greater Polish', 'Lesser Polish', 'Masovian', 'Silesian'], 'Yoruba': ['Standard Yoruba', 'Ibadan', 'Egba', 'Ijebu'], 'Xiang Chinese': ['Changyi', 'Loushao', 'Chenxü'], 'Malayalam': ['South Kerala', 'Central Kerala', 'North Kerala'], 'Odia': ['Mughalbandi', 'Sambalpuri', 'Ganjami', 'Desia'], 'Maithili': ['Standard Maithili', 'Bajjika', 'Angika'], 'Burmese': ['Standard Burmese', 'Mandalay', 'Yangon'], 'Sunda': ['Priangan', 'Banten', 'Cirebon'], 'Sudanese Arabic': ['Khartoum', 'Western Sudanese'], 'Algerian Arabic': ['Algiers', 'Oran', 'Constantine'], 'Moroccan Arabic': ['Rabat', 'Casablanca', 'Fes'], 'Ukrainian': ['Northern Ukrainian', 'Southwestern Ukrainian', 'Southeastern Ukrainian'], 'Igbo': ['Standard Igbo', 'Owerri', 'Onitsha', 'Umuahia', 'Orlu'], 'Northern Uzbek': ['Tashkent', 'Fergana', 'Khorezm'], 'Sindhi': ['Vicholi', 'Lari', 'Thari', 'Kachhi'], 'North Levantine Arabic': ['Syrian', 'Lebanese'], 'Romanian': ['Moldavian', 'Wallachian', 'Transylvanian'], 'Tagalog': ['Manila', 'Batangas', 'Bulacan', 'Tayabas'], 'Dutch': ['Hollandic', 'Brabantian', 'Limburgish'], 'Saʽidi Arabic': ['Upper Egyptian'], 'Gan Chinese': ['Nanchang', 'Yichun', 'Ji\'an'], 'Amharic': ['Gondar', 'Gojjam', 'Shoa'], 'Northern Pashto': ['Peshawari', 'Kabul'], 'Magahi': ['Standard Magahi', 'Khortha'], 'Thai': ['Central Thai', 'Khorat', 'Southern Thai'], 'Saraiki': ['Multani', 'Derawali', 'Thali'], 'Khmer': ['Standard Khmer', 'Northern Khmer', 'Western Khmer'], 'Chhattisgarhi': ['Kedri', 'Khandi', 'Laria'], 'Somali': ['Northern Somali', 'Benaadir', 'Maay'], 'Malay': ['Standard Malay', 'Kelantanese', 'Terengganu'], 'Cebuano': ['Standard Cebuano', 'Boholano', 'Leyteño'], 'Nepali': ['Standard Nepali', 'Eastern Nepali', 'Western Nepali'], 'Mesopotamian Arabic': ['Baghdadi', 'Basrawi', 'Moslawi'], 'Assamese': ['Eastern Assamese', 'Central Assamese', 'Kamrupi', 'Goalpariya'], 'Sinhalese': ['Standard Sinhala', 'Kandyan', 'Southern Sinhala'], 'Northern Kurdish': ['Kurmanji', 'Badini'], 'Hejazi Arabic': ['Meccan', 'Jeddawi', 'Medani'], 'Nigerian Fulfulde': ['Kano', 'Katsina', 'Sokoto'], 'Bavarian': ['North Bavarian', 'Central Bavarian', 'South Bavarian'], 'South Azerbaijani': ['Tabrizi', 'Urmia'], 'Greek': ['Standard Greek', 'Cypriot Greek', 'Cretan Greek', 'Pontic Greek'], 'Chittagonian': ['Standard Chittagonian', 'Rohingya'], 'Kazakh': ['Northeastern Kazakh', 'Southern Kazakh', 'Western Kazakh'], 'Deccan': ['Standard Deccani'], 'Hungarian': ['Alföld', 'Transdanubian', 'Székely'], 'Kinyarwanda': ['Standard Kinyarwanda'], 'Zulu': ['Standard Zulu', 'Lala', 'Qwabe'], 'South Levantine Arabic': ['Palestinian', 'Jordanian'], 'Tunisian Arabic': ['Tunis', 'Sfax', 'Sahel'], 'Sanaani Arabic': ['Sana\'a'], 'Min Bei Chinese': ['Jian\'ou'], 'Southern Pashto': ['Kandahari', 'Quetta'], 'Rundi': ['Standard Kirundi'], 'Czech': ['Common Czech', 'Moravian', 'Silesian'], 'Taʽizzi-Adeni Arabic': ['Ta\'izzi', 'Adeni'], 'Uyghur': ['Central Uyghur', 'Hotan', 'Lop'], 'Min Dong Chinese': ['Fuzhou'], 'Sylheti': ['Standard Sylheti'], 'Swahili': ['Kiunguja', 'Kimvita', 'Amu', 'Mrimima', 'Pemba'] } for lang, dialects in top_languages.items(): # 1. Create IEDID lang_data_dir = os.path.join(iedid_dir, lang, 'data') os.makedirs(lang_data_dir, exist_ok=True) for dialect in dialects: csv_path = os.path.join(lang_data_dir, f"{dialect}.csv") if not os.path.exists(csv_path): with open(csv_path, 'w', encoding='utf-8') as f: f.write("phrase,clarification\n") # 2. Create lab_profiles lang_persona_dir = os.path.join(lab_profiles_dir, lang) os.makedirs(lang_persona_dir, exist_ok=True) for dialect in dialects: persona_path = os.path.join(lang_persona_dir, f"{dialect} Persona.json") if not os.path.exists(persona_path): with open(persona_path, 'w', encoding='utf-8') as f: json.dump({"language": lang, "dialect": dialect, "system_prompt": f"You are a native speaker of {dialect} ({lang}, f)."}, f) # Just a minimal stub json f.write('{"name": "' + dialect + ' Persona"}') print("Languages expanded successfully!")