Designed to handle a wide variety of different tasks rather than being specialized for one specific domain.
Code generation, debugging, explanation, and refactoring
Adhering to complex, structured, or constrained instructions
Multi-step reasoning, logic puzzles, mathematical problem-solving