[HN Gopher] Maccarone: AI-managed code blocks in Python ___________________________________________________________________ Maccarone: AI-managed code blocks in Python Author : silverthorn Score : 55 points Date : 2023-08-24 21:02 UTC (1 hours ago) (HTM) web link (github.com) (TXT) w3m dump (github.com) | Nullabillity wrote: | "Hallucination isn't a real problem, people will always | scrutinize the generated code!" | | Sigh... | skybrian wrote: | Assuming you're using source control properly and read the diff | before running it, I guess this is one way to make sure that a | comment matches the code? If the bot changes it, maybe your | comment wasn't clear enough? | panarky wrote: | It's so awesome to learn a new term like "macaronic language". | | https://en.wikipedia.org/wiki/Macaronic_language | | I finally have the right term to describe the warning signs from | 1960's-era mainframes that coined "blinkenlichten". | | https://en.wikipedia.org/wiki/Blinkenlights | | There should be a German term for this, but "gefalschter | deutscher" doesn't quite capture it. | verdverm wrote: | Would python decorators be better for something like this? | | I always get squeamish when I see magic comments | malux85 wrote: | Decorators are a runtime construct, this is a code-writing-time | feature, wouldn't it be confusing to have Maccarone find the | decorators at write-time that then did nothing at runtime? | uranusjr wrote: | There are examples of decorators having no runtime effects, | such as typing.overload. Bit comments are probably more | flexible here since it allows arbitrary blocks, not just | function/class scopes. | orf wrote: | How would not having the source code be present/pre- | generated, and thus needing to generate it at runtime, be | an example of a decorator having no runtime effects? | nkrumm wrote: | I had the urge to try this out a while back, here's what | I came up with: https://gist.github.com/nkrumm/2b154ea204 | 1511233079222373c83... | | The decorator invokes AI completion only the first time | the function is run. | | edit: I lost interest before I was able to get arguments | to work -\\_(tsu)_/- | orf wrote: | Yea, that's cool and very possible, but it's a runtime | effect | alexeldeib wrote: | I guess comments provide a simple paradigm for many languages | verdverm wrote: | comments are in most languages, so I can see that angle, but | you still have to be able to parse all supported languages, | no small feat | | you can alternatively split generated code from human written | code with files, keep the mapping in something more | structured like a config file | | I just normally see a better way to do the same thing a magic | comment does, generally speaking. There is typically a better | language construct if you limit yourself to that language | (most common), and config files offer much more structure | with existing tooling (mostly decode in your preferred | language) | skybrian wrote: | This is leaving a comment for another programmer, not the | compiler or interpreter. It's what comments are for, actually, | like writing a TODO. | | You should be squeamish about running the code without reading | it first, given that you're pair-programming with a bot. | rbdixon wrote: | Here is a framework which uses decorators to delegate runtime | behavior to an LLM. Not quite what you meant but the closest | I've seen. | | https://askmarvin.ai/components/ai_function/ | anotherpaulg wrote: | Very cool project. How reliable are you finding your prompts? | They look like good choices based on my experience prompting | GPT-3.5 and 4 for code editing. | | FYI, I think my open source tool aider would work out of the box | to serve this use case. You would just run: aider | file.py --msg "implement the comments" | | Of course aider works with any popular language, not just python. | And it can do a lot of other coding tasks. It's like pair | programming with an AI. | | https://github.com/paul-gauthier/aider ___________________________________________________________________ (page generated 2023-08-24 23:00 UTC)