Appel asynchrone
Si vous ne souhaitez pas attendre la réponse de l'OpenAPI lorsque vous envoyez une requête à son API, vous devez utiliser un code asynchrone.
Vous devez fournir une 4D.Formula pour recevoir le résultat. Voir OpenAIParameters pour une liste de ces paramètres.
La méthode asynchrone est basée sur 4D.HTTPRequest, ainsi la réponse sera reçue dans le process courant.
⚠️ Si votre process se termine à la fin de la méthode courante (par exemple, si vous utilisez New process ou l'éditeur de méthode), la formule de callback peut ne pas être appelée de manière asynchrone. Dans ce cas, il est nécessaire d'utiliser
CALL WORKERouCALL FORM.
Exemples d’utilisation
Liste de modèles
$client.models.list({formula: Formula(MyReceiveMethod($1))})
$1 sera une instance de OpenAIModelListResult, donc la méthode MyReceiveMethod pourrait être :
#DECLARE($result: cs.AIKit.OpenAIModelListResult)
If($result.success)
   Form.models:=$result.models
Else
  Alert($result.errors.formula(Formula(JSON Stringify($1))).join("\n"))
End if
Complétions de chat
var $messages:=[{role: "system"; content: "You are a helpful assistant."}]
$messages.push({role: "user"; content: "Could you explain me why 42 is a special number"})
$client.chat.completions.create($messages; { onResponse: Formula(MyChatCompletionsReceiveMethod($1))})
$1 sera une instance de OpenAIChatCompletionsResult, donc la méthode MyChatCompletionsReceiveMethod pourrait être :
#DECLARE($result: cs.AIKit.OpenAIChatCompletionsResult)
ASSERT($result.success) // Nous utilisons ici onResponse, le callback n'est reçu qu'en cas de succès.
Form.assistantMessage:=$result.choices[0].text