Ce projet contient du code de base, du code obscurci et des scripts d'automatisation utilisés pour tester la capacité des modèles de langage à interpréter le code obscurci. Ceci a été créé pour le plan du projet dans les Language Models and Obfuscated Code situé dans le répertoire Academic_Work . Le document aidera à clarifier ce que la plupart de cela fait parce que ce réadme est assez rude.
Créez le classeur dans lequel vos résultats seront stockés.
Exécutez le script codeLoader.py à partir du répertoire principal à l'aide de la commande python Automation/codeLoader.py .
root_dir_workbook dans l'endroit où votre classeur est stocké.current_workbook sur le nom du classeur que vous avez créé à l'étape première. Maintenant, vous devriez avoir un classeur qui a deux ensembles de feuilles. Ceux qui sont nommés B1 , B2 , .... et les feuilles qui sont nommées O1 , O2 , .... Chaque feuille doit avoir une ligne d'en-tête et le code obscurci. Les feuilles nommées B# devraient contenir tous les obscurcissements pour ce code de base donné. Les feuilles nommées O# devraient contenir tous les obscurcissements de ce type.
Il existe déjà 3 modèles de questions par défaut dans le dossier Automation/Question_Templates . Les questions 1 et 2 inséreront le code de base et le code obscurci avant et après le AND dans le fichier. La question 3 utilise uniquement l'obscurcissement. Pour ajouter une nouvelle question, créez le fichier dans le dossier du modèle de question et créez une copie du fichier questionLoader_Q1.py et modifiez-la pour suivre le format de question de la nouvelle question. Les seules modifications majeures du fichier qui sont nécessaires sont les suivantes: insérer correctement le code dans la nouvelle question lorsque la chaîne de questions est créée et les colonnes dans l'Excel où les informations sont insérées. La variable question_number doit être modifiée dans le nouveau numéro de question. question_column dicte où la question est insérée dans la feuille de calcul. answer_column dicte où la réponse est mise. Le fichier codeLoader.py devra également être modifié pour obtenir les cassettes de note d'exactitude pour la nouvelle question. La feuille de calcul Template devra également être modifiée pour ajouter les en-têtes pour la nouvelle question.
Les trois API du modèle linguistique qui sont déjà configurées sont le Jurassic-2 de l'Openai, le Jurassic-2 de l'AI21 Studio et Google Palm. Les fichiers contenant les appels API sont dans le répertoire Automation . Pour ajouter un autre modèle de langue, créez simplement un fichier contenant une méthode nommée askQuestion qui prend la question en tant que chaîne.
Un nom de fichier Automation/key.py devra être créé pour tenir vos touches API.
Une fois le script codeLoader.py exécuté. Choisissez une question à exécuter à partir des fichiers nommés questionLoader_Q#.py .
root_dir_workbook par le même répertoire utilisé dans codeLoader.pycurrent_workbook par le classeur précédemment créé.LM au nom du LM que vous souhaitez utiliser.Automation à l'aide de la commande python questionLoader_Q1.pyNONE beaucoup de réponses aux questions. C'est une erreur avec l'API et nos questions qui n'ont pas été examinées. Le dossier Compiled_Code et les fichiers C_codeLoader.py et C_questionLoader_Q#.py sont destinés aux orientations futures dans cette recherche. Le dossier Compiled_Code contient la version d'assemblage de tout le code obscurci, créé à l'aide de https://godbolt.org/. Les fichiers C_ sont des versions modifiées des scripts réguliers créés pour fonctionner avec le code compilé. Remarque: Si vous deviez exécuter des questions avec le code compilé, la taille du jeton est trop grande dans de nombreux cas en raison de la durée du code d'assemblage.
Il y a probablement d'autres fichiers aléatoires, mais la plupart des fichiers devraient être fonctionnels.
Cela n'a été testé que sur Windows 10 sur un ordinateur. Si cela fonctionne sur mon ordinateur, je suis sûr que cela fonctionnera sur le vôtre. Le seul logiciel supplémentaire nécessaire est Excel.
openpyxl est utilisée dans ce projet de mise en forme des données dans les feuilles de calcul Excel. La bibliothèque doit être disponible via PIP.