ChatGPT and the Human Condition: Navigating the Intersection of Artificial and Organic Intelligence
Nick Price, Technical Developer at Profusion
The internet is no stranger to revolutionary developments, and the latest sensation to take the world by storm is ChatGPT.
But what exactly is ChatGPT?
In a nutshell, “it is a cutting-edge language model developed by OpenAI that can generate text that is indistinguishable from human-written text. With its ability to understand and replicate human language, ChatGPT can be applied to a variety of natural language processing tasks, such as language translation, question answering, and text completion.”
There is already a plethora of articles written about ChatGPT, mainly in relation to its abilities. I wanted to do something different and look at it from the field of development, and why it is both outstanding yet terrifying at the same time.
At the time of writing, I have been using ChatGPT for a couple of months. One of the main observations I have made is that the quality of the output is hugely dependent on the accuracy of the input. The data set it as trained against is vast, and the output it provides holds no guarantees that it is correct or safe. There has been an influx of inadequate answers provided on large programming forums, which is why ChatGPT based answers have been banned.
So, let’s look at an example; Simple question, “In NodeJS connect to a MySQL database and insert a record”.
Now immediately this code has some severe issues. I could talk about the problems relating to hardcoded environment variables, but I wanted to address the bigger issue, in that it is vulnerable to SQL Injection. Just imagine that I am an inexperienced coder, at this point I am ecstatic that ChatGPT has just provided me with working code. It will not take long before the web is flooded with insecure code providing a point of entry for malicious attacks.
I wanted to give ChatGPT a hint that it was vulnerable, so I asked a follow up question “Use variables that are received by the function” in this hopes that it would parameterize the inputs, but ChatGPT had other ideas.
However, this time it provided me with “warning”.
This is where things are confusing; it’s provided me an answer that it knows is vulnerable, why? I had to ask.
So, is this an AI issue, or is it a user issue? It takes me back to an original point I made in that the quality of the output is dependent on the accuracy of the input. Ask it the right questions, it provides acceptable answers.
Once again, both outstanding yet terrifying at the same time. Know what you are doing it is one of the most revolutionary tools in recent times. Don’t know what you are doing, the confidence ChatGPT has in providing its answers will make you think that it is correct, which is a huge problem.
In terms of development, paired programming, unit testing and code reviews has never been more important. I personally use ChatGPT as my paired programmer, asking it for suggestions regarding the code I produce. I have enough experience in identifying whether it provides me with a great suggestion, or whether it is talking nonsense.
But as they say, with great power comes great responsibility, and the line between ChatGPT being a positive or negative influence within all industries is thin.