如需查询 Reasoning Engine,您首先需要 Reasoning Engine 的实例。您可以创建新实例,也可以获取现有 Reasoning Engine 的实例。本部分的其余内容假定您的实例为 remote_app
。
以下命令提供了 JSON 格式的架构列表,这些架构与 remote_app
对象的操作相对应:
remote_app.operation_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': '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',
}
]
如需对推理引擎进行查询,请使用 .query()
方法。为避免产生混淆,请使用参数名称指定每个参数。
Python 版 Vertex AI SDK
以下命令是推理引擎查询的示例:
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
以下命令是推理引擎查询的示例:
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?"
}
}'
查询响应是一个字符串,类似于本地应用测试的输出:
{"input": "What is the exchange rate from US dollars to Swedish currency?",
# ...
"output": "For 1 US dollar you will get 10.7345 Swedish Krona."}
如需从 Reasoning Engine 中流式传输响应,请使用 .stream_query()
方法。为避免产生混淆,请使用参数名称指定每个参数。
Python 版 Vertex AI SDK
以下命令是 Reasoning Engine 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
以下命令是 Reasoning Engine 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?"
}
}'
Reasoning Engine 会将响应以一系列迭代生成的对象的形式进行流式传输。例如,一组包含三个响应的响应可能如下所示:
{'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