- Autonomous DatabaseサーバーレスでのOracle Spatial AIの使用
- OML Embedded Python Executionでの空間AIの使用
- SQLおよびREST APIを使用した埋込み関数のコール
SQLおよびREST APIを使用した埋込み関数のコール
SQLおよびREST APIを使用して埋込み関数をコールできます。
次のステップを実行します。
- SQLまたはRESTからOML埋込み実行APIをコールする前に、アクセス・トークンを取得します。前提条件として、ADB環境に関する次の情報に注意してください:
tenant_name:
テナンシIDdatabase_name:
データベースの名前user_name:
OMLユーザー名password:
OMLユーザーのパスワードhost:
ルート・ドメイン
RESTリクエストを実行してアクセス・トークンを取得します。 RESTリクエストは、様々なアプローチを使用して実行できます。 たとえば、次のコードは、Pythonを介してRESTコールを使用してトークンを取得する方法を示しています。
import json import requests import warnings import os token=None response = requests.post( f"https://{host}:443/omlusers/tenants/{tenant_name}/databases/{database_name}/api/oauth2/v1/token", headers={"Content-Type": "application/json", "Accept": "application/json"}, json={"grant_type": "password", "username": username, "password": password}, verify=False) token = response.json()["accessToken"] print(f"token='{token}'")
- SQLから埋込みPython関数をコールします。
SQLからOML埋込み実行のコールを実行する前に、アクセス・トークンを常に設定する必要があります。 SQLまたはPL/SQLおよび
pyqSetAuthToken
ファンクションを使用して、トークン・ストアにアクセス・トークンを設定します。exec pyqSetAuthToken('<access-token>');
OMLの
次のコードでは、pyqEval
関数をコールして、SQL問合せでユーザー定義Python関数をコールします。pyqEval
関数を使用して、以前に作成したerrorModelPredict
関数をコールします。 また、この関数は、単一の監視で構成されるX
パラメータを渡します。select * from table(pyqEval( par_lst => '{"X": [[30.6005898, 342200.000]]}', out_fmt => 'JSON', scr_name => 'errorModelPredict' ));
前述のコードの結果は、所定の観測に対する予測中央値収入で構成されます。
NAME VALUE [[48228.470695050346]]
- RESTからのEmbedded Python Functionのコール。
parameters
フィールド内のSpatial AI関数固有のパラメータをJSON文字列として渡して、RESTリクエストを成功させます。次の例では、CURLを使用して、単一の監視を含むパラメータXを使用して
errorModelPredict
関数をコールするリクエストを送信します。 最初にアクセス・トークンを取得する必要があることに注意してください。 この例では、アクセス・トークンはtoken
環境変数で設定され、リクエストで渡されます。curl -i -k -X POST --header 'Authorization: Bearer ${token}' \ --header 'Content-Type: application/json' --header 'Accept: application/json' \ -d '{ "oml_connect": true, "parameters": "{\"X\": [[30.6005898, 342200.000]]}" }' \ "${host}:8080/oml/tenants/${tenant_name}/databases/${database_name}/api/py-scripts/v1/do-eval/errorModelPredict"
次に、リクエスト・ステータス・コードと、指定された観測の推定収入値を表す関数の出力を含むサンプル・レスポンスを示します。
HTTP/1.1 200 OK Cache-Control: no-cache, no-store, must-revalidate Pragma: no-cache X-Frame-Options: SAMEORIGIN X-XSS-Protection: 1;mode=block Strict-Transport-Security: max-age=31536000; includeSubDomains X-Content-Type-Options: nosniff Content-Security-Policy: frame-ancestors 'none' Set-Cookie: JSESSIONID=node0nyjijo5nrw2swfj850bvbauc43.node0; Path=/oml; Secure; HttpOnly Expires: Thu, 01 Jan 1970 00:00:00 GMT Content-Type: application/json Content-Length: 32 {"result":[[48228.470695050346]]}