L'évolution de ChatGPT ! la version 4 surpasse la version 3.5
En tant que développeur, je suis toujours impatient d'explorer les dernières avancées de l'IA et de voir comment elles peuvent améliorer mon flux de travail. Récemment, j'ai eu une expérience intrigante en travaillant avec deux versions différentes de ChatGPT d'OpenAI : la version 3.5 et la version 4. J'utilisais les modèles d'IA pour écrire une fonction JavaScript qui divise les puces numérotées en un tableau. À ma grande surprise, il y avait une différence notable dans la qualité du code généré entre les deux versions.
La tâche à accomplir
J'avais besoin d'une fonction JavaScript capable de diviser une chaîne contenant des puces numérotées en un tableau. L'objectif était de réussir un ensemble de tests unitaires qui valideraient la capacité de la fonction à gérer divers scénarios d'entrée.
Première tentative : ChatGPT version 3.5
J'ai commencé par demander de l'aide à ChatGPT version 3.5, et il m'a fourni la fonction suivante :
class CodeReviewHelper {
static splitNumberedPoints(text) {
const regex = /^\d+\.\s+/gm; // match at least 1 digit followed by a dot and space(s) globally and multi-line
return text.split(regex).filter(Boolean);
}
}
Deuxième tentative : ChatGPT version 4
Curieux de voir s'il y avait une amélioration dans la dernière version de ChatGPT, j'ai décidé de demander de l'aide à la version 4. Cela m'a fourni une implémentation différente:
function splitNumberedBulletPoints(text) {
const regex = /\d+\.\s+(.*?)(?=\n\d+\.|\n*$)/gs;
const bulletPoints = [];
let match;
while ((match = regex.exec(text)) !== null) {
bulletPoints.push(match[1].trim());
}
return bulletPoints;
}
Lorsque j'ai exécuté les tests unitaires avec cette nouvelle fonction, tous les tests ont réussi !
Les tests unitaires
Les tests unitaires suivants ont été utilisés pour valider les fonctions JavaScript :
describe("CodeReviewHelper", () => {
describe("splitNumberedPoints", () => {
it("should split a single-point string into an array with one element", () => {
const text = "1. Single point";
const expected = ["Single point"];
const result = CodeReviewHelper.splitNumberedPoints(text);
expect(result).to.deep.equal(expected);
});
it("should split a multi-point string with correct amount of elements", () => {
const text = "1. First point\n2. Second point\n3. Third point";
const expected = ["First point", "Second point", "Third point"];
const result = CodeReviewHelper.splitNumberedPoints(text);
expect(result).to.deep.equal(expected);
});
it("should handle varying amounts of space after the number dot separator", () => {
const text =
"1. First point with space \n2. Second point with two spaces \n3. Third point with three spaces ";
const expected = [
"First point with space",
"Second point with two spaces",
"Third point with three spaces",
];
const result = CodeReviewHelper.splitNumberedPoints(text);
expect(result).to.deep.equal(expected);
});
it("should handle empty input", () => {
const text = "";
const expected = [];
const result = CodeReviewHelper.splitNumberedPoints(text);
expect(result).to.deep.equal(expected);
});
});
});
Une expérience fascinante
Cette expérience met en évidence l'évolution rapide des modèles de langage d'IA comme ChatGPT. Il était fascinant de voir comment la version 4 a surpassé la version 3.5 en générant une fonction JavaScript plus précise qui a passé avec succès tous les tests unitaires. Au fur et à mesure que l'IA progresse, les développeurs peuvent s'attendre à une génération de code encore plus raffinée et à une assistance dans leurs tâches quotidiennes.
![Qu'est-ce qu'une liste liée, de toute façon? [Partie 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































