cataclysm
ist das Ende der sterblichen Kodierung. Lassen Sie Inhuman Intelligence Ihren Code basierend auf dem Kontext schreiben.
>> > 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
Unser Tod wird von OpenAI GPT4 angetrieben, sodass Sie einen API -Schlüssel von ihnen benötigen.
Verwenden Sie init
oder Copy env.template.cataclysm
, um in Ihrem Arbeits-/App -Verzeichnis .env
zu. Fügen Sie dort Ihre API -Schlüssel hinzu:
OPENAI_API_KEY = "ADD_YOUR_OPENAI_KEY"
Mit einem globalen Katastrophen -Code wird neuer Code für jede nicht erkannte Funktion überall generiert. Sie benötigen nur einen deskriptiven Funktionsnamens, Argumente und möglicherweise einige Kommentare für den Kontext. Der Rest liegt bei ihnen.
>> > 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 |
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Oder vielleicht möchten Sie die Energien kanalisieren, um schwierigere Probleme zu lösen ...
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']
Während consume()
für experimentelle Zwecke in Notebooks und in interaktiven Modi verwendet werden kann, ist es nicht so konzipiert, dass es in Bibliotheken oder Apps verwendet werden kann. Wenn Sie experimentieren möchten, ist Consume () großartig, aber Sie benötigen das doom
-Modul, um eine App -Katastrophe zu erstellen.
Sterbliche, die nicht bereit sind, sich einer globalen Katastrophe zu stellen, können sich stattdessen mit ihrem doom
stellen. Empfohlen, wenn Sie diese Befugnisse in Bibliotheken oder Apps verwenden möchten.
>> > from cataclysm import doom
>> > uhoh = doom . first_prime_with_3_digits ()
>> > print ( uhoh )
101
Wenn Sie eine cataclysm
fürchten, kann Ihr bevorstehendes Schicksal über doom.impending
erzeugt und vorsichtigt werden.
>> > from cataclysm import doom
>> > dump_unexecuted_code_str = doom . impending . say_stuff ( "YOU ARE DOOMED" )
>> > print ( dump_unexecuted_code_str )
[... code dump ...]
Wenn Sie Ihr eigenes doom
ausgewählt haben, können Sie das drohende Schicksal über doom.impending
erzeugen und vorsichtigen.
>> > from cataclysm import doom
>> > dump_unexecuted_code_str = doom . impending . say_stuff ( "YOU ARE DOOMED" )
>> > print ( dump_unexecuted_code_str )
[... code dump ...]
cataclysm
sicher?Das ist nicht das Wort, das ich verwenden würde. Der Bibliotheksname sollte Ihnen einen Hinweis geben, aber explizit sein:
Warnung: Die cataclysm
könnte Sie und alles, was Sie sich lieben, zerstören. Wenn Sie vorgehen, stellen Sie sich Ihrem doom
allein gegenüber- niemand sonst kann für Ihre Torheit verantwortlich gemacht werden.
cataclysm
?Während GPT4 mir noch nie etwas falsch gemacht hat (so rücksichtslos wie ich seinem Code vertraue), ist dies eine gefährliche und mysteriöse Kraft, die nur die Verrückten von Sterblichen eindämmen sollten. Es gibt große, dunkle Kräfte, die über unser Verständnis bei der Arbeit hinausgehen. Außerirdische Köpfe dürfen sich nicht darum kümmern.
Die Eingabeaufforderung (en), die für
doom
verwendet wird, richten die LLM absichtlich davon ab, lokale E/A zu verwenden, außer wo es ausdrücklich gesucht wird. Dennoch könnte es ausstrahlt, verwirrt, irregeführt oder einen unerwarteten Hunger nach Zerstörung erlangen. Sie wurden gewarnt.Ich persönlich sehe Ai-generierte Code sehr ähnlich, wie GPS anfänglich war-danach führt Sie blind dazu, in einen See zu fahren. Doch im Laufe der Jahre sind viele von uns jeden Tag auf GPS angewiesen und würden nirgendwo ohne sie fahren. Ich habe Codex und GPT 3.5 (Original -Chatgpt) in das frühere Lager eingestellt. GPT4+ ist bisher wirklich beeindruckend, aber nicht ohne gefährliche Macken.
cataclysm
zugreifen?Sie benötigen die
cataclysm
von PYPI- installieren Sie sie überpip install cataclysm
.
cataclysm
herbeizuführen?Die Verwüstung wird von OpenAs Chatgpt-API für das
gpt-4
Großsprachmodell (LLM) angetrieben. Es funktioniert auch mitgpt-3.5-turbo
, aber GPT4+ wird dringend empfohlen. Die API wird überplunkylib
(eine yaml-freundliche Schicht nicht ganz anders alslangchain
) bezeichnet, sodass Sie einen OpenAI-API-Schlüssel benötigen. Fügen Sie Ihren eigenen API -Schlüssel in Ihre.env
-Datei mit.env.template
als Referenz ein.
gpt-3.5-turbo
mit einer schwächeren cataclysm
experimentieren?Bearbeiten Sie dazu
datafiles/plunkylib/petitions/CataclysmQuery.yml
aufCataclysmLLMParams_3-5
anstelle vonCataclysmLLMParams
. Ihr Schicksal ist weniger beeindruckend, aber schneller und billiger.
Ich überlege, wie ich die
cataclysm
ausbauen kann, um die Code -Erzeugung über eine leistungsstärkere API zu verbessern. Greifen Sie zu, wenn Sie daran interessiert sind.
Diese dunklen Kräfte sind verlockend zu bedienen, aber
cataclysm
-Caches -Code zwischen den für jede Funktionssignatur erstellten Code. Die zweite+ Zeit, die es genannt wird, wird der zwischengespeicherte Code verwendet- es wird also viel schneller. Es wird empfohlen, dass Sie die Codedateien versenden, wenn Sie verrückt genug sind, um Code mitcataclysm
zu versenden. Wenn Sie die Erzeugung vondoom
-Erzeugen möchten, können Siedoom.chosen
verwenden, um sicherzustellen, dass der freigegebene Code nie versucht, Code zu generieren. Wenn Sie sich den Code für eine Generation ansehen möchten, leben sie normalerweise in./datafiles/cataclysm/code/<functionname>.yml
oder können mitdoom.impending
vorgestellt werden.Beachten Sie, dass der Code, der zum ersten Mal generiert und ausgeführt wird, bei einem Fehler aufgenommen wird, er den Code noch einmal wiedergeneriert und erneut versucht. Wenn es fehlschlägt, haben Sie die KI verblüfft und möglicherweise mehr Anleitung (oder mehr Module installieren).
cataclysm
+ consume()
über doom
?Die Umarmung von
cataclysm
verbraucht Global (), wodurch eine nicht erkannte Funktion den Code entfesselt hat.doom
erfordert jedoch eine explizite Berufung und gewährt Ihnen eine gewisse Illusion der Kontrolle über Ihr Schicksal.
cataclysm
/ doom
wirklich etwas codieren?Es ist ziemlich gut darin, einfache Dinge zu tun und überraschend anständig in komplexen Dingen zu tun. Sie müssen die
cataclysm
untersuchen, um ihre Grenzen zu verstehen. Sie können einige Arbeitsbeispiele im Ordnernotebooks
,examples
und einige Tests im Ordnertests
sehen. Ich experimentiere mit einem Modus, in demcataclysm
sich selbst rekursiv verwendet, um Code zu generieren. Dieser Weg ist beängstigend, kann aber noch beeindruckender sein.
doom
, ohne es zu entfesseln?Mit
doom.impending
können Sie sich in den Abgrund sehen, ohne den neuen Code aufzurufen. Dies ist ideal für diejenigen, die lernen möchten, wie es sich als Antwort auf Änderungen in Kommentaren, Keyword -Argumenten, Docstrings, Modulen und Funktionssignaturen verhält.
cataclysm
, um seine Entscheidungen darüber zu treffen, was zu codieren ist?Ab sofort befasst sich Ihre Funktionssignaturen, rufen Sie Stapel, Namensargumentnamen, Docstrings und sogar Kommentare an, um den Code zu formen, um Ihre sterblichen Wünsche zu erfüllen. Siehe Notebooks, Beispiele und Tests als Referenz.
cataclysm
vorhersagen? Ist die Code-Generation deterministisch / wiederholbar?Sobald der Code für eine bestimmte Funktion und Argumente generiert wurde, wird der generierte Code jedes Mal standardmäßig verwendet. Es wird also vorhersehbar laufen. Sie können garantieren, dass Sie
doom.chosen
verwenden, wenn Sie möchten. Wenn es um die Codegenerierung geht, kanncataclysm
theoretisch denselben Code regenerieren, aber nur, wenn der CallStack der gleiche ist, ebenso wie der Funktionsname, Argumente, installierte Module usw. (im Grunde genommen, wenn es sich um den gleichen genauen Funktionsaufruf + Kontext handelt). In der Praxis werden Sie es schwierig finden, den genauen Code zweimal zu erhalten. Verwenden Sie daher am besten den zwischengespeicherten Code (oder.chosen
), wenn Sie sicher sein möchten.
Die Eingabeaufforderungen finden Sie in
default_files/datafiles/plunkylib/prompts/
. Diese werden sich in den frühen Tagen dercataclysm
stark verändern, aber Sie können selbst experimentieren. Ich frage nur, dass Sie in Betracht ziehen, Ihre coolsten Erkenntnisse an das Projekt zu teilen.
Wenn Sie weniger katastrophale Möglichkeiten suchen, um diese dunklen Kräfte auszuüben, wenden Sie sich an Mattie (E -Mail -Format:
[email protected]
). Ich freue mich, Optionen zu erkunden, um die Entwickler Ihres Unternehmens zu helfen, die neue Realität zu nutzen.