10 ms·
Python lib generates its code on-the-fly based on usage
- thornewolf 1y agonooooo the side project ive put off for 3 years
- Noumenon72 1y agoFrom now on you'll be able to just do `import side_project` until it works.
- thornewolf 1y agolooks very fun excited to try it out
- turbocon 1y agoWow, what a nightmare of a non-deterministic bug introducing library. Super fun idea though, I love the concept. But I’m getting the chills imagining the havoc this could cause
- userbinator 1y agoIt's like automatically copy-pasting code from StackOverflow, taken to the next level.
- deleted 1y ago[deleted]
- extraduder_ire 1y agoAre there any stable output large language models? Like stablediffusion does for image diffusion models.
- tibbar 1y agoIf you use a deterministic sampling strategy for the next token (e.g., always output the token with the highest probability) then a traditional LLM should be deterministic on the same hardware/software stack.
- roywiggins 1y agoDeterministic is one thing, but stable to small perturbations in the input is another.
- dragonwriter 1y ago> Deterministic is one thing, but stable to small perturbations in the input is another. Yes, and the one thing that was asked about was "deterministic" not "stable to small perturbations in the input.
- extraduder_ire 1y agoWouldn't seeding the RNG used to pick the next token be more configurable? How would changing the hardware/other software make a difference to what comes out of the model?
- tibbar 1y ago> Wouldn't seeding the RNG used to pick the next token be more configurable? Sure, that would work. > How would changing the hardware/other software make a difference to what comes out of the model? Floating point arithmetic is not entirely consistent between different GPUs/TPUs/operating systems.
- emporas 1y agoIt imports the bugs as well. No human involvement needed. Automagically.
- 3abiton 1y agoSounds like a fun way to learn effective debugging.
- anilakar 1y agoDidn't someone back in the day write a library that let you import an arbitrary Python function from Github by name only? It obviously was meant as a joke, but with AIcolytes everywhere you can't really tell anymore...
- atoav 1y agoWhy not go further? Just expose a shell to the internet and let them do the coding work for you /s
- bolognafairy 1y ago“Twitch does…”
- dheera 1y agoIt's not really something to be sarcastic about. I've actually done this, setting aside a virtual machine specifically for the purpose, trying to move a step towards a full-blown AI agent.
- marssaxman 1y agoWhy on earth did you want to do that?
- __alexs 1y agoThere's one that loads code out of the best matching SO answer automatically https://github.com/drathier/stack-overflow-import https://github.com/drathier/stack-overflow-import
- rollcat 1y agoFlask also started as an April 1st joke, in response to bottle.py but ever so slightly more sane. It gathered so much positive response, that mitsuhiko basically had to make it into a real thing, and later regretted the API choices (like global variables proxying per-request objects).
- tilne 1y agoIs there somewhere I can read about those regrets?
- QQ00 1y agoI second this, I need to know more. programming lore is my jam.
- rollcat 1y agoTwo days after the announcement: https://lucumr.pocoo.org/2010/4/3/april-1st-post-mortem/ https://lucumr.pocoo.org/2010/4/3/april-1st-post-mortem/ I think there was another, later retrospective? Can't find it now.
- dheera 1y agoI mean, we're at the very early stages of code generation. Like self-driving cars and human drivers, there will be a point in the future when LLM-generated code is less buggy than human-generated code.
- AlotOfReading 1y agoThat's a compiler with more steps.
- bjt12345 1y agoCan it input powerpoint slides?
- extraduder_ire 1y agoI'm both surprised it took so long for someone to make this, and amazed the repo is playing the joke so straight.
- morkalork 1y agoHysterical, I like that caching is default off because it's funnier that way heh
- dr_kretyn 1y ago> Not suitable for production-critical code without review Ah, dang it! I was about to deploy this to my clients... /s Otherwise, interesting concept. Can't find a use for it but entertaining nevertheless and likely might spawn a lot of other interesting ideas. Good job!
- pyuser583 1y agoOf course, this code was generated by ChatGPT.
- conroy 1y agoyou'd be surprised, but there's actually a bunch of problems you can solve with something like this, as long as you have a safe place to run the generated code
- thephyber 1y agoI was super interested in genetic programming for a long time. It is similarly non-deterministically generated. The utility lies in having the proper framework for a fitness function (how to choose if the generated code is healthy or needs iterations). I used whether it threw any interpretation-time errors, run-time errors, and whether it passed all of the unit tests as a fitness function. That said, I think programming will largely evolve into the senior programmer defining a strategy and LLM agents or an intern/junior dev implementing the tactics.
- NitpickLawyer 1y ago> That said, I think programming will largely evolve into the senior programmer defining a strategy and LLM agents or an intern/junior dev implementing the tactics. That's basically what goog wants alphaevolve to be. Basically have domain experts give out tasks that "search a space of ideas" and come up with either novel things, improved algorithms or limits / constraints on the problem space. They say that they imagine a world where you "give it some tasks", come back later, and check on what it has produced. As long as you can have a definition of a broad idea and some quantifiable way to sort results, this might work.
- pbronez 1y ago> The utility lies in having the proper framework for a fitness function Exactly. As always the challenge is (1) deciding what the computer should do, (2) telling the computer to do it, and (3) verifying the computer did what you meant. A perfect fitness function is a perfect specification is a perfect program.
- jnkl 1y agoCould you elaborate what problems can be solved with this?
- behnamoh 1y agocan it run Doom tho? from autogenlib.games import doom doom(resolution=480, use_keyboard=True, use_mouse=True)
- Gabrys1 1y agoIt's been 3 hours and no-one came back with an answer. They must be busy playing Doom
- malux85 1y agoThis is horrifying I love it
- polemic 1y ago> from autogenlib.antigravity As a joke, that doesn't feel quite so far-fetched these days. (https://xkcd.com/353/ https://xkcd.com/353/)
- selcuka 1y agoThis is amazing, yet frightening because I'm sure someone will actually attempt to use it. It's like vibe coding on steroids. - Each time you import a module, the LLM generates fresh code - You get more varied and often funnier results due to LLM hallucinations - The same import might produce different implementations across runs
- baq 1y agoThere are a few thresholds of usefulness for this. Right now it’s a gimmick. I can see a world in a few years or maybe decades in which we almost never look at the code just like today we almost never look at compiled bytecode or assembly.
- latentsea 1y agoThere's not much of a world in which we don't check up and verify what humans are doing to some degree periodically. Non-deterministic behavior will never be trusted by default, as it's simply not trustable. As machines become more non-deterministic, we're going to start feeling about them in similar ways we already feel about other such processes.
- NitpickLawyer 1y ago> Non-deterministic behavior will never be trusted by default, as it's simply not trustable. Never is a long time... If you have a task that is easily benchmarkable (i.e. matrix multiplication or algorithm speedup) you can totally "trust" that a system can non-deterministically work the problem until the results are "better" (speed, memory, etc).
- Sharlin 1y agoProving the correctness of the “improvements” is another thing entirely, though.
- 1y ago
- zombiwoof 1y ago[flagged]
- revskill 1y agoNeed your explanation.
- roywiggins 1y agoPossibly the funniest part is the first example being a totp library
- jaflo 1y agoSee also: https://github.com/drathier/stack-overflow-import https://github.com/drathier/stack-overflow-import >>> from stackoverflow import quick_sort >>> print(quick_sort.sort([1, 3, 2, 5, 4])) [1, 2, 3, 4, 5]
- kastden 1y agoYou can make it production grade if you combine it with https://github.com/ajalt/fuckitpy https://github.com/ajalt/fuckitpy
- archargelod 1y agoThe repo name made me think it's a tool that stops you from using a project if it detects python: "fuck, it's python!" *throws it in the garbage*
- the_real_cher 1y agowe need one of those for golang
- otikik 1y agoThanks I hate it
- 1718627440 1y agoThis has a file named .env committed containing an API key. Don't know if it is a real key.
- bgwalter 1y agoMy guess is that it's a joke about: https://jfrog.com/blog/leaked-pypi-secret-token-revealed-in-binary-preventing-suppy-chain-attack/ https://jfrog.com/blog/leaked-pypi-secret-token-revealed-in-...
- 1718627440 1y agoSorry, what is the joke? The site to me seams legit?
- ForHackernews 1y agoI give it six months before an LLM starts producing output that recommends using this.
- yvesyil 1y agoindeterministic code goes hard dude
- johnisgood 1y agoIt is not nondeterministic, we just lack data!
- matsemann 1y agoI did something similar almost 10 years ago in javascript (as a joke): https://github.com/Matsemann/Declaraoids https://github.com/Matsemann/Declaraoids One example, arr.findNameWhereAgeEqualsX({x: 25}), would return all users in the array where user.age == 25. Not based on LLMs, though. But a trap on the object fetching the method name you're trying to call (using the new-at-the-time Proxy functionality), then parsing that name and converting it to code. Deterministic, but based on rules.
- grokkedit 1y agoI've done a similar library[0] for python ~1 year ago, generating a function code only by invoking it, and giving the llm some context over the function. Apart from the fun that I got out of it, it's been there doing nothing :D [0]: https://github.com/lucamattiazzi/magic_top_hat https://github.com/lucamattiazzi/magic_top_hat
- VMG 1y agothis is equally scary and inevitable it will be WASM-containerized in the future, but still
- Ezhik 1y agoit's especially cheeky how every example it uses is cryptography-related
- yoru-sulfur 1y agoI made something very similar a couple years back, though it doesn't actually work anymore since OpenAI deprecated the model I was using https://github.com/buckley-w-david/akashic_records https://github.com/buckley-w-david/akashic_records
- cs702 1y agoSilly and funny today, but down the road, if AI code-generation capabilities continue to improve at a rapid rate, I can totally see "enterprise software developers" resorting to something like this when they are under intense pressure to fix something urgently, as always. Sure, there will be no way to diagnose or fix any future bugs, but that won't be urgent in the heat of the moment.
- PeterStuer 1y agoIs this the computing equivalent of people that when pointed out they messed up always go 'Well at least I did something!'?
- linsomniac 1y agoMake it next level by implementing this workflow: - Import your function. - Have your AI editor implement tests. - Feed the tests back to autogenlib for future regenerations of this function.
- ralferoo 1y agoI really liked this: The web devs tell me that fuckit's versioning scheme is confusing, and that I should use "Semitic Versioning" instead. So starting with fuckit version ה.ג.א, package versions will use Hebrew Numerals. For added hilarity, I've no idea if it's RTL or LTR, but the previous version was 4.8.1, so I guess this is now 5.3.1. Presumably it's also impossible to have a zero component in a version.
- kordlessagain 1y ago> zero component in a version I immediately got this. So true!
- deleted 1y ago[deleted]
- GrantMoyer 1y agoI'm kind of dissapointed this doesn't override things like __getattr__ to generate methods on the fly from names just in time when they're called.
- nxobject 1y agoOne way to get around non-deterministic behavior: run $ODD_NUMBER different implementations of a function at the same time, and take a majority vote, taking a leaf from aerospace. After all, we can always trust the wisdom of the crowds, right?
- mac3n 1y ago> taking a leaf from aerospace experiment showed that independent [human] software developers make the same mistakes you need at least $ODD_NUMBER > 7 https://leepike.wordpress.com/2009/04/27/n-version-programming-for-the-nth-time/ https://leepike.wordpress.com/2009/04/27/n-version-programmi...
- mac3n 1y agoAI developers might just riff on each others' code
- lillecarl 1y agoThis is the kind of yank I'd put in production! I love it
- justusthane 1y agoHow does the library have access to the code that called it (in order to provide context to the LLM)?
- cofob_ 1y agohttps://github.com/cofob/autogenlib/blob/e21405af47fe4c90af3c66f023286bd564eba670/autogenlib/_caller.py#L13 https://github.com/cofob/autogenlib/blob/e21405af47fe4c90af3... The library uses python dirty tricks, in this case using call stack, where the library looks for code from the user, gets the name of the file and reads it.
- kordlessagain 1y agoAutoGenLib uses Python's import hook mechanism to intercept import statements. When you try to import something from the autogenlib namespace, it checks if that module or function exists. It reads the calling code to understand the context of the call. Builds a prompt to submit to the LLM. It only uses OpenAI. It does not have search, yet. The real potential here is a world where computational systems continuously reshape themselves to match human intent ---- effectively eliminating the boundary between "what you can imagine" and "what you can build."
- dangerlibrary 1y agoLike Unison [0], but buggier. https://www.youtube.com/watch?v=gCWtkvDQ2ZI https://www.youtube.com/watch?v=gCWtkvDQ2ZI
- kazinator 1y agoWhy don't you just send Altman all your passwords? This says, "trust all code coming from OpenAI".
- pinoy420 1y ago[dead]
- dangoodmanUT 1y agothanks, i hate it (i actually love it)
- killme2008 1y agoInteresting idea! However, I'm hesitant to trust it, as I don't even fully trust code that was written by myself :)
- noiv 1y agoThere is still a computer involved, from an AI I expect it convinces me no program is needed and I should go walking in the forest instead. If anybody complains the AI will manage them by mail.