ADOCインターナショナル

2025-07-11

JEDIプログラム活動報告②:ChatGPTを活用して総務によくある問い合わせの回答や社内規則の確認用システムを構築

はじめに

ADOC TECHブログ運営事務局のAkiです。
前回に引き続き、今回も「JEDIプログラム」の活動レポートをお届けします。

当社では、若手社員の早期育成のため、毎年当社独自の育成プログラムとして「JEDIプログラム」を実施しています。今年のプログラムは2チームに分かれて活動を行い、前回のADOC TECHブログではJEDIプログラムについてお伝えした後、顔認証とストレスチェック機能を備えた勤怠管理システムの開発に取り組んだチームの活動についてご紹介しました。
JEDIプログラム活動報告①:顔認証とストレスチェック機能を備えた勤怠管理システムの開発

今回は、もう1チームの活動の模様についてお伝えします。どうぞご覧ください!

◆ ◆ ◆ ◆ ◆

ProvarというSalesforce向けテストツールのテクニカルサポートをしているBambaです。
JEDIプログラムで私たちのチームが行った活動についてご紹介します。

取り組みテーマ

私たちのチームが取り組んだテーマは「ChatGPTを活用して総務によくある問い合わせの回答や社内規則の確認用システムを構築」です。

どのテーマで活動をしていくかを決めるにあたってチームで話し合いを行い、会社から提示されたそれぞれのテーマについて必要な技術やツール、開発工数を整理した上で、最も実現可能性が高く、かつ実務に応用しやすいテーマとして、「ChatGPTの活用」を選びました。
チームメンバーの多くがPythonに慣れていたこと、そして私がWebアプリ開発の経験があったことも理由の一つです。加えて、近年注目されている生成AI技術を使って実用的な社内システムを構築できる点にも魅力を感じました。

ゼロから始める社内AI開発:システムを構築するまでの道のり

テーマを決めた後、初めに必要な技術を短期間で習得するフェーズを設けました。ChatGPTの導入に加えて、実際のWebアプリケーションとして機能させるためには、フロントエンドからバックエンド、データベース、セキュリティ、バージョン管理まで幅広いスキルが求められます。
システムを構築するために下記の技術習得を行いながら、実装を進めていきました。

  1. Django

  2. バックエンドの開発にはPython製のフレームワーク「Django」を採用しました。
    Djangoは「バッテリー付き」と称されるほど多機能で、ユーザー認証、データベース連携、フォーム処理、テンプレートエンジンなどが標準装備されています。これにより、開発効率を高く保ちながら堅牢なWebシステムを構築できる点が決め手となりました。

  3. 開発環境(VSCode)

  4. テキストエディタとしては、軽量かつ拡張性の高い「Visual Studio Code(VSCode)」を採用しました。Python、Django、Gitなどの拡張機能を導入することで、効率的な開発が可能になりました。

  5. GitHub

  6. バージョン管理とチーム開発のためにGitとGitHubを導入。
    これにより、チーム全体で安全かつ効率的に開発作業を進めることができました。

  7. ChatGPT APIとRAGの導入
  8. 中心機能となるチャットボットには、OpenAIのChatGPTを活用しました。APIを通じてユーザーの入力を送信し、適切な応答を得る仕組みを構築しました。
    ただし今回構築するシステムでは、ChatGPTに社内独自の文書(社内規定など)に基づいた回答をさせる必要があります。そこで、「RAG(検索拡張生成)」というアーキテクチャを採用。これは、以下の2ステップから構成しました。

    a.ユーザーの質問に基づいて、社内文書の中から関連する情報を検索・抽出
    b.抽出結果をChatGPTに渡し、その文脈を考慮した自然な回答を生成

    この手法により、汎用モデルでありながら、まるで社内専用のAIアシスタントのような振る舞いを実現しました。

そして上記の知識習得が済んだ段階で、アプリケーションの構築を開始しました。開発は「基本画面の作成 → チャット機能の実装 → 社内データ連携」の順で進めていきました。

アプリケーションには6つの主要画面を用意しました。

No. 画面名 ファイル名 概要
1 ログイン画面 index.html サイトを開くためにログインを行う。
2 TOP画面 top.html サイトのポータル画面。各ページの説明が記載されている。
3 社内ヘルプデスク HelpDesk.html 問い合わせしたい内容をチャット形式で聞くことができる。
回答に対して評価とコメントを残すことができる。
4 質問履歴 history.html 社内ヘルプデスクで質問した内容と評価した内容が、履歴として一覧表示される。
5 お問い合わせ画面 contact.html 総務に問い合わせしたい内容の登録フォーム表示と送信が可能。
6 ユーザー情報一覧 user_info.html 登録しているユーザー情報を表示することができる。
Webアプリケーションのサイトマップ

開発にあたっては、セキュリティにも細心の注意を払い、以下のような対策を実施しました。

  • 機密情報はGitHubにアップロードせず、ローカルPCで管理
  • 開発中はダミーデータを使用し、ChatGPTが実データを学習しないよう制御
  • テスト用に2つのシステム(AとB)を用意し、データ有無による回答の差異を検証
  • 入力バリデーションやCSRFトークンの導入、パスワードのハッシュ化などDjangoの標準セキュリティ機能を活用

データ連携と課題

当初は、社内の様々な文書(ガイドライン、手順書、マニュアル等)をチャットボットに取り込む予定でしたが、開発期間の都合上、社内規則に関する文書のみを対象としました。
PDFやWordファイルをテキストに変換し、OpenAIの埋め込みAPIを使ってベクトル化。ユーザーの質問もベクトル化して類似度検索を行い、該当箇所をChatGPTに渡すことで、的確な回答が生成されるよう設計しました。

成果と今後の展望

そして試行錯誤の末、以下の機能・特徴を持ったシステムが完成しました。

  • 社内情報に特化した、チャット対応が可能なヘルプデスク
  • ユーザーごとの問い合わせ履歴とフィードバック機能
  • Djangoによるセキュアな認証とデータ管理
  • ChatGPTとRAGを用いた自然で高精度な対話生成
  • コストに応じてGPT-3.5またはGPT-4の選択が可能

今後は、より多くの社内データを追加したり、また管理者向け分析機能、スマート検索機能、メール通知機能などを追加することで、より実用的な社内ツールに進化させることが可能となっています。

技術的課題を乗り越え、チームで掴んだ成功体験

RAG(検索拡張生成)をシステムに実装する作業は、技術的な難しさが多く、特に文書の分割方法やベクトル検索の精度調整、APIのトークン制限などに苦労しました。また、ChatGPTに正しく文脈を渡すためのプロンプト設計や、レスポンスの安定性にも気を配る必要がありました。

しかしその一方で、最新のAI技術を活用して実際に社内向けのチャットボットが機能する様子を見るのは非常に刺激的で、楽しくやりがいのある体験でした。これまで触れる機会の少なかった生成AIや自然言語処理の仕組みに深く関われたことで、自分たちのスキルの幅が広がったと実感しています。

また、このシステムを設計通りに実装させる以外にも、プロジェクト管理と良好な作業環境の構築が重要だと感じました。
今回のプログラムではテーマ自体は与えられていましたが、それ以外の要件定義やスケジュール管理、業務プロセスなどはすべて自分たちで自由に決める必要がありました。これはとても興味深くやりがいのある反面、時には難しさも感じました。

チームメンバー全員が若手・新人社員で構成されていたため、「どう進めるべきか」が明確でない場面も多く、アイデアは出るもののそれが正しい方向かどうか確信が持てず、すべてが手探りの状態でした。まさに“試行錯誤”の連続だったと思います。さらに、このプロジェクトは日々の業務に加えて取り組むものであったため、メンバー全員が常に十分な時間を確保することが難しいという現実的な制約もありました。

それでも最終的には、チーム全体で思い描いた通りのシステムを完成することができ、良い成果を出すことができたと思いますし、非常に意味のある経験になったと感じています。今回の学びは、今後のキャリアにおけるさまざまなプロジェクトにも必ず活かせると確信しています。

ブログトップへ