機械翻訳について

SQLおよびREST APIを使用した埋込み関数のコール

SQLおよびREST APIを使用して埋込み関数をコールできます。

次のステップを実行します。
  1. SQLまたはRESTからOML埋込み実行APIをコールする前に、アクセス・トークンを取得します。
    前提条件として、ADB環境に関する次の情報に注意してください:
    • tenant_name:テナンシID
    • database_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}'")
  2. 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]]
  3. 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]]}