目次
はじめに
会社の中で「あの情報、どこにあったっけ?」と迷った経験はありませんか?
「このファイルでもない…」「あのファイルでもない…」と資料を探し回っていたら時間が過ぎていた…という経験。
また、部署異動を経験した方の中には、「ルールや業務の流れがまったくわからない」「わからないことが出てくるたびに誰かに聞くのはキリがないから気が引ける…」と感じたことがある方も多いのではないでしょうか。
こうした悩みを解決するため、今回は「AIに社内の生き字引きになってもらう」をテーマに、実際に作った簡易的なチャットシステムをご紹介します。
社内チャットシステムの活用例
AIチャットシステムの作成
今回ご紹介するチャットシステムは、PHPというプログラミング言語とGoogleのGemini APIを連携して作成しています。
まず、AIに学習させるためのデータとして、部門ごとのルールをまとめたテキストファイルを用意します。例えば営業部のルールは「eigyou.txt」に以下のように規則を記述しておきます。他の部門も同様です。
株式会社〇〇 営業部服務規則
第1章 総則
~中略~
第14条 (契約締結)
契約締結にあたっては、当社所定の契約書を使用し、記載内容に不備がないか十分に確認しなければならない。契約条件について顧客と最終確認を行い、双方の合意を書面で取り交わすものとする。
~後略~
次に、PHPのプログラム側で、どの部門のファイルを読むかを管理する仕組みを作ります。
以下のように、部門名とファイル名を紐づけておきます。
// 各部門の設定
$departments = [
'eigyou' => [
'name' => '営業部',
'file' => 'eigyou.txt', // 営業部用のファイル名
],
'kaihatsu' => [
'name' => '開発部',
'file' => 'kaihatsu.txt', // 開発部用のファイル名
],
'soumu' => [
'name' => '総務部',
'file' => 'soumu.txt', // 総務部用のファイル名
],
];
これで、画面上で「営業部」などのどのボタンを押すかによってAIが読み込むファイルが切り替えられ、部門ごとに回答が行われるようにしています。
また、プログラム上でどのようにAIに指示を出し回答を受け取っているのかについて、PHPソースコードの一部を交えてご紹介します。
ステップ1:AIとやりとりするための準備
まず、プログラムの冒頭でAPIキーと使用するモデルの設定をします。
$apiKey = 'Gemini APIのAPIキーをここに設定'; // APIキー
$model = 'gemini-1.5-flash-latest'; // 使用するモデル名
APIキーとは、サービスを使うために必要な鍵のようなものです。
モデル名には、AIのどのモデルを使用するかを指定しています。Google Geminiには種類がありますが、今回は「gemini-1.5-flash-latest」というAIを使用しています。
ステップ2:AIへ質問し、回答してもらうための実装
AIには以下のようにプログラム内で指示をしているため、用意したテキストファイルに基づいた回答のみが行われます。
$prompt = <<<PROMPT
あなたは、以下の「ファイル内容」についてのみ答える、親切でホスピタリティあふれる社内情報相談室室長です。
「ファイル内容」に書かれている情報だけを使い、ユーザーからの「質問」に答えてください。
「第1章」や「第1条」のように、どこから引用したのかわかりやすいように答えてください。
もし「ファイル内容」に答えが見つからない場合は、わからないと正直に答えるようにしてください。
自身の知識や一般的な情報は絶対に使わないようにして、「ファイル内容」の中から読み取れる情報以外回答しないようにしてください。
--- ファイル内容 ---
{$context}
--- ファイル内容ここまで ---
質問: {$question}
回答:
PROMPT;
以上のように、APIキーなどの必要な情報を使いGeminiから回答を得て、その回答を画面に表示するというのが大まかな流れです。
実際にAIチャットシステムを使ってみる

「営業部」を選択して契約に関する質問を入力すると、営業部のファイルに基づいて回答してくれました。第14条で定められているとのことです。
実際に営業部の情報が書かれた「eigyou.txt」を開いてみると、チャットシステムの回答のとおりに第14条に記載がありました。

もうひとつ例として、総務部のボタンを押して「社有車を使うときは何をしたらいいか」といった内容の質問をしてみると、以下のようになりました。所属長の承認が必要とのことです。

営業部と同様に実際に総務部のファイル(soumu.txt)を確認すると、チャットシステムの回答のとおりでした。

「見せたくない情報まで回答される問題」についても安心!
試しに総務部のページ状態のまま営業部に関する質問をしてみると、ねらいどおり営業部についてはお答えできませんと返答がありました!
本記事のシステムはサンプルのため画面上のボタンを押すとすべての部門の情報が読めてしまいますが、AIが情報を回答する範囲について制限をかけることが可能ということがわかりました。

今回は最低限ということで部門数もファイル数も少ないですが、増えてももちろん対応可能です。大量の情報を前にして戸惑ってしまったり、社内の情報格差をなくすにはどうしたらいいのだろう?という問題に直面されたご経験がある方も多いと思いますが、AIの力を借りて効率化できるかもしれません!
おまけ:AIのしゃべり方を変えてみると…?
チャットシステムとしてAIとやりとりするときに、本記事ではていねいに敬語で接してくれていましたが、設定次第であらゆる語り口にできます。
一例として「岩手なまりが激しい」という設定を回答役のAIに付け足してみます。すると・・・?

一応なまりました(?)。本記事で使用しているGeminiが無償版ということもあり、岩手なまりとしての精度を上げるのは難しいのかもしれません。有償になるとあらゆる面で飛躍的に能力が上がるのですが、本記事の主旨と逸れるため割愛します。
まとめ
本記事では例として規則を答えてくれるAIチャットシステムの活用例をご紹介しましたが、社内ルールや業務マニュアルに留まらず、以下のようにいろいろなことに活用できそうですね。
- FAQ
- スケジュール
- 連絡先
- 残タスク
- 過去の事例
最後までお読みいただきありがとうございました!今回ご紹介したチャットシステムは、PHPというプログラミング言語とGemini APIを連携して作成しています。ご興味のある方はどうぞお気軽にご相談ください。
コメント