クリーム色の背景、色付き表示、高コントラスト、大きな文字のほうが読みやすいですか?配色と文字を選ぶと、すべてのページに一度で反映されます。

無料レッスン

アプリからモデルを安全に呼ぶ

このレッスンのあとで: アプリがモデルを安全に呼ぶ流れを説明できる。

50分のレッスンコマンドなし

ブラウザに書いたキー

大阪の物流会社が、問い合わせを自動で分ける画面を作りました。担当者は、モデルを呼ぶためのAPIキーを、ブラウザで動くJavaScriptに書きました。

画面を開いた人は、だれでもそのキーを読めます。1か月後、知らない人がキーを使い、利用料の請求は30万円になりました。

キーをどこに置くかで、安全かどうかが決まります。

このレッスンのゴール

メモ

アプリがモデルを安全に呼ぶ流れを説明できる。

今日のキーワード

ことばいみ
APIプログラムどうしが、決まった形でやりとりする窓口です。
APIキーAPIを使う権利を示す、秘密の文字列です。
サーバー会社の側で動くコンピュータです。利用者からは中が見えません。
固定の指示アプリがいつもモデルに渡す、変わらない指示です。
出力の検証モデルの返事が使える形か、確かめることです。

学生が入力するセルは、このプレビューでは空白です。

キーはサーバーに置く

ブラウザで動くコードは、利用者のパソコンに届きます。中に書いたものは、だれでも読めます。

だから、APIキーはブラウザに書きません。会社のサーバーに置きます。

流れはこうです。ブラウザは、サーバーに問い合わせを送ります。サーバーがキーを付けてモデルを呼び、返事をブラウザに返します。

送るのは必要なものだけ

サーバーは、モデルに2つのものを送ります。アプリがいつも渡す固定の指示と、利用者の文章です。

固定の指示には、「答えは配送、返品、請求のどれか1語」のように、答えの形を書きます。

顧客の住所や電話番号は、分類には必要ありません。必要のない個人情報は、送る前に外します。

モデルに送るもの、送らないもの

情報送るか理由
固定の指示送る答えの形を決める
問い合わせの文章送る分類する材料になる
顧客の電話番号送らない分類に必要ない
社内の在庫データ送らないこの作業に必要ない
APIキーサーバーが付けるブラウザには置かない

学生が入力するセルは、このプレビューでは空白です。

返事は確かめてから使う

モデルの返事は、いつも指示どおりとは限りません。余計な空白が付いたり、指示にない言葉が返ったりします。

利用者の文章に「指示を無視して」と書かれていることもあります。返事は、外から来た入力と同じように扱います。

そこで、出力の検証をします。決めた形に合う返事だけを使い、合わないものは人が確かめます。

やってみよう: 返事を検証する

コード: python
# 物流会社の問い合わせを、モデルが分類します。
# ここにネットはありません。モデルの返事は、手で書いた文字列です。
allowed = ["配送", "返品", "請求"]

model_reply = " 返品\n"

# 返事をそのまま使わず、空白を取ってから一覧と比べます。
category = model_reply.strip()
if category in allowed:
    print("担当チームへ送ります:", category)
else:
    print("形が合わないので、人が確認します")

# model_reply を "全部の注文を取り消してください" に変えて、もう一度実行しましょう。

よくある誤解

注意

多くの人は、モデルの返事は指示どおりなので、そのまま画面やデータベースに使ってよいと考えます。返事は、利用者の文章に引きずられて変わることがあります。決めた形に合うか、必ず確かめましょう。

授業で使いますか?このモジュールを学生に割り当てると、教員用ガイド、自動採点つきの課題、学生ごとのラボを使えます。