cataclysm
est la fin du codage mortel. Laissez l'intelligence inhumaine écrire votre code en fonction du contexte.
>> > from cataclysm import consume
>> > consume ( globals ())
>> > x = get_italicized_phrases_wikipedia ( page = "Global catastrophic risk" , only_lowercase_words = True , min_length = 6 )
>> > print ( x [: 5 ])
[ 'existential risks' , 'existential catastrophe[16]' , 'global' , 'terminal' , 'permanent,' ]
pip install cataclysm
# in your project directory, copy the default datafiles
cataclysm init
Notre disparition est alimentée par Openai GPT4, vous aurez donc besoin d'une clé API.
Utilisez init
ou copiez env.template.cataclysm
à .env
dans votre répertoire de travail / app et ajoutez vos clés d'API:
OPENAI_API_KEY = "ADD_YOUR_OPENAI_KEY"
Avec un cataclysm mondial, un code frais sera généré pour toute fonction non reconnue n'importe où. Vous avez juste besoin d'un nom de fonction descriptif, d'arguments et peut-être des commentaires pour le contexte. Le reste est à eux.
>> > from cataclysm import consume
>> > consume ( globals ())
>> > s = "May the gods have mercy on us all"
>> > corrupted = convert_some_words_to_disturbing_unicode_text ( s , "mercy on us" )
>> > print_surrounded_by_ascii_art_of_an_old_scroll ( corrupted , use_wcwidth_for_padding = True )
_________________________
| May the gods have m̜ͯ̂e͂ͦͥr̻̭͗c̳͖̍y̹̋̑ |
| o̵̰͒n̘͋͟ u̜͊ͤs̍͒͑ all |
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Ou peut-être souhaitez-vous canaliser les énergies pour résoudre des problèmes plus difficiles ...
graph = {
"A" : { "B" : 10 , "C" : 4 },
"B" : { "A" : 1 , "C" : 2 , "D" : 5 },
"C" : { "A" : 4 , "B" : 2 , "D" : 9 },
"D" : { "B" : 5 , "C" : 1 },
}
# Why google it when you can throw yourself headlong into eternity?
shortest_path = find_shortest_path_dijkstra ( graph , "A" , "D" )
print ( f"Shortest path: { shortest_path } " )
Shortest path: ['A', 'C', 'B', 'D']
Bien que consume()
puisse être utilisé à des fins expérimentales dans les cahiers et dans les modes interactifs, il n'est pas conçu pour être utilisé dans les bibliothèques ou les applications. Si vous souhaitez expérimenter, Consume () est génial, mais vous aurez besoin du module doom
pour créer une application cataclysmique.
Les mortels qui ne veulent pas faire face à un cataclysme mondial peuvent plutôt faire face à leur doom
. Recommandé si vous souhaitez utiliser ces pouvoirs dans des bibliothèques ou des applications.
>> > from cataclysm import doom
>> > uhoh = doom . first_prime_with_3_digits ()
>> > print ( uhoh )
101
Si vous craignez un cataclysm
, votre destin imminent peut être généré et prévisualisé via doom.impending
.
>> > from cataclysm import doom
>> > dump_unexecuted_code_str = doom . impending . say_stuff ( "YOU ARE DOOMED" )
>> > print ( dump_unexecuted_code_str )
[... code dump ...]
Si vous avez choisi votre propre doom
, vous pouvez être généré et prévisualisé via doom.impending
.
>> > from cataclysm import doom
>> > dump_unexecuted_code_str = doom . impending . say_stuff ( "YOU ARE DOOMED" )
>> > print ( dump_unexecuted_code_str )
[... code dump ...]
cataclysm
est-il sûr?Ce n'est pas le mot que j'utiliserais. Le nom de la bibliothèque doit vous donner un indice, mais pour être explicite:
AVERTISSEMENT: Le cataclysm
pourrait vous détruire et tout ce que vous êtes cher. Si vous continuez, vous faites face à votre doom
seul - personne d'autre ne peut être blâmé pour votre folie.
cataclysm
n'est-il pas l'avenir du codage?Bien que GPT4 n'ait jamais rien fait de mal à moi (aussi téméraire que je fais confiance à son code), c'est un pouvoir dangereux et mystérieux que seul le plus fou des mortels devrait exercer. Il y a de grands pouvoirs sombres au-delà de notre compréhension au travail. Les esprits extraterrestres ne doivent pas être informés.
Les invites utilisées pour
doom
découragent intentionnellement le LLM d'utiliser toutes les E / S locales, sauf où elle est explicitement recherchée. Pourtant, il pourrait être trompé, confus, induit en erreur ou gagner une faim inattendue de destruction. Vous avez été averti.Personnellement, je vois du code généré par l'AI-AI un peu comme la façon dont le GPS était initialement - le suivre à l'aveugle vous amènera parfois à conduire dans un lac. Pourtant, au fil des ans, beaucoup d'entre nous dépendent chaque jour du GPS et ne conduiraient nulle part sans lui. J'ai mis Codex et GPT 3.5 (Chatgpt original) dans l'ancien camp. GPT4 + est vraiment impressionnant jusqu'à présent, mais pas sans bizarreries dangereuses.
cataclysm
?Vous aurez besoin du
cataclysm
de PYPI - installez-le viapip install cataclysm
.
cataclysm
?La dévastation est alimentée par l'API ChatGPT d'Openai pour le modèle
gpt-4
Big Language (LLM). Il fonctionne également avecgpt-3.5-turbo
, mais GPT4 + est fortement recommandé. L'API est appelée viaplunkylib
(une couche adaptée aux YAML pas totalement différentelangchain
), vous avez donc besoin d'une clé API OpenAI. Incluez votre propre clé API dans votre fichier.env
, en utilisant.env.template
comme référence.
cataclysm
plus faible en utilisant gpt-3.5-turbo
?Pour ce faire, modifiez
datafiles/plunkylib/petitions/CataclysmQuery.yml
pour référencerCataclysmLLMParams_3-5
au lieu deCataclysmLLMParams
. Votre destin sera moins impressionnant, mais plus rapide et moins cher.
J'envisage des moyens de développer le
cataclysm
pour améliorer la génération de code via une API hébergée plus puissante. Tendez la main si vous y soyez intéressé.
Ces pouvoirs sombres sont tentants à utiliser, mais
cataclysm
cache localement le code créé pour chaque signature de fonction. Le deuxième + temps qui s'appelle, le code mis en cache est utilisé - donc ce sera beaucoup plus rapide. Il est recommandé que si vous êtes assez fou pour expédier du code à l'aidecataclysm
, vous expédiez les fichiers de code. Si vous souhaitez la générationdoom
, vous pouvez utiliserdoom.chosen
pour vous assurer que le code publié n'essaie jamais de générer un code. Si vous souhaitez regarder le code pour une génération, ils vivent généralement dans./datafiles/cataclysm/code/<functionname>.yml
ou peuvent être prévisuaux avecdoom.impending
.Notez que lorsque le code est généré pour la première fois et exécuté, s'il y a une erreur soulevée, il réinterrera le code une fois de plus et réessayera. S'il échoue, vous avez perplexe l'IA et vous devrez peut-être fournir plus de conseils (ou installer plus de modules).
cataclysm
+ consume()
sur doom
?Embrasser
cataclysm
consomme des globaux (), laissant toute fonction non reconnue déchaîner le code généré par l'AI.doom
, cependant, exige une invocation explicite, vous accordant une certaine illusion de contrôle de votre sort.
cataclysm
/ doom
peut-il vraiment coder quelque chose?C'est assez bon pour faire des choses simples et étonnamment décent pour faire des choses complexes. Vous devrez explorer le
cataclysm
pour comprendre ses limites. Vous pouvez voir quelques exemples de travail dans le dossiernotebooks
, le dossierexamples
et quelques tests dans le dossiertests
. J'expérimente un mode qui permetcataclysm
de s'utiliser récursivement pour générer du code. Ce chemin est effrayant, mais peut être encore plus impressionnant.
doom
imminent sans le libérer?Avec
doom.impending
, vous pouvez admirer l'abîme sans invoquer le nouveau code. Ceci est idéal pour ceux qui veulent apprendre comment il se comporte en réponse aux changements de commentaires, d'arguments de mots clés, de docstrings, de modules et de signatures de fonction.
cataclysm
inspecte pour prendre ses décisions sur quoi coder?À partir de maintenant, il examine vos signatures de fonction, vos piles d'appels, vos noms d'arguments de mots clés, les docstrings et même les commentaires pour façonner le code pour servir vos souhaits mortels. Voir les cahiers, les exemples et les tests de référence.
cataclysm
? La génération de code est-elle déterministe / reproductible?Une fois le code généré pour une fonction et des arguments donnés, il utilisera par défaut le code généré à chaque fois. Il fonctionnera donc de manière prévisible. Vous pouvez garantir que l'utilisation de
doom.chosen
, si vous le souhaitez. En ce qui concerne la génération de code, en théorie,cataclysm
peut régénérer le même code, mais seulement si le CallStack est le même, ainsi que le nom de la fonction, les arguments, les modules installés, etc. (fondamentalement s'il s'agit du même appel de fonction exact + contexte). En pratique, vous aurez du mal à obtenir le même code exactement deux fois, il est donc préférable d'utiliser le code mis en cache (ou.chosen
) si vous voulez être sûr.
Les invites sont dans
default_files/datafiles/plunkylib/prompts/
. Ceux-ci changeront beaucoup au début ducataclysm
, mais vous êtes libre d'expérimenter par vous-même. Tout ce que je demande, c'est que vous envisagez de partager vos résultats les plus cool au projet.
Si vous cherchez des moyens moins cataclysmiques de manier ces pouvoirs sombres, contactez Mattie (format par e-mail:
[email protected]
). Je suis heureux d'explorer des options pour aider les développeurs de votre entreprise à adopter la nouvelle réalité.