Super einfacher Zugriff auf GPT-3.5 mit Lazarus bzw. Free Pascal

In etwa seit diesem Jahr stehen der Allgemeinheit KI’s zur Verfügung, die erstaunliche Fähigkeiten haben. Unter anderem können sie Text erstellen, der nicht mehr von dem von menschlichen Autoren geschriebenem Text zu unterscheiden ist. Das reizte mich auszuprobieren, ob sie mir auch vollautomatisch einen Roman schreiben können. Doch das ist im Moment noch nicht der Fall. Der offensichtlichste Grund dafür ist die begrenzte Textmenge, die sie auf eine Anfrage hin ausgeben. Es ist natürlich möglich mit Hilfe der KI einen Roman aus zusammengesetzten Teilen zu bauen, aber es ist schwierig darin auch so etwas wie einen ‚roten Faden‘ zu erkennen.

Relativ einfach können Bücher erstellt werden die aus voneinander weitgehend unabhängigen Kapiteln bestehen. Wie zum Beispiel ein Buch über die Arduino Programmierung. Aber auch diese müssen manuell zusammen gesetzt werden.

Mich reizt es diesen Prozess zu automatisieren und dabei ein paar besondere Techniken zu integrieren, um so  vielleicht doch eine durchlaufende Metaebene oder Handlungsstruktur zu erzeugen. Darum begann ich mit der Entwicklung von geeigneten Werkzeugen zu experimentieren. Als Programmiersprache wählte ich Free Pascal, da ich es von früher her kenne und in Verbindung mit der Entwicklungsumgebung Lazarus dazu geeignet ist fensterorientierte Anwendungen zu programmieren, mit denen es leicht ist mit der Anwendung zu interagieren.

Für dieses Projekt zur automatisierten Erstellung von Büchern, benötigte ich unbedingt Zugriff auf eine KI die Text formulieren kann. Ich hatte schon ein bisschen herum recherchiert und die Beispiele auf der zugehörigen Seite von OpenAI angesehen. Dort sind verschiedene Beispiele, die sich aber auf Python oder Node.js beziehen. Oberflächlich betrachtet schien es so, als ob es genügt ein bischen Json zu formulieren und an einen Server zu senden. Das Python Beispiel nutzte aber eine Bibliothek für die Verarbeitung einiger Angaben, was mich erst einmalig abschreckte. Darum stöberte ich weiter im Internet und fand die Seite von LANDGRAF.DEV, auf der ein OpenAI ChatGPT API Client For Delphi and Lazarus angeboten wird. Diesen Client probierte ich aus und nach etwas Programmierarbeit konnte mein neues Projekt auf eine Text erstellende AI zugreifen!

Einige Stunden und Experimente später stellte ich allerdings fest, dass das von LANDGRAF.DEV verwendete KI Model ‚text-davinci-003‘ ist, was deutlich schlechter bei der Texterstellung ist, als man das von Chat-GPT normalerweise gewohnt ist.

Darum erinnerte ich mich an meine ursprüngliche Idee das Ganze selbst zu programmieren. Auf der Suche nach Beispielen fand ich in einem Forum ein Stück Code von Thaddy de Koning, der das so ähnlich, wie ich mir das vorstellte, für ‚text-davinci-003‘ entwickelt hat. An diesem Code knobelte ich einige Zeit herum, bis ich es schließlich für das Model ‚gpt-3.5-turbo‘ angepasst hatte!

Das Programm unten funktioniert nur wenn Ihr einen API key von OpenAI besitzt! Dazu benötigt Ihr einen Account bei OpenAI und für umfangreichere Tests auf jeden Fall auch eine hinterlegte Kreditkarte!

Das unten aufgeführte Programm ist nur ein funktionierendes Beispiel und es liefert schon gute Antworten und Texte. Es kann allein durch Veränderung des Json Strings beeinflusst werden.

program project1;

uses classes, sysutils, fphttpclient, opensslsockets, fpJson, jsonparser;
const
model ='{"model":"gpt-3.5-turbo",' +
'"messages":' +
'[{"role": "system",' +
'"content": "You are a helpful assistant."},' +
'{"role": "user",' +
'"content": "%s"}],' +
'"temperature": 1}';
var
d:TJsonData;
s:string;
RequestStr:string;
ResultStr: string;
begin
writeln('What is your request?');
readln(s);
writeln;
with TfpHttpClient.Create(nil) do
try
AllowRedirect := true;
RequestHeaders.Add('Content-Type: application/json');
RequestHeaders.Add('Authorization: Bearer ' + GetEnvironmentVariable('OPENAI_API_KEY'));
RequestStr := format(model,[s]);
RequestBody := TStringStream.Create(RequestStr);
writeln('Please wait for the response, this can take some time:');
try
ResultStr := Post('https://api.openai.com/v1/chat/completions');
d := GetJson(ResultStr);
writeln(d.findpath('choices[0].message.content').AsString);
finally
d.free;
end;
finally
RequestBody.Free;
Free;
end;
end.

Auf Basis diesen Beispiels könnt Ihr Eure eigenen Anwendungen entwickeln. Es ist sehr rudimentär, zeigt aber gerade dadurch die wesentlichen Elemente eines Zugriffs auf die KI von OpenAI. Viel Spaß damit!

  • Related Posts

    CNC Simulator Editor

    Heute gibt es eine ganze Menge in einem einzigen Artikel verpackt: Eine interessante Kodierungsidee, ein Beispiel dafür wie schnell man mit KI entwickeln kann, einen Simulator zum Üben der G-Code…

    Lokale KI mit Ryzen 9950 X3D und RTX 5090 – Geht da was?

    Neue Hardware – neue Möglichkeiten Seit kurzem steht mir ein aktueller (Mitte 2025) PC mit einem AMD Ryzen 9950 X3D Mikroprozessor und einer Nvidia RTX 5090 Grafikkarte zur Verfügung. Das…

    One thought on “Super einfacher Zugriff auf GPT-3.5 mit Lazarus bzw. Free Pascal

    1. When I use this code with my API key, I get:

      Please wait for the response, this can take some time:
      An unhandled exception occurred at $000000010517DDF6:
      ESocketError: Connect to api.openai.com:443 failed.
      $000000010517DDF6
      $000000010515A501
      $000000010515D110
      $000000010515D929
      $000000010515E1AB

      I am on OSX Big Sur

      Grts,
      Richard

    Schreibe einen Kommentar

    Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

    You Missed

    Schnäppchen oder Spec-Theater?

    • Von Zuseway
    • Oktober 5, 2025
    • 15 views

    Windows-10-Gnadenfrist in der EU: Chance oder verschobenes Problem?

    Vulkan, Lumen, Limit

    • Von Zuseway
    • Oktober 5, 2025
    • 15 views
    Vulkan, Lumen, Limit

    Pestjäger aus der Luft

    • Von Zuseway
    • September 28, 2025
    • 54 views
    Pestjäger aus der Luft

    GPD Win 5: Handheld mit Strix-Halo-Power und Strix-Halo-Preis

    Pyramiden für Bits

    • Von Zuseway
    • September 28, 2025
    • 46 views
    Pyramiden für Bits