[OXT] Faire des requêtes ChatGPT en Basic

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
psilocybe
Membre hOOnoraire
Membre hOOnoraire
Messages : 145
Inscription : 21 mai 2012 19:40

[OXT] Faire des requêtes ChatGPT en Basic

Message par psilocybe »

Salut à tous,

Il est possible de faire des requêtes ChatGPT avec Basic.

Des restrictions s'appliques aux utilisateurs de OpenOffice sous Windows. Merci de consulter la documentation pour plus d'informations.

Vous devez d'abord installer l'extension OAuth2OOo version 1.0.0

Vous avez également besoin de votre clef d'API ChatGPT disponible dans votre compte ChatGPT sous: View API Key

et voici un exemple de code Basic :

Code : Tout sélectionner

Rem  *****  BASIC  *****

Sub Main

Rem En premier nous devons créer le service UNO OAuth2Service
oauth2 = CreateUnoService("io.github.prrvchr.OAuth2OOo.OAuth2Service")

Rem Pour exécuter une requête HTTP il nous faut un paramètre de requête HTTP
parameter = oauth2.getRequestParameter("ChatGPT")

Rem La méthode HTTP doit être POST
parameter.Method = "POST"

parameter.Url = "https://api.openai.com/v1/chat/completions"

Rem L'authentification par défaut est OAuth2 mais peut être désactivée par:
parameter.NoAuth = True

Rem Vous devez mettre votre clef de l'API ChatGPT dans l'entête de la requête HTTP: Authorization
parameter.setHeader("Authorization", "Bearer " & "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx")

Rem Nous devons créer la structure Json nécessaire pour l'appel de l'API de ChatGPT: https://platform.openai.com/docs/guides/gpt/chat-completions-api
builder = parameter.getJsonBuilder()
json = builder.createObject()_
              .addString("model", "gpt-3.5-turbo")_
              .addArray("messages", builder.createArray()_
                                           .addObject(builder.createObject()_
                                                             .addString("role", "system")_
                                                             .addString("content", "You are a helpful assistant."))_
                                           .addObject(builder.createObject()_
                                                             .addString("role", "user")_
                                                             .addString("content", "How to make HTTP requests in Basic in LibreOffice?")))_
              .build()

Rem Nous assignons la structure Json à la requête HTTP
parameter.setJsonStructure(json)

Rem Pour obtenir la réponse HTTP nous utilisons la méthode execute()
Rem du service OAuth2Service avec le paramètre HTTP comme argument
response = oauth2.execute(parameter)

If response.Ok Then
    Msgbox response.getJson().getStructure("choices").getStructure(0).getStructure("message").getString("content")
End If

Rem Quand on a terminé nous devons fermer le réponse HTTP.
response.close()

End Sub
Vue la réponse, on peut dire que ChatGPT est un gros mythomane
ChatGPT Http request.png
oauth2 est défini dans le fichier idl XOAuth2Service.idl
parameter est défini dans le fichier idl XRequestParameter.idl
response est définie dans le fichier idl XRequestResponse.idl
Toutes les interfaces Json (parser and builder) sont definies dans com.sun.star.json


A vous d'en profiter...
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par psilocybe le 18 juin 2023 20:47, modifié 1 fois.
LibreOffice 7.3.7.2 - Lubuntu 22.04 - Python 3.10 - Java 11 OpenJDK amd64