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
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...