Unable to make action work with API

Hello,

I’m new to GPT and have attempted to connect it to an API I use (nocobase). I obtained the schema from the OpenAPI interface, but I’m encountering numerous errors in ChatGPT, specifically regarding “method post is missing operationId; skipping”.

I understand that the operationID is not mandatory for OpenAPI, but is it required for ChatGPT?

Despite these issues, it still displays all the available actions as expected, but none of them work even with the token configured like it should:

When trying with Postman using the path https://domain_com/api/Equipment:List and the same authentication, everything works fine

As I mentioned, I’m new to this, so it might be a dumb question.

Regards,

Baanor

Yeah the operationid is mandatory. Try manually updating the schema after import to have operation ids, see if that works?

Ok, thanks for the reply.
I tried modifying it, wich give me a new error.

In path /Equipement:list, method get, operationId list_Equipement, parameter {'$ref': '#/components/parameters/filter'} is has missing or non-string name;

Looked for the parameters and everything seems good:

 "components": {
        "securitySchemes": {
            "api-key": {
                "type": "http",
                "scheme": "bearer"
            }
        },
        "parameters": {
            "collectionIndex": {
                "required": true,
                "name": "collectionIndex",
                "in": "path",
                "description": "collection index",
                "schema": {
                    "type": "integer",
                    "format": "int64"
                }
            },
            "filterByTk": {
                "name": "filterByTk",
                "in": "query",
                "description": "filter by TK(default by ID)",
                "schema": {
                    "type": "integer",
                    "format": "int64"
                }
            },
            "filterByTks": {
                "name": "filterByTk",
                "in": "query",
                "description": "filter by TKs(default by ID), example: `1,2,3`",
                "schema": {
                    "type": "array",
                    "items": {
                        "type": "integer",
                        "format": "int64"
                    }
                }
            },
            "filter": {
                "name": "filter",
                "in": "query",
                "description": "filter items",
                "content": {
                    "application/json": {
                        "schema": {
                            "type": "object"
                        }
                    }
                }

It’s cut to not flood with all the schema. Tried to debug with chatGPT but nothing much unfortunately.

Here’s the schema for one of my endpoints that works:

“/GitHub/file-content”: {
“get”: {
“tags”: [
“GitHub”
],
“summary”: “Endpoint for retrieving the content of a file in text format”,
“operationId”: “Get File Content”,
“parameters”: [
{
“name”: “path”,
“in”: “query”,
“description”: “The path of the file to retrieve”,
“schema”: {
“type”: “string”
}
}
],
“responses”: {
“200”: {
“description”: “Success”,
“content”: {
“text/plain”: {
“schema”: {
“$ref”: “#/components/schemas/FileContent”
}
},
“application/json”: {
“schema”: {
“$ref”: “#/components/schemas/FileContent”
}
},
“text/json”: {
“schema”: {
“$ref”: “#/components/schemas/FileContent”
}
}
}
}
}
}

OK, so I’m an idiot. I added the OperationID on the GPT side but not on the server side…

I’ll close this topic.