OpenAI for Delphi est une bibliothèque client pour se connecter à l'API OpenAI depuis Delphi et Lazarus/FPC (Free Pascal Compiler). À partir de cette bibliothèque, vous pouvez utiliser les services OpenAI populaires, comme ChatGPT, directement depuis votre application Delphi ou Lazarus.
Ceci est une bibliothèque non officielle. OpenAI ne fournit aucune bibliothèque officielle pour Delphi.
Pour utiliser la bibliothèque, ajoutez simplement le dossier Source au chemin de la bibliothèque IDE ou au chemin source de votre projet.
Pour utiliser le client, ajoutez les unités OpenAIClient
et OpenAIDtos
à votre clause d'utilisation d'unité.
uses
OpenAIClient, OpenAIDtos;
La bibliothèque doit être configurée avec la clé API secrète de votre compte, disponible sur le site Web. Nous vous recommandons de le définir comme variable d'environnement nommée OPENAI_API_KEY
. Une fois que vous avez la clé API, créez simplement le client et définissez la clé comme suit :
var
Client: IOpenAIClient;
{ ... }
Client := TOpenAIClient.Create;
Client.Config.AccessToken := GetEnvironmentVariable( ' OPENAI_API_KEY ' );
La plupart des points de terminaison de l'API OpenAI sont disponibles dans le client, sous l'interface fournie dans la propriété OpenAI
. L'exemple suivant montre comment poser une question et recevoir une réponse à l'aide du point de terminaison CreateCompletion :
function AskQuestion ( const Question: string): string;
var
Request: TCreateCompletionRequest;
Response: TCreateCompletionResponse;
begin
Response := nil ;
Request := TCreateCompletionRequest.Create;
try
Request.Prompt := Question;
Request.Model := ' text-davinci-003 ' ;
Request.MaxTokens := 2048 ; // Be careful as this can quickly consume your API quota.
Response := Client.OpenAI.CreateCompletion(Request);
if Assigned(Response.Choices) and (Response.Choices.Count > 0 ) then
Result := Response.Choices[ 0 ].Text
else
Result := ' ' ;
finally
Request.Free;
Response.Free;
end ;
end ;
Tous les objets créés et passés comme paramètres d'entrée, ainsi que tous les objets créés par le client et fournis comme résultats de fonction, doivent être détruits par vous, sinon vous obtiendrez une fuite de mémoire.
Vous pouvez utiliser la complétion de code Delphi pour vérifier les méthodes, paramètres, types disponibles et lire les commentaires de la documentation.
Cette bibliothèque ne nécessite aucune bibliothèque tierce. Il fonctionne sur toutes les versions récentes de Delphi qui fournissent l'unité ( System.Net.HttpClient
) et Lazarus/FPC. Bien qu'il n'ait pas été entièrement testé, il devrait également fonctionner sur toutes les plateformes prises en charge (Windows, Linux, macOS, etc.).
Étant donné que la bibliothèque nécessite votre clé API secrète, il n'est pas recommandé de l'utiliser sur les applications clientes, car votre clé secrète sera exposée, sauf si vous êtes sûr des risques de sécurité.
Vous pouvez personnaliser la demande selon vos propres besoins en utilisant votre propre fabrique de demandes. Implémentez simplement l'interface IRestRequestFactory
et définissez-la dans la propriété Config.RequestFactory
.
Par exemple, si vous souhaitez configurer une organisation personnalisée (qui est fournie dans un en-tête HTTP), voici un exemple de code :
uses { ... } , OpenApiRest;
type
TMyRequestFactory = class (TInterfacedObject, IRestRequestFactory)
strict private
FFactory: IRestRequestFactory;
public
constructor Create(AFactory: IRestRequestFactory);
function CreateRequest : IRestRequest;
end ;
constructor TMyRequestFactory.Create(AFactory: IRestRequestFactory);
begin
FFactory := AFactory;
end ;
function TMyRequestFactory.CreateRequest : IRestRequest;
begin
Result := FFactory.CreateRequest;
Result.AddHeader( ' OpenAI-Organization ' , ' org-nUilalMOTvqGjGeAopTDIsSB ' );
end ;
// Set it after creating the client
FClient := TOpenAIClient.Create;
FClient.Config.RequestFactory := TMyRequestFactory.Create(FClient.Config.RequestFactory);
Exemple d'utilisation d'openai-delphi avec WPP4Delphi dans WPPConnect-Team
Composant Opensource pour l'envoi de messages intégré à WhatsApp Web à l'aide de Delphi
Exemple : vue démo
Exemple de code dans Delphi :
if SwtChatGPT.IsOn then
begin
if Question <> '' then
begin
//Credits --> https://github.com/landgraf-dev/openai-delphi
Answer := AskQuestion(Question, AChat.id);
phoneNumber := Copy(Answer, 1, pos('#', Answer)-1);
Answer := StringReplace(Answer, phoneNumber + '#', '',[]);
if Trim(Answer) <> '' then
frDemo.TWPPConnect1.SendTextMessageEx(phoneNumber, '?' + ' *ChatGPT* ' + Answer, 'createChat: true', '123')
else
frDemo.TWPPConnect1.SendTextMessageEx(phoneNumber, '?' + ' *ChatGPT* ' + 'Could not retrieve an answer.', 'createChat: true', '123');
end;
end;
Code complet dans WPP4Delphi