Die Entwicklung von ChatGPT! Version 4 übertrifft Version 3.5

Mar 16 2023
Als Entwickler bin ich immer daran interessiert, die neuesten KI-Fortschritte zu erkunden und zu sehen, wie sie meinen Arbeitsablauf verbessern können. Kürzlich hatte ich eine faszinierende Erfahrung mit zwei verschiedenen Versionen von OpenAIs ChatGPT: Version 3.

Als Entwickler bin ich immer daran interessiert, die neuesten KI-Fortschritte zu erkunden und zu sehen, wie sie meinen Arbeitsablauf verbessern können. Kürzlich hatte ich eine faszinierende Erfahrung bei der Arbeit mit zwei verschiedenen Versionen von OpenAIs ChatGPT: Version 3.5 und Version 4. Ich habe die KI-Modelle verwendet, um eine JavaScript-Funktion zu schreiben, die nummerierte Aufzählungspunkte in ein Array aufteilt. Zu meiner Überraschung gab es zwischen den beiden Versionen einen spürbaren Unterschied in der Qualität des generierten Codes.

Die aktuelle Aufgabe

Ich brauchte eine JavaScript-Funktion, die eine Zeichenfolge mit nummerierten Aufzählungspunkten in ein Array aufteilen konnte. Das Ziel bestand darin, eine Reihe von Komponententests zu bestehen, um die Fähigkeit der Funktion zur Verarbeitung verschiedener Eingabeszenarien zu validieren.

Erster Versuch: ChatGPT Version 3.5

Ich begann damit, ChatGPT Version 3.5 um Hilfe zu bitten, und sie bot mir die folgende Funktion:

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);
  }
}

Zweiter Versuch: ChatGPT Version 4

Neugierig, ob es in der neuesten Version von ChatGPT Verbesserungen gab, beschloss ich, Version 4 um Hilfe zu bitten. Es lieferte mir eine andere Implementierung:

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;
}

Als ich die Unit-Tests mit dieser neuen Funktion durchführte, waren alle Tests erfolgreich!

Die Unit-Tests

Zur Validierung der JavaScript-Funktionen wurden die folgenden Unit-Tests verwendet:

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);
    });
  });
});

Eine faszinierende Erfahrung

Diese Erfahrung verdeutlicht die rasante Entwicklung von KI-Sprachmodellen wie ChatGPT. Es war faszinierend zu sehen, wie Version 4 Version 3.5 bei der Generierung einer genaueren JavaScript-Funktion übertraf, die alle Komponententests erfolgreich bestand. Da die KI immer weiter voranschreitet, können Entwickler eine noch verfeinerte Codegenerierung und Unterstützung bei ihren täglichen Aufgaben erwarten.