13 / PYTHON × MACHINE LEARNING × RAG
Python API 接続待ち問い合わせの判断を、
根拠と数字で。
架空の問い合わせを分類し、FAQの根拠を検索。回答を使う前に、何を参照し、どこを人が確かめるかを追える検証ラボです。
自主制作・架空データです。実際のお客様の情報は入力しないでください。分類と検索はPythonで実行します。LLM回答は接続設定とアクセスコードがある場合だけ利用できます。
問い合わせを入力
まずは用意した例から。資料にない質問で、回答を保留する動きも確認できます。
判断の材料
問い合わせを実行すると、分類候補・参照したFAQ・回答の状態がここに表示されます。
- 分類で担当領域を絞る
- 取得したFAQの原文と照合する
- 条件や例外を確認し、人が採否を決める
MEASURE BEFORE YOU TRUST
学習とは別のデータで、確かめる。
分類の取り違え、人へ回す割合、根拠を取得できたかをPythonで集計します。画面に書かれた固定の点数ではありません。
「問い合わせを試す」で設定した分類の確認基準を使います。検索評価の類似度は固定0.12です。
WHAT RUNS / WHAT TO VERIFY
構成と、引き継ぐときに見ること。
- Pythonで分類文字2〜4-gramのTF-IDFとComplement Naive Bayes。scikit-learnで架空の48件を事前学習。保存した重みでPythonが推論し、別の12件で評価します。
- FAQを検索7件のFAQを別のTF-IDF索引へ。コサイン類似度の上位3件と資料ID・更新日を返します。埋め込みAPIやベクトルDBは使っていません。
- 根拠と回答を照合通常は原文抜粋。設定済みのLLMモードでは、質問と取得資料をOpenAI Chat Completionsへ送り、参照IDを照合して人の確認へ回します。
このデモで実装したこと
FastAPIの入力検証、検索基準と保留、プロンプト版の比較、参照IDの検証、トークン数・処理時間・実行IDの表示。LLMの失敗時はエラーを表示し、成功した回答に見せかけません。
運用へ進むときに追加すること
実データでの再評価、アクセス権で分けた検索、外部に出せない情報の扱い、予算上限と永続的なレート制限、評価データの拡充が必要です。小さな固定データの結果を本番精度と扱いません。
既存Pythonシステムを引き継ぐなら
起動方法と依存関係、データの入口と出力、定期処理と外部API、ログと再実行方法を順に確認。まず現行動作を小さなテストで残し、変更前後で同じ入力を比較します。このラボはEC2やcronの本番運用経験を実証するものではありません。
面談で説明する順番
①課題と担当範囲 → ②入力・検索・モデルの構成 → ③実際の出力と失敗例 → ④評価と改善 → ⑤未検証の点。直近の実務経験と、この自主制作で新たに試したことを分けて説明します。