Utilizzare l'applicazione

Per eseguire query su un motore di ragionamento, devi prima avere un'istanza del motore di ragionamento. Puoi creare una nuova istanza o ottenere un'istanza esistente di un motore di ragionamento. Il resto di questa sezione presuppone che tu abbia un'istanza come remote_app.

Il seguente comando fornisce un elenco di schemi in formato JSON che corrispondono alle operazioni dell'oggetto remote_app:

remote_app.operation_schemas()

Di seguito è riportato un esempio di elenco di schemi:

[
    {
        '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': 'query',
        'parameters': {
            'type': 'object',
            'properties': {
                'currency_from': {'type': 'string'},
                'currency_to': {'type': 'string'},
                'currency_date': {'type': 'string'},
            },
            'required': [],
        },
        'api_mode': '',
    },
    {
        '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 the exchange rate is retrieved.\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'
        '    generator: A generator yielding dictionaries representing intermediate steps and the final result.\n'
        '        Intermediate steps examples:\n'
        '            {'
        '                "actions": ['
        '                    {'
        '                        "tool": "get_exchange_rate",'
        '                        "tool_input": {'
        '                            "currency_from": "USD",'
        '                            "currency_to": "SEK"'
        '                        },'
        '                        "tool_output": ...'
        '                    }'
        '                ]'
        '            }\n'
        '            {'
        '                "steps": ['
        '                    {'
        '                        "action": {'
        '                            "tool": "get_exchange_rate",'
        '                            "tool_input": {'
        '                                "currency_from": "USD",'
        '                                "currency_to": "SEK"'
        '                            },'
        '                            "tool_output": ...'
        '                        },'
        '                        "observation": ...'
        '                    }'
        '                ]'
        '            }\n'
        '            {'
        '                "output": "The exchange rate from US dollars to Swedish currency (SEK) is ...",'
        '                "messages": [...]'
        '            }\n',
        'name': 'stream_query',
        'parameters': {
            'type': 'object',
            'properties': {
                'currency_from': {'type': 'string'},
                'currency_to': {'type': 'string'},
                'currency_date': {'type': 'string'},
            },
            'required': [],
        },
        'api_mode': 'stream',
    }
]

Per eseguire query sul motore di ragionamento, utilizza il metodo .query(). Per evitare ambiguità, specifica ogni argomento tramite il nome.

SDK Vertex AI per Python

Il seguente comando è un esempio di query del motore di ragionamento:

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

Il seguente comando è un esempio di query del motore di ragionamento:

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?"
  }
}'

La risposta alla query è una stringa simile all'output di un test dell'applicazione locale:

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

Per riprodurre in streaming le risposte dal Reasoning Engine, utilizza il metodo .stream_query(). Per evitare ambiguità, specifica ogni argomento tramite il relativo nome.

SDK Vertex AI per Python

Il seguente comando è un esempio di motore di ragionamento stream_query:

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

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

REST

Il seguente comando è un esempio di motore di ragionamento stream_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:streamQuery?alt=sse -d '{
  "input": {
    "input": "What is the exchange rate from US dollars to Swedish currency?"
  }
}'

Il Reasoning Engine trasmette le risposte come sequenza di oggetti generati in modo iterativo. Ad esempio, un insieme di tre risposte potrebbe avere il seguente aspetto:

{'actions': [{'tool': 'get_exchange_rate', ...}]}  # first response
{'steps': [{'action': {'tool': 'get_exchange_rate', ...}}]}  # second response
{'output': 'The exchange rate is 11.0117 SEK per USD as of 2024-12-03.'}  # final response

Passaggi successivi