Menggunakan aplikasi

Untuk membuat kueri Reasoning Engine, Anda memerlukan instance Reasoning Engine terlebih dahulu. Anda dapat membuat instance baru atau mendapatkan instance yang ada dari Reasoning Engine. Bagian selanjutnya dalam bagian ini mengasumsikan bahwa Anda memiliki instance sebagai remote_app.

Perintah berikut memberikan daftar skema dalam format JSON yang sesuai dengan operasi objek remote_app:

remote_app.operation_schemas()

Berikut adalah contoh daftar skema:

[
    {
        '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',
    }
]

Untuk membuat kueri Reasoning Engine, gunakan metode .query(). Untuk menghindari ambiguitas, tentukan setiap argumen berdasarkan nama argumen.

Vertex AI SDK untuk Python

Perintah berikut adalah contoh kueri Reasoning Engine:

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

Perintah berikut adalah contoh kueri Reasoning Engine:

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

Respons kueri adalah string yang mirip dengan output pengujian aplikasi lokal:

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

Untuk melakukan streaming respons dari Reasoning Engine, gunakan metode .stream_query(). Untuk menghindari ambiguitas, tentukan setiap argumen dengan nama argumennya.

Vertex AI SDK untuk Python

Perintah berikut adalah contoh stream_query Reasoning Engine:

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

Perintah berikut adalah contoh stream_query Reasoning Engine:

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

Reasoning Engine melakukan streaming respons sebagai urutan objek yang dihasilkan secara iteratif. Misalnya, kumpulan tiga respons mungkin terlihat seperti berikut:

{'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

Langkah selanjutnya