import sys import json import os cai_dump = sys.argv[1] with open(cai_dump, 'r', encoding='utf-8') as f: data = json.loads(f.read()) character = data['info']['character'] histories = data['histories']['histories'] pygm_json = {} pygm_json['char_name'] = character['name'] pygm_json['char_persona'] = character['description'].replace('\r\n', '\n') pygm_json['char_greeting'] = character['greeting'] pygm_json['world_scenario'] = "" pygm_json['example_dialogue'] = "" base_name = os.path.splitext(cai_dump)[0] pygm_name = '{}_pygm.json'.format(base_name) human_name = "" chatno = 1 with open(pygm_name, 'w') as f: f.write(json.dumps(pygm_json)) for h in histories: pygm_chat_json = {} chats = ['You: ...'] lastname="EbZ30YISqoIogOVBJvL5_VIqtXPJ710mogBVA2ZpNKw" for msg in h['msgs']: text = msg['text'] human = msg['src']['is_human'] name = msg['src']['name'] if human: name = 'You' if (lastname==name): if human: chats += ['{}: ...'.format(character ['name'], text)] else: chats += ['You: ...'] text = text.replace('[NAME_IN_MESSAGE_REDACTED]', human_name) chats += ['{}: {}'.format(name, text)] lastname=name pygm_chat_json['chat'] = chats chat_save_name = '{}_conversation_pygm_chatsave{}.json'.format(base_name,str(chatno)) with open(chat_save_name, 'w') as f: f.write(json.dumps(pygm_chat_json)) chatno += 1