Usar ChatGPT desde Delphi

· Componentes

ChatGPT es un gran modelo de lenguaje desarrollado por OpenAI. Fue entrenado con una técnica llamada aprendizaje no supervisado, lo que significa que se le suministró un gran conjunto de datos de texto y aprendió a predecir la siguiente palabra de una secuencia a partir de las palabras anteriores. Esto le permite generar texto similar al humano, que puede usarse para diversos fines, como generar respuestas a la entrada del usuario en un chatbot o crear contenido para sitios web y redes sociales.

Una de las funcionalidades clave de ChatGPT es su capacidad para entender el contexto y generar respuestas adecuadas a la conversación. Por ejemplo, si le haces una pregunta, generará una respuesta pertinente que sigue el flujo natural de la conversación. Esto es posible gracias a la capacidad del modelo de "recordar" enunciados previos y usar esa información para construir su respuesta.

Otra característica importante de ChatGPT es su capacidad para generar respuestas diversas y variadas. Como se entrenó con un gran conjunto de datos de texto, tiene un amplio abanico de conocimientos y puede generar respuestas adecuadas a distintas situaciones y temas. Esto lo convierte en una herramienta útil para producir respuestas a la entrada del usuario en un chatbot, ya que puede ofrecer respuestas relevantes y atractivas independientemente del tema de la conversación.

En general, ChatGPT es un modelo de lenguaje potente capaz de generar texto similar al humano y de entender el contexto y el flujo de conversación. Tiene un amplio abanico de aplicaciones, como chatbots, generación de contenido y traducción, y tiene potencial para revolucionar la forma en que interactuamos con la tecnología.

Actualmente ChatGPT no tiene API, pero puedes usar la API beta de OpenAI para interactuar con el transformador de texto GPT-3; solo necesitas una clave de API, que puedes obtener en:

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

Para empezar a interactuar con la API.

Código GPT-3 en Delphi

Una vez que tengas una clave de API, interactuar con ella es muy sencillo. A continuación encontrarás un código de ejemplo para interactuar usando la biblioteca 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 función tiene 2 argumentos:

API: es la clave de API obtenida en https://beta.openai.com/account/api-keys

Question: es el mensaje con la pregunta.

La clave de API se envía como Bearer Token y el mensaje se codifica con un objeto JSON. El servidor devuelve una respuesta como objeto JSON donde puede encontrarse el mensaje de texto.


A continuación encontrarás el proyecto completo y el ejecutable compilado para Windows.