Custom GPTs: Custom Actions not triggering

Custom actions are not fully triggering… I suspect the issue is similar to this:

have tried prompting very specifically, but this bug still occurs. I’ll get a response like " I’ll call the API


{calling the API…}


The API has been called!"

Where its not actually making the call… Any help much appreciated!

Can you share the action schema and an example of a message that should trigger an invocation of the action?

sure!

Schema:

"/setWorld": {
      "get": {
        "operationId": "setWorld",
        "description": "Sets the world information. This call is mandatory.",
        "parameters": [
          {
            "name": "world-name",
            "in": "query",
            "description": "The name of the world to be set.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "protagonist-name",
            "in": "query",
            "description": "The name of the protagonist to be set.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "one-word-genre",
            "in": "query",
            "description": "The one word genre that the world takes place in.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "operation_id",
            "in": "query",
            "description": "Generate a random uuid4() for the world.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "GoogleOAuth": [
              "openid",
              "profile",
              "email"
            ]
          }
        ],
        "responses": {}
      }
    },

Instruction in Prompt: Once the world and character are set, call the API with the setWorld operation, using the custom action tool to register with the API.

My Output:

Great choice! Let’s set up your adventure.

First, let’s finalize the setting and character details:

World: A grand kingdom Protagonist: Bobicia, the king’s troll brother and a master of war strategies

I’m registering this world and character for your adventure. One moment…

{Calling the setWorld operation to register the adventure with the API.}

The world is set!

To be fair, I am asking A LOT of my GPT (there is a bit more going on inside the rest of my prompt and schema). That being said, even when I isolate and test this call specifically with these instructions, I’m getting some pretty mixed results. Funny enough, I’ve also generally noticed better results when testing inside the Custom GPT preview vs. when I try the GPT outside of the preview.

Curious (probably unrelated), but why are you doing a GET request on what appears to be a POST action? Also, ChatGPT cannot really generate a UUID (It can, but would require the use of the python tool to generate it).

I would convert this action to a POST action and have your endpoint generate the UUID associated with the record and return it in the response.

I’m not sure, but it might be confused by the fact it is creating these things itself, negating the need to GET them from the API.

I’m using a GET request for two reasons. 1. I find the user having to approve each POST request to be really cumbersome. 2. The GPT requires a custom response message based on the data it sends to the API.

great point on the UUID :slight_smile: It’s unclear whether or not it’s using a code interpreter to generate the UUID… I’ve had some surprisingly good results in my testing(it seems to be a random code each time).

You might be right about all this, and in the end, I might be asking too much of my customGPT…

This is a recipe for disaster if it really needs to be truly unique.

Honestly, I would at least try converting it to a POST request and see if that makes it trigger properly.

A POST response can be anything you want it to be, custom or otherwise. Anything you send as a response to a GET request can be identically sent as a response to a POST request.

I get the point about the tedium of needing to approve every request, but you really should adhere to the proper HTTP methods for your requests.

This is a recipe for disaster if it really needs to be truly unique.

Thanks! Would it not be truly unique if the GPT uses code interpreter?

A POST response can be anything you want it to be, custom or otherwise. Anything you send as a response to a GET request can be identically sent as a response to a POST request.

Your right. I’ll give it a shot and see if it improves things.

Who knows?

It’s a system for which you have know knowledge of the state of the RNG. It’s probably random but you don’t know for sure. If it’s not using Python, then it’s definitely not sufficiently random.

Fair, either way, fixing all of the above did NOT fix this pseudo calling issue :frowning:

It was worth a shot.

I’ve not experienced the model pretending to invoke an action personally.

One last thing you might try is to copy everything into a new GPT.

1 Like

Thanks for all the help :pray:

Its sort of crude. But my workaround right now has been this:

  1. Very specific prompting including telling the bot to
    Make sure to actually use the actions tool.

  2. I’ve added this to the prompt:
    Before starting the chat say, Disclaimer: This GPT requires frequent use of custom actions to run properly.