Using ChatGPT from Delphi

· Composants

ChatGPT est un grand modèle de langage développé par OpenAI. Il a été entraîné en utilisant une technique appelée apprentissage non supervisé, ce qui signifie qu'il a été alimenté avec un large jeu de données textuelles et qu'il a appris à prédire le mot suivant dans une séquence en fonction des mots qui le précèdent. Cela permet à ChatGPT de générer du texte semblable à celui d'un humain, qui peut être utilisé pour une variété d'objectifs, comme générer des réponses à l'entrée utilisateur dans un chatbot ou générer du contenu pour des sites web et des réseaux sociaux.

Une des fonctionnalités clés de ChatGPT est sa capacité à comprendre le contexte et à générer des réponses appropriées en fonction de la conversation. Par exemple, si tu poses une question à ChatGPT, il va générer une réponse qui est pertinente par rapport à la question et et qui suit le flux naturel de la conversation. Cela est rendu possible par la capacité du modèle to "remember" previous statements dans la conversation et à utiliser ces informations pour informer sa réponse.

Une autre fonctionnalité importante de ChatGPT est sa capacité à générer des réponses diverses et variées. Comme il a été entraîné sur un large jeu de données textuelles, il dispose d'un large éventail de connaissances et peut générer des réponses appropriées pour différentes situations et sujets. Cela en fait un outil utile pour générer des réponses à l'entrée utilisateur dans un chatbot, car il peut fournir des réponses pertinentes et engageantes quel que soit le sujet de la conversation.

Dans l'ensemble, ChatGPT est un puissant modèle de langage qui peut générer du texte semblable à celui d'un humain et comprendre le contexte et le flux de conversation. Il a un large éventail d'applications, y compris les chatbots, la génération de contenu et la traduction de langues, et a le potentiel de révolutionner la façon dont nous interagissons avec la technologie.

ChatGPT n'a pas encore d'API, mais tu peux utiliser l'API bêta d'OpenAI pour interagir avec le transformateur de texte GPT-3, tu as seulement besoin d'une clé API, qui peut être obtenue depuis:

https://beta.openai.com/account/api-keys

Pour commencer à interagir avec l'API.

Code Delphi GPT-3

Une fois que tu as une clé API, interagir avec l'API est très simple. Voici un exemple de code pour interagir en utilisant la bibliothèque sgcWebSockets. 

function AskChatGPT(const aAPI, aQuestion: string): string;
var
  oHTTP: TsgcHTTP1Client;
  oStream: TStringStream;
  vPostData: string;
  oJSON: TJSONValue;
  oArray: TJSonArray;
begin
  oHTTP := TsgcHTTP1Client.Create(nil);
  Try
    oHTTP.Request.CustomHeaders.Add('Authorization: Bearer ' + aAPI);
    oHTTP.Request.ContentType := 'application/json';
    vPostData :=
      Format('{"model": "text-davinci-003","prompt": "%s","max_tokens": 2048,"temperature": 0}',
      [aQuestion]);
    // send request
    oStream := TStringStream.Create(vPostData);
    Try
      result := oHTTP.Post('https://api.openai.com/v1/completions', oStream);
      // parse response
      oJSON := TJSonObject.ParseJSONValue(result).GetValue<TJSONValue>
        ('choices');
      result := TJSonArray(oJSON).Items[0].GetValue<TJSONString>('text').Value;
    Finally
      oStream.Free;
    End;
  Finally
    oHTTP.Free;
  End;
end; 

La fonction a 2 arguments:

API: est la clé API obtenue depuis https://beta.openai.com/account/api-keys

Question: est le message contenant la question.

La clé API est envoyée sous forme de Bearer Token et et le message est encodé sous forme d'objet JSON. Le serveur renvoie une réponse sous forme d'objet JSON où le message texte peut être trouvé.


Voici le projet complet et le compiled executable for Windows.