Ask HN: Can ChatGPT generate fully functional code?
23 points| midspectrum | 3 years ago
I'm curious to know what are some of the best prompts to use on ChatGPT to understand its full-fledged capability as a newbie developer.
One of the things I noticed, is that it produces the requested code in the cleanest manner but it's not complete. For instance, I tried the prompt - "give me the python code for TicTacToe Game" and the code produced was incomplete.
Have you all encountered the same or my prompt is inappropriate?
[+] [-] tux3|3 years ago|reply
ChatGPT is sensitive to how you prompt it, and it's designed to work as a dialogue where you ask further questions and it can refine its answer.
It can already write reasonable working code, although you shouldn't expect it to spit out entire working programs when the prompt is Gimme Teh Codez without further details. That being said, AI capabilities only get better with time, so I think it'd be shortsighted to dismiss its potential because of its current limitations.
If the pace keeps up, companies with access to large language models in a few years could have a large advantage on legacy programming, the same way programmers in high-level languages have a massive productivity advantage on 1970's low-level assembly programmers. You give up a little more control, but you save time.
[+] [-] hdjjhhvvhga|3 years ago|reply
Not just that: for an average programmer the compiler will optimize the code much better than if it was done by hand. Something similar can happen down the lane.
[+] [-] herpderperator|3 years ago|reply
[+] [-] ptsneves|3 years ago|reply
[+] [-] franky47|3 years ago|reply
[+] [-] unknown|3 years ago|reply
[deleted]
[+] [-] sykofant|3 years ago|reply
[+] [-] spaceman_2020|3 years ago|reply
You can't tell it to "create a CRUD app", but you can ask it to create a nodejs function that gets all the records from a mongodb database.
[+] [-] davidkunz|3 years ago|reply
const express = require('express')
const app = express()
// define the model for a user
const User = {
}// create a new user
app.post('/users', (req, res) => {
})// read a list of users
app.get('/users', (req, res) => {
})// read a single user
app.get('/users/:id', (req, res) => {
})// update a user
app.put('/users/:id', (req, res) => {
database, etc. const user = Object.assign({}, User, req.body) })// delete a user
app.delete('/users/:id', (req, res) => {
database, etc. })app.listen(3000, () => {
})[+] [-] d4rkp4ttern|3 years ago|reply
[+] [-] nicks23|3 years ago|reply
Anyway, when this happens just use the prompt : “continue”. From this it’ll generally do a good job of continuing where it left off, but some refactoring is often required. As it doesn’t always exactly begin where it ended and leaves out vital code or in complete event handlers and functions for example.
From an initial prompt, you may need to continue several times Ron get to complete code you’re after.
Of course, you can throw the resultant incomplete buggy code back in as a new prompt and request analysis and bug fixes. Which it does a good job of resolving.
Of course, all of this subject to the complexity of your perk or/request
[+] [-] joshka|3 years ago|reply
It made a playable game, that was close to the output that it suggested would occur, but it did have a few mistakes - it missed 2 win conditions (rows and one of the diagonals), and the output didn't quite align fully (i.e. "" instead of " " being printed and no lines for board edges, it also doubled up the diagonal checks oddly.
It took me a while to find the right prompt to fix this as it seems to confuse the code checking for game over, which checks for a winner as one of the conditions, for the code that checks for the winner at the end of the game.One of my prompts led to the output being made the program be refactored into a function run in a loop rather than a one shot game. and then I tried:
>the play_game function prints the wrong output when there is a winner in the columns or rows
and got the desired fix.
I like the stateful nature of this.
[+] [-] wolletd|3 years ago|reply
I noticed a bug, informed ChatGPT and it fixed it correctly, which is cool and all.
But I'm really interested in the next thing: I didn't save the code and so reran the same prompt a few days later. Now it was correct the first time. Did it learn the bug? It also lost the Exception handling it had in the first version, though. And it changed it's naming scheme for member variables from `m_foo` to `foo_`.
[+] [-] marceloabsousa|3 years ago|reply
[+] [-] gremlinsinc|3 years ago|reply
I was wanting to try to do something I wasn't familiar w/ at all: Building a mobile app with flutter, and so far I've got the gPT chat completely cloned in flutter, I'm just missing the additional features I wanted to add like saving chats, sharing screenshots and text chats, entering a url, and scraping the page text to ask ChatGPT to summarize, or maybe write a blog post similar to this but don't copy anything, etc....
[+] [-] anigbrowl|3 years ago|reply
For your example, I'd ask it to 'generate code, using Python, that accepts input and updates a display to allow a user to play an interactive game of TicTacToe with the computer.' I'm sure I could do better with some experimentation, but that will have to wait for some other day.
[+] [-] deutz_allis|3 years ago|reply
[+] [-] prohobo|3 years ago|reply
ChatGPT is a subset & tweak of the full GPT-3 model to make a good chatbot, and it's actually less capable than the full model.
It's strange to me that people are going crazy over ChatGPT when GPT-3 has been out for months now.
More info on the difference between ChatGPT and GPT-3: https://dev.to/ben/the-difference-between-chatgpt-and-gpt-3-...
[+] [-] stevenhuang|3 years ago|reply
ChatGPT is trained on a variant of gpt-3.5 (instructgpt), read more here https://openai.com/blog/chatgpt/
[+] [-] arcturus17|3 years ago|reply
> It's strange to me that people are going crazy over ChatGPT when GPT-3
People are going crazy because of the combination of the capabilities of the model and the UX.
Surely you can appreciate how deploying your own full GPT-3 based solution to assist in code generation is much more complex than going to a web app and typing "code me an Express server".
[+] [-] fvdessen|3 years ago|reply
[+] [-] femboy|3 years ago|reply
[+] [-] raesene9|3 years ago|reply
https://github.com/pdparchitect/ChatGPT-JobsForBots and https://github.com/pdparchitect/ChatGPT-Pong were two of them.
The author shows all the steps used to generate the programs.
[+] [-] Hakkin|3 years ago|reply
[+] [-] stevenhuang|3 years ago|reply
[+] [-] gremlinsinc|3 years ago|reply
So far it's created some pretty amazing tailwindcss layouts for me, and a flutter app to interface with chatGPT that I want to add more features like saving, sharing, etc.. In 3 hours with zero flutter experience I can now at least do as much as the website does. That's pretty amazing.
Edit: YMMV -- imho you do need to be mid-senior level in tech/programming skills to know and find the best prompts to get it to go your way, there's some trial and error and your ide will usually let you know about errors/etc and you can ask them to fix it and gpt does a good job of correcting things.
[+] [-] v4dok|3 years ago|reply
Its worst nightmare was that there were some nested values in the .txt. What amazed me the most is that pasting the error code from colab into the chat, it recognized the mistake and generated a fix.
That being said, most of the times it would try to fix a logical mistake by overengineering a solution to an error, or it would identify the mistake correctly, explain in natural language what needs to be done (impressive), but then give me the code unchanged.
[+] [-] WheelsAtLarge|3 years ago|reply
I bet that you could break-up your app into functions and have ChatGPT write each function to get to a bigger program.
It's limited now but I can definitely see the possibilities.
It won't be free forever so we'll have to weight the usefulness vs cost eventually.
[+] [-] Tozen|3 years ago|reply
Instead of you having to Google search everywhere or look in multiple sources, you were able to just ask ChatGPT.
[+] [-] midspectrum|3 years ago|reply
[+] [-] gaurangt|3 years ago|reply
Having said that, I usually compare it with Junior programmers, more like someone just learning a new programming language. You can expect that level of performance from ChatGPT!
[+] [-] bspammer|3 years ago|reply
It's kinda crazy how fast my opinion went from "haha neat, the robot can write poems" to "this is an invaluable tool and I am begging you to let me pay for stable access". I use it multiple times per day, it's easily saved me hours already.
[+] [-] MrScruff|3 years ago|reply
[+] [-] deadcoder0904|3 years ago|reply
[+] [-] binarymax|3 years ago|reply
[+] [-] nounaut|3 years ago|reply
[+] [-] sublinear|3 years ago|reply
Seems like there would be far more content to train on and less restrictive criteria.
[+] [-] warrenmiller|3 years ago|reply