Use the application

To query a Reasoning Engine, you first need an instance of Reasoning Engine. You can either create a new instance or get an existing instance of a Reasoning Engine. The rest of this section assumes that you have an instance as remote_app.

The following command provides a list of schemas in JSON format that correspond to the operations of the remote_app object:

remote_app.operation_schemas()

The following is an example of a list of schemas:

[
    {
        'description': 'Retrieves the exchange rate between two currencies on a specified date.\n'
        '\n'
        'Uses the Frankfurter API (https://api.frankfurter.app/) to obtain exchange rate data.\n'
        '\n'
        'Args:\n'
        '    currency_from: The base currency (3-letter currency code).\n'
        '        Defaults to "USD" (US Dollar).\n'
        '    currency_to: The target currency (3-letter currency code).\n'
        '        Defaults to "EUR" (Euro).\n'
        '    currency_date: The date for which to retrieve the exchange rate.\n'
        '        Defaults to "latest" for the most recent exchange rate data.\n'
        '        Can be specified in YYYY-MM-DD format for historical rates.\n'
        '\n'
        'Returns:\n'
        '    dict: A dictionary containing the exchange rate information.\n'
        '        Example: {"amount": 1.0, "base": "USD", "date": "2023-11-24",\n'
        '            "rates": {"EUR": 0.95534}}',
        'name': 'LangchainApp_query',
        'parameters': {
            'type': 'object',
            'properties': {
                'currency_from': {'type': 'string'},
                'currency_to': {'type': 'string'},
                'currency_date': {'type': 'string'},
            },
            'required': [],
        },
    }
]

To query the Reasoning Engine, use the .query() method. To avoid ambiguity, specify each argument by its argument name.

Vertex AI SDK for Python

The following command is an example of a Reasoning Engine query:

remote_app = reasoning_engines.ReasoningEngine("projects/PROJECT_ID/locations/LOCATION/reasoningEngines/REASONING_ENGINE_ID")

response = remote_app.query(input="What is the exchange rate from US dollars to Swedish currency?")

REST

The following command is an example of a Reasoning Engine query:

curl \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://us-central1-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/REASONING_ENGINE_ID:query -d '{
  "input": {
    "input": "What is the exchange rate from US dollars to Swedish currency?"
  }
}'

The query response is a string that is similar to the output of a local application test:

{"input": "What is the exchange rate from US dollars to Swedish currency?",
 # ...
 "output": "For 1 US dollar you will get 10.7345 Swedish Krona."}

What's next