Używanie ChatGPT z Delphi

· Komponenty

ChatGPT to duży model językowy opracowany przez OpenAI. Był trenowany za pomocą techniki uczenia nienadzorowanego, co oznacza, że był zasilany dużym zbiorem danych tekstowych i uczył się przewidywać następne słowo w sekwencji na podstawie poprzedzających je słów. Pozwala to ChatGPT na generowanie tekstu podobnego do ludzkiego, który można wykorzystać do różnych celów, takich jak generowanie odpowiedzi na dane wejściowe użytkownika w chatbocie lub tworzenie treści na strony internetowe i media społecznościowe.

Jedną z kluczowych funkcji ChatGPT jest zdolność do rozumienia kontekstu i generowania odpowiednich odpowiedzi na podstawie rozmowy. Na przykład, jeśli zadasz ChatGPT pytanie, wygeneruje odpowiedź odpowiednią do pytania i zgodną z naturalnym tokiem rozmowy. Umożliwia to zdolność modelu do "zapamiętywania" wcześniejszych wypowiedzi w rozmowie i wykorzystywania tych informacji w odpowiedzi.

Inną ważną cechą ChatGPT jest zdolność do generowania zróżnicowanych odpowiedzi. Ponieważ był trenowany na dużym zbiorze danych tekstowych, posiada szeroką wiedzę i może generować odpowiedzi odpowiednie dla różnych sytuacji i tematów. Czyni go to użytecznym narzędziem do generowania odpowiedzi na dane wejściowe użytkownika w chatbocie, gdyż może dostarczać trafne i angażujące odpowiedzi niezależnie od tematu rozmowy.

Ogólnie rzecz biorąc, ChatGPT to potężny model językowy, który może generować tekst podobny do ludzkiego i rozumieć kontekst oraz przebieg rozmowy. Ma szeroki zakres zastosowań, w tym chatboty, generowanie treści i tłumaczenie języków, i ma potencjał do zrewolucjonizowania sposobu, w jaki wchodzimy w interakcję z technologią.

ChatGPT aktualnie nie ma API, ale możesz korzystać z beta API OpenAI do interakcji z transformatorem tekstu GPT-3 — potrzebujesz tylko klucza API, który można uzyskać z:

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

Aby rozpocząć interakcję z API.

Kod Delphi dla GPT-3

Gdy masz klucz API, interakcja z API jest bardzo prosta. Poniżej znajdziesz przykładowy kod do interakcji za pomocą biblioteki 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; 

Funkcja przyjmuje 2 argumenty:

API: klucz API uzyskany z https://beta.openai.com/account/api-keys

Question: wiadomość z pytaniem.

Klucz API jest wysyłany jako Bearer Token, a wiadomość jest zakodowana jako obiekt JSON. Serwer zwraca odpowiedź jako obiekt JSON, w którym można znaleźć wiadomość tekstową.


Poniżej znajdziesz pełny projekt i skompilowany plik wykonywalny dla systemu Windows.