Aller au contenu principal
Version : 21 BETA

OpenAIMessage

La classe OpenAIMessage représente un message structuré contenant un rôle, un contenu et un utilisateur optionnel. Cette classe fournit des méthodes pour manipuler et récupérer le texte et d'autres contenus du message.

Propriétés

PropriétéTypeDescription
roleTextLe rôle du message (par exemple, "user", "assistant", "system", "tool").
contentVariantLe contenu du message, qui peut être un texte ou une collection d'objets.
userTextUne propriété facultative représentant l'utilisateur associé au message.
tool_callsCollectionUne collection d'appels d'outils requis par l'assistant. Chaque appel d'outil contient un objet id, type et function.
tool_call_idTextL'ID de l'appel d'outil auquel ce message répond (utilisé lorsque role est "tool").

Propriétés calculées

PropriétéTypeDescription
textTextUne propriété représentant le message textuel.

Fonctions

addImageURL()

addImageURL(imageURL : Text; detail : Text)

ParamètresTypeDescription
imageURLTextL'URL de l'image à ajouter au message.
detailTextDétails supplémentaires sur l'image.

Ajoute une URL d'image au contenu du message.

Exemple d'utilisation

Créer un message simple et joindre une image

// Créer une instance d'OpenAIMessage
var $message:=cs.AIKit.OpenAIMessage({role : "user" ; content : "Hello !"})

// Ajouter une image URL avec des détails
$message.addImageURL("http://example.com/image.jpg" ; "high")

Répondre à un message d'appel d'outil

Lorsqu'un assistant doit utiliser des fonctions externes, il génère un message avec tool_calls pour demander l'exécution de la fonction.

Message de l'assistant demandant des appels à l'outil :

{
"role": "assistant",
"tool_calls": [
{
"id": "call_12345",
"type": "function",
"function": {
"name": "get_database_tables",
"arguments": "{}"
}
}
]
}

Gestion de l'appel d'outil :

Lorsque vous recevez un message d'appel d'outil, vous devez :

  1. Extraire les informations relatives à la fonction :

    • function.name : Le nom de la fonction à appeler (doit correspondre à une fonction définie dans votre OpenAITool - vous pouvez sélectionner le code à exécuter en fonction de ce nom)
    • function.arguments : Une chaîne JSON contenant les paramètres de la fonction qui doivent être analysés avec JSON Parse
    • id : L'identifiant unique pour cet appel d'outil spécifique
  2. Exécuter la fonction : Analyser les arguments (qui sont une chaîne JSON) et appeler la fonction correspondante que vous avez définie dans votre configuration OpenAITool.

  3. Répondre avec le résultat de l'outil : Créer un message de réponse en utilisant le tool_call_id exact de la requête originale.

Exemple de réponse d'outil :

// Analyse des arguments de la fonction (le cas échéant)
var $arguments : Object := JSON Parse($toolCall.function.arguments)

// Exécution du code correspondant à "get_database_tables"
var $tableNames: Text := OB Keys(ds).join(", ")

// Création du message de réponse de l'outil avec le tool_call_id requis
var $toolResponse:=cs.AIKit.OpenAIMessage.new({ \
role : "tool" ; \
tool_call_id : "call_12345" ; \
content : $tableNames \
})
// Ajoutez-le à la conversation et continuez

Important : Le tool_call_id de votre réponse doit correspondre exactement à l'id de l'appel d'outil original. Cela permet au modèle d'IA d'associer correctement votre réponse à l'appel de fonction spécifique qui a été effectué.

Voir aussi