Skip to content

harappa8921/mensetsu_rollplay

Repository files navigation

面接ロールプレイシステム

転職面接のスキル向上を目的とした AI 面接官システムです。実際の転職経験をもとに設計し、LangChain と Streamlit を活用してリアルな面接体験を提供します。

デプロイ URL

実際のアプリケーション: https://mensetsurollplay-harappa.streamlit.app/

プロジェクト概要

背景・目的

このプロジェクトは、私自身の転職活動での経験と課題をもとに開発しました。転職面接において以下の課題を感じていました:

  • 面接の場数が限られており、十分な練習機会がない
  • 客観的なフィードバックを得る機会が少ない
  • 業界・職種に特化した質問への対策が困難
  • 深掘り質問への対応力が不足している

これらの課題を解決し、転職活動中の方々が効果的に面接スキルを向上させることができるシステムとして開発しました。

ターゲットユーザー

  • 転職活動中の求職者
  • 面接に不安を感じている方
  • 客観的なフィードバックを求めている方
  • 異業界・異職種への転職を検討している方

特徴・工夫した点

1. パーソナライズされた面接体験

  • ユーザーの年齢、現在の業界・職種、転職希望先を考慮した質問生成
  • 経験レベルに応じた適切な質問難易度の調整
  • 業界・職種特有の質問への対応

2. 高度な質問システム

  • 初回質問から最大3回までの深掘り質問
  • AI による回答評価に基づく適応的な質問生成
  • 実際の面接官の口調を再現した自然な質問

3. 包括的な評価とフィードバック

  • 5つの評価軸(コミュニケーション力、定着性、課題解決力、自走力、スキル)
  • 各評価軸での星評価と具体的な改善提案
  • 合否判定を含む総合的なフィードバック

4. セキュアなアーキテクチャ

  • プロンプトの非公開化によるビジネスロジックの保護
  • ユーザー個人の API キーを使用したセキュアな実行環境
  • Streamlit Cloud Secrets を活用した本番環境での安全な運用

5. 中断・再開機能

  • 面接途中での中断が可能
  • プロフィール情報を保持した面接の再開
  • 中断時の部分的フィードバック生成

使用技術

フロントエンド

  • Streamlit: Web アプリケーション構築

バックエンド・AI

  • Python 3.8+: メイン開発言語
  • LangChain: LLM アプリケーションフレームワーク
  • OpenAI GPT-4o: 質問生成・評価判定・フィードバック生成
  • OpenAI GPT-4o-mini: API キー検証用

インフラ・デプロイ

  • Streamlit Cloud: アプリケーションホスティング
  • GitHub: ソースコード管理
  • Git: バージョン管理

インストール方法

必要な環境

  • Python 3.8 以上
  • OpenAI API キー(従量課金制)

ローカル開発セットアップ

※プロンプトファイル(prompts.py)は非公開のため、リポジトリをクローンしただけでは動きません。 動作を見たい場合は上記記載の デプロイURL で確認してください。 ローカルで動かしたい場合はsecrets_config.pyファイルを参考にご自身でprompts.pyファイルを作成してください。

  1. リポジトリのクローン

    git clone https://github.com/harappa8921/mensetsu_rollplay.git
    cd mensetsu_rollplay
  2. 依存関係のインストール

    pip install -r requirements.txt
  3. プロンプトファイルの設定

    # prompts.py ファイルを作成し、必要なプロンプトを定義
    # (詳細は secrets_config.py を参照)
  4. アプリケーションの起動

    streamlit run rollplay.py
  5. ブラウザでアクセス

    http://localhost:8501
    

使い方

1. API キーの設定

  • OpenAI Platform でAPI キーを取得
  • アプリケーション画面で API キーを入力
  • 自動的にキーの有効性が検証されます

2. プロフィール情報の入力

  • 年齢
  • 現在の業界・職種
  • 転職希望先の業界・職種
  • 現在の役割と経験年数

3. 面接の実施

  • 自己紹介から開始
  • 4つのカテゴリの質問に回答
  • 各質問で1~3回深掘り質問
  • 面接途中での中断・再開が可能

4. フィードバックの確認

  • 5つの評価軸での詳細評価
  • 合否判定
  • 具体的な改善提案
  • 総合的な面接パフォーマンス分析

5. 料金について

  • 1回の面接で約10円の API 利用料
  • 料金はユーザーの OpenAI アカウントに直接課金
  • 回答の長さや利用状況により変動

プロジェクト構成

├── rollplay.py              # Streamlit UI メインファイル
├── interview_logic.py       # ビジネスロジック(LangChain 処理)
├── secrets_config.py        # 設定管理(本番・開発環境対応)
├── prompts.py              # プロンプト定義(ローカル開発用、非公開)
├── requirements.txt         # Python 依存関係
├── .streamlit/
│   └── secrets.toml        # Streamlit Cloud 設定(非公開)
└── .gitignore              # Git 除外設定

技術的な特徴

セキュリティ

  • プロンプトファイルは公開リポジトリに含まれません
  • ユーザーの API キーはセッション終了時に自動削除
  • Streamlit Cloud Secrets による安全な本番運用

パフォーマンス

  • LangChain による効率的な LLM チェーン処理
  • 段階的な質問生成による適切なトークン使用
  • API キー事前検証による失敗の防止

ユーザビリティ

  • 直感的な Web インターフェース
  • 進捗表示による面接状況の可視化
  • 確認ダイアログによる安全な操作

ライセンス

MIT License

開発者

転職経験をもとに実用的な面接練習システムを目指して開発しました。フィードバックや改善提案をお待ちしています。

About

LangChainを用いた面接ローププレイアプリ

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages