AI and its areas of application are developing rapidly and are finding their way into more and more areas, including software development. That’s why we took a closer look at two AI tools development, ChatGPT and GitHub Copilot, and how they can help us with development.
ChatGPT: Examples of use and techniques for effective prompts
ChatGPT or alternatives like pride and HuggingChat are based on Large Language Models (LLMs). These computer-aided models consist of an artificial neural network that has been trained with large amounts of text and can, for example, summarize, translate or generate texts. These AI tools offer users a chat that can also be used to answer technical questions or generate blocks of code. Chat-based AI tools are therefore also suitable as development support . We tried ChatGPT for the following tasks:
- Explain Code: ChatGPT can explain to us step by step what is happening in a block of code. This is particularly helpful when we are working with an unknown programming language or foreign frameworks and libraries.
- Generate code: ChatGPT can create, rewrite or simplify (refactoring) code.
- Debugging: In the chat we can have error messages explained to us, collect information about the causes of errors or have the faulty code block repaired.
- Further training: We can summarize theoretical concepts and generate corresponding code examples for better understanding.
- Testing : ChatGPT can help us brainstorm ideas for test cases or create full tests.
These very different use cases can help identify usage scenarios for ChatGPT during development. However, the quality of the results can be very different despite the same use case, which is partly due to the wording of the prompt. The prompt represents the instruction to ChatGPT containing our request to the model. To improve the quality of the answers, we have the following tips for prompting:
- OpenAI flags a hallucination as a plausible but incorrect response from ChatGPT. Hallucinations arise because ChatGPT is always trying to give an answer that doesn’t necessarily have to be true. Such hallucinations can cost a lot of time, especially because the application itself is often wrongly convinced of the correctness of the statements. For this reason, it makes sense to limit hallucinations. For this purpose, we recommend that you first gather relevant information on a topic or have the feasibility of our prompt checked before carrying out the actual task.
- Integrate successfully By integrating a successful example into the prompt, ChatGPT can learn e.g. the content or the format and reproduce it in the response.
- When processing the prompt through ChatGPT, it is advantageous to give the application a longer “thinking time”. This means a longer computing time and thus a better result. To increase this time, we recommend specifying the individual steps required to answer a prompt in the prompt.
- Use Variables Special characters can be used as indicators for variables in a prompt. For example, a variable meant to represent various inputs might look like this: {input}. In the prompt, the special characters should only be used for variables. Variables tell ChatGPT that the values can be adjusted at each prompt. This leads to a high degree of individualization, since an individual response can be generated for each prompt with minimal effort.
GitHub Copilot: Best practices for the intelligent code assistant
GitHub Copilot uses AI to automatically generate code directly in the editor and also suggest larger code blocks. GitHub Copilot is built on OpenAI Codex, a code-focused LLM. We tested GitHub Copilot for the following scenarios:
- Auto Code Completion: GitHub Copilot infers context from comments and existing code to generate inline code suggestions that can be accepted or rejected directly.
- Generate code GitHub Copilot can be used to generate larger blocks of code according to our specifications.
For GitHub Copilot, we recommend the following tips to improve the quality of code suggestions:
- Code Comments Comments can be used to generate code suggestions. The comments provide the context from which GitHub Copilot generates the suggestions. We can recommend this especially for unknown programming languages, since the comments can be formulated in natural language and are translated into code by GitHub Copilot. ChatGPT prompting best practices can also help with commenting for GitHub Copilot.
- Choose meaningful names: Using meaningful names for variables, functions, and files can improve the quality of GitHub Copilot’s suggestions because the context for the suggestions is derived from the names.
- Code patterns are learned: GitHub Copilot bases its suggestions on existing code and suggests code that is similar to this code, ie code patterns and code style are learned and applied by GitHub Copilot.
- Open relevant files: All files open in the IDE are considered by GitHub Copilot for the context of the suggestions. Opening relevant files can also improve code suggestions.
In addition to the results that Artificial Intelligence tools deliver, they have an additional benefit: The tools get the development team to look at the code or the problem from a different perspective. The added value is to think explicitly about e.g. the format and the intermediate steps to write a successful prompt for ChatGPT or comments for GitHub Copilot.
For both ChatGPT and GitHub Copilot, both tools do not yet deliver perfect and secure code, but were developed with the aim of only providing support during development and leaving full control to the developers. We will monitor the potential of these and new AI tools and expect them to continue to evolve and improve. In particular, we’re excited about the further developments of GitHub Copilot X, e.g. the chat function, which could replace ChatGPT as a stand-alone tool in development.
Also Read : Artificial Intelligence – How Can Companies Use This Technology For Themselves?