クイックスタートガイド

このガイドでは Private AI コンテナのセットアップ方法について説明します。

info

Private AI クラウド API (無償デモ版) を利用されたい場合は、ポータルアカウント を作成しサンプルコードを実行することができます。

コンテナのセットアップ

Private AI コンテナはオンプレミス、任意のクラウド環境にデプロイできます。多くのケースで AWS、Azure をご利用頂いています。本番環境へのデプロイには Kubernetes を推奨しています。インストールガイド もご参照ください。

カスタマーポータルへのログイン

ご契約頂いたお客様には弊社とのオンボーディングプロセスの開始時に、カスタマーポータルアカウントが発行されます。各種リンク、ライセンスファイルのご提供、弊社コンテナレジストリへのログイン、コンテナイメージの Pull 手順等が確認できます。

オンボーディング時のご不明な点に関しては、お客様専用の Slack チャネル経由でカスタマーサポートチームにご連絡ください。メール support@private-ai.com でお問い合わせ頂くこともできます。

コンテナイメージの取得

カスタマーポータルにアクセス可能になりましたら、最新のコンテナ取得のためのコマンドを確認できます。Private AI コンテナは弊社の Azure コンテナレジストリに置かれています。レジストリへのログインコマンドは以下となります。

Copy
Copied
docker login -u INSERT_UNIQUE_CLIENT_ID -p INSERT_UNIQUE_CLIENT_PW crprivateaiprod.azurecr.io

ログインに問題がある場合にはカスタマーサポートにご連絡ください。

ライセンスファイルの取得

カスタマーポータルからライセンスファイルも取得頂くようになっています。メインページをご確認ください。ダウンロードリンク、ライセンス体系の情報、ライセンス失効日などが確認できます。

コンテナの取得と起動

バージョン 3.0 より、ライセンスファイルは認証に使用されます。コンテナ起動時にライセンスファイルをマウントします。

Copy
Copied
docker run --rm -v "full path to your license.json file":/app/license/license.json \
-p 8080:8080 -it crprivateaiprod.azurecr.io/deid:<tag>

サンプル:

Copy
Copied
docker run --rm -v "/home/johnsmith/paisandbox/my-license-file.json":/app/license/license.json \
-p 8080:8080 -it crprivateaiprod.azurecr.io/deid:3.0.0-cpu

秘匿化リクエストの送信

コンテナ上のエンドポイントへ向け、秘匿化リクエストを送信する例を示します。

Request BodycURLPythonPython Client
Copy
Copied
{
    "text": [
        "Hello John"
    ]
}
Copy
Copied
curl --request POST --url http://localhost:8080/process/text --header 'Content-Type: application/json' --data '{"text": ["Hello John"]}'
Copy
Copied
import requests

r = requests.post(url="http://localhost:8080/process/text",
                  json={"text": ["Hello John"]})

results = r.json()

print(results)
Copy
Copied
from privateai_client import PAIClient
from privateai_client import request_objects

client = PAIClient(url="http://localhost:8080/")

text_request = request_objects.process_text_obj(text=["Hello John"])
response = client.process_text(text_request)

print(response.processed_text)

ファイルの秘匿化処理

base64 エンコード方式でファイル秘匿化リクエストを送信する場合のエンドポイントは /process/files/base64 です。

Request BodycURLPythonPython Client
Copy
Copied
{
    "file": {
        "data": file_content_base64,
        "content_type": "image/jpg",
    },
}
Copy
Copied
echo '{"file": {"data": "'$(base64 -w 0 sample.jpg)'", "content_type": "image/jpg"}}' \
| curl --request POST --url 'http://localhost:8080/process/files/base64' \
-H 'Content-Type: application/json' -d @- | jq -r .processed_file | base64 -d > 'sample.redacted.jpeg'
Copy
Copied
import base64
import requests

# インプット、アウトプットファイルの指定
filename_in = "<input filename>"
filename_out = "<output filename>"

# ファイルの読み取りとエンコード
with open(filename_in, "rb") as f:
    b64_file_content = base64.b64encode(f.read())
    b64_file_content = b64_file_content.decode("utf-8")

# リクエストの作成と結果の取得
r = requests.post(url="http://localhost:8080/process/files/base64",
                  json={"file": {"data": b64_file_content, "content_type": "image/jpg"}})
results = r.json()

# デコードとファイルへの出力
with open(filename_out, "wb") as f:
    f.write(base64.b64decode(results["processed_file"]))
Copy
Copied
from privateai_client import PAIClient
from privateai_client.objects import request_objects
import base64

# インプット、アウトプットファイルの指定
filename_in = "sample.pdf"
filename_out = "sample.redacted.pdf"

file_type= "application/pdf"
client = PAIClient(url="http://localhost:8080/")

# ファイルの読み取り
with open(filename_in, "rb") as b64_file:
    file_data = base64.b64encode(b64_file.read())
    file_data = file_data.decode("ascii")

# リクエストの作成
file_obj = request_objects.file_obj(data=file_data, content_type=file_type)
request_obj = request_objects.file_base64_obj(file=file_obj)
resp = client.process_files_base64(request_object=request_obj)

# ファイルへの出力
with open(filename_out, 'wb') as redacted_file:
    processed_file = resp.processed_file.encode("ascii")
    processed_file = base64.b64decode(processed_file, validate=True)
    redacted_file.write(processed_file)

直接ファイルを受け付けるには /process/files/uri がエンドポイントになります。こちらでは base64 エンコードのオーバーヘッドを削減し、リクエストへのセンシティブな情報付加を削減できます。コンテナの実行 を合わせてご覧ください。

© Copyright 2024 Private AI.