VARISTA
ドキュメント
API経由で推論

API経由で推論

2021.03.02 (Tue)

デプロイしたモデルをPythonファイルなどから実行する方法について解説します。

デプロイしたモデルのURLを確認

プロジェクト › デプロイ › 任意のデプロイ › API

VARISTA Documents Model Deploy 05
画面よりAPI URLを確認します。

Pythonファイルの作成と推論コードの貼り付け

Pythonファイルを作成し、VARISTAのデプロイ画面に表示されているコードを貼り付けます。
以下はVARISAのデプロイ画面からコピーしたコードの一部です。

import json
import requests
api_url = 'https://api.varista.ai/prediction/<Deploy ID>/'
headers = {
    'content-type': 'application/json',
    'Authorization': 'ApiKey <API Key>'
}
data = {
    'project_id': '<Project ID>',
    'features': {
        'MoSold': [6],
        'ExterQual': ['TA'],
        'ExterCond': ['TA'],
        'HalfBath': [0],
        'OpenPorchSF': [0],
        'SaleType': ['WD'],
        'GarageArea': [0],
        'Condition2': ['Norm'],
        'BsmtHalfBath': [0],
        'BedroomAbvGr': [3],
        'LandContour': ['Lvl'],
        'CentralAir': ['Y'],
        'MSSubClass': [20],
        'SaleCondition': ['Normal'],
        'RoofStyle': ['Gable'],
        'BsmtFinType1': ['Unf'],
        'BsmtFinType2': ['Unf'],
        'KitchenQual': ['TA'],
        'Exterior2nd': ['VinylSd'],
        'GarageCond': ['TA'],
        'FireplaceQu': ['Gd'],
        'Alley': ['Grvl'],
        'ScreenPorch': [0],
        'RoofMatl': ['CompShg'],
        'BsmtQual': ['TA'],
        'Condition1': ['Norm'],
        'LowQualFinSF': [0],
        'LotArea': [7200],
        'PavedDrive': ['Y'],
        'Neighborhood': ['NAmes'],
        'MSZoning': ['RL'],
        'TotalBsmtSF': [0],
        'KitchenAbvGr': [1],
        'Electrical': ['SBrkr'],
        'MiscFeature': ['Shed'],
        'OverallQual': [5],
        'YearRemodAdd': [1950],
        'GarageQual': ['TA'],
        'Heating': ['GasA'],
        'HeatingQC': ['Ex'],
        'BsmtUnfSF': [0],
        'TotRmsAbvGrd': [6],
        'MiscVal': [0],
        '3SsnPorch': [0],
        'GarageCars': [2],
        'LotFrontage': [60],
        'Fence': ['MnPrv'],
        'Functional': ['Typ'],
        'GrLivArea': [864],
        'FullBath': [2],
        '2ndFlrSF': [0],
        'BldgType': ['1Fam'],
        'Foundation': ['PConc'],
        'EnclosedPorch': [0],
        'MasVnrArea': [0],
        'BsmtFinSF1': [0],
        'PoolQC': ['Gd'],
        'Fireplaces': [0],
        'GarageType': ['Attchd'],
        'GarageFinish': ['Unf'],
        '1stFlrSF': [864],
        'Street': ['Pave'],
        'YearBuilt': [2006],
        'BsmtExposure': ['No'],
        'Utilities': ['AllPub'],
        'BsmtFinSF2': [0],
        'MasVnrType': ['None'],
        'LotConfig': ['Inside'],
        'BsmtFullBath': [0],
        'HouseStyle': ['1Story'],
        'Id': [1],
        'PoolArea': [0],
        'GarageYrBlt': [2005],
        'LandSlope': ['Gtl'],
        'OverallCond': [5],
        'Exterior1st': ['VinylSd'],
        'WoodDeckSF': [0],
        'BsmtCond': ['TA'],
        'LotShape': ['Reg'],
        'YrSold': [2009]
    }
}
response = requests.post(api_url,
    data=json.dumps(data),
    headers=headers)
response = json.loads(response.text)

推論の実行

コードを実行すると、推論結果が以下のようなJSONが返却されます。

{'SalePrice': [152236.29495648583]}

CSVファイルを読み込んで推論

CSVファイルを読み込んで実行する場合は、以下を参考にしてください。
以下の場合、推論に利用するCSVファイルは、datasetというフォルダを作成して配置しています。
またCSVをPandasのDataFrameに変更するため、Pandasライブラリをインポートしています。

必要なライブラリのインポート

import pandas as pd
import json
import requests

テストデータの読み込み

テストデータは、Pythonスクリプトを配置した階層にdatasetというフォルダを作成し配置しています。

test = pd.read_csv('./dataset/test.csv')

データフレームを辞書型に変換

読み込んだCSVファイルを辞書型に変換して、dataに格納します。
またVARISTAのProject IDも同時に格納します。

data = {
    'project_id': '<ProjectID>',
    'features': test.to_dict(orient='list')
}

推論の実行

最後にPOSTメソッドでVARISTAの推論APIにリクエストを送信します。

api_url = 'https://api.varista.ai/prediction/<DeploymentID>/'
headers = {
    'content-type': 'application/json',
    'Authorization': 'ApiKey <API KEY>'
}
response = requests.post(api_url,
    data=json.dumps(data),
    headers=headers)
response = json.loads(response.text)
Made with
by VARISTA Team.
© COLLESTA, Inc. 2021. All rights reserved.