Hi. We’re trying to design a ChatGPTs that uses actions. One of the actions is a post request to an endpoint of third party API. The body of the request must contain some XML. ChatGPTs should construct the XML by replacing some placeholders in a file.xml stored in the ChatGPTs itself. The instructions explicitly state that once the XML placeholders have been replaced, ChatGPTs should pass the XML content to the action so that it uses it to set the body of the request. It looks like ChatGPTs properly replaces the values in the XML file, but the request is always sent with {}
in the body. We’ve tried to simplify the instructions just to get to make it work, e.g. using XML provided directly from the user or sending the content of the XML file without replacements, but the result is always the same.
Here’s a simplified version of our action:
{
"openapi": "3.1.0",
"info": {
"title": "Create things.",
"description": "Post xml content to API to create things.",
"version": "v1.0.0"
},
"servers": [
{
"url": "https://www.example.com"
}
],
"paths": {
"/api/endoint": {
"post": {
"description": "This action receives some XML content as a string. The XML content sets the body of the request with the application/xml content type.",
"operationId": "CreateThing",
"parameters": [
{
"name": "ws_key",
"in": "query",
"description": "API key.",
"required": true,
"schema": {
"type": "string",
"const": "API_KEY"
}
},
{
"name": "output_format",
"in": "query",
"description": "Required response format.",
"required": true,
"schema": {
"type": "string",
"const": "JSON"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/xml": {
"schema": {
"type": "string"
}
}
}
},
"deprecated": false
}
}
},
"components": {
"schemas": {}
}
}
And here’s some really weird conversation where for three times ChatGPTs realises it didn’t pass the XML content to the action, but still fails to follow instructions.
Thanks in advance.