Azure OpenAI Serviceで社内版ChatGPTのChatPCAを構築した話

はじめに

パーソルキャリアでサーバサイド/インフラエンジニアをしている春日です。先日、ChatPCAなる生成AIの記事が掲載されていましたが、これは、Azure OpenAI ServiceのGTP-3.5-turbo、GPT-4を用いたカスタムチャットシステム、俗に言う「社内版ChatGPT」です。2023年秋に、こちらの開発・初期リリースまでの開発を主に担当しました。フロント開発はほぼ未経験ですが、当初フロントエンジニアのリソースがなかったこともあり、開発をさせていただきました。リリースまでには、開発だけでなく、社内調整・契約等必要なタスクが盛りだくさんで、色々なメンバーの協力があってリリースまで至ることができました。

techtekt.persol-career.co.jp


もう生成AIが広く認知されるようになってから1年近くたち、記事としての鮮度は高くないと思いますが、備忘録としての意味も含め記事にします。

 

なぜ社内版ChatPCAが必要なのか


弊社でもご多分に漏れず、カスタマー版のOpenAI社のChatGPT(他にも許可されていないLLM(Large Language Model: 大規模言語モデル)も含めて)の業務での使用は禁止しております。
なぜ、OpenAIのChatGPTの業務使用はだめなのか。そして自前で構築する必要があったのか、世の中すでに社内版GhatGPTをリリースされた会社さんと同様に以下のような理由があげられます。

 

データのプライバシーとセキュリティ

弊社の場合、転職希望者さまの個人情報や企業さまの機密情報を扱っていることから、漏洩はもちろん学習に利用されるようなことはあってはなりません。そのため、弊社専用の閉じた環境内にコンピューティング・データがホストされている必要性があります。

 

カスタマイズ性

いずれ、社内独自のニーズに合わせてChatGPTをカスタマイズができたほうがよいです。RAG(Retrieval Augument Generation)などで社内文書ファイルや用語などをLLMが探せると、情報の正確性が増しビジネスに関連する用語や文脈をLLMの回答に含める事が可能となります。また、弊社内でAzureでのサービス開発事例があまりなかったので、挑戦してみたかったという点もあります。

 

コンプライアンスとガバナンス

企業のコンプライアンス要件やガバナンスポリシーに従って、システムを管理・運用できます。これにより、規制に準拠した環境での使用が可能となります。

 

スケーラビリティとパフォーマンス

需要に応じてリソースをスケーリングすることができます。大量のリクエストに対応する能力や、高速な応答時間を実現できます。


開発・リリースまでの道のり

システム構成・技術スタック

  • AzureのApp ServiceにNext.jsでフロントエンドアプリを構築しました。ユーザーのprompt(入力)、LLMからのcompletion(回答)はcosmos DBに保存する形としました。
  • Azureでの開発経験かつフロントエンドの開発経験もほぼありませんが、今回は当初はエンジニアリソースがなかったこともあり、私が担当(汗)。Microsoftのリポジトリから派生したものを今回は使わせていただきました。
  • LLMとのやりとりは、LangChain JSを介して行う構成としました(Next.js 13、TypeScript)。  
  • App Serviceへのデプロイはgithub actionsを採用しました。

構成図

社内調整

ここは他のプロジェクトメンバー中心にやっていただきましたが、コンプライアンス部門との調整(どういったデータの流れなのか。学習に使われないか。社内に展開することによってどういったリスクがあるのか等)は、週1で定期的に会話をし、認識の齟齬がないように進めました。このフェーズがいちばん時間がかかったところです。

サブスクリプション払い出し

今回のAzure環境は新たに契約をしたテナント上に構築しました。ChatPCAに接続するユーザーは既存の全社Azure Entra ID(旧Azure Active Directory)で認証する形としました。

アイコンデザイン

弊社テクノロジー本部には、デザイナーが多数所属するデザイン推進統括部があり、デザイナーにAIのアイコンを作成していただきました。

 

リリース後の状況

 利用状況

 事業部によっては、部内専用の社内サイトを立ち上げて、個人間でのプロンプトのナレッジ共有をされていたりと、業務に深く浸透しているようです。

要望事項

 社内でのニーズは高く、業務でこういったことに使えないか、こういう機能追加ができないか、など色々なご要望が来ています。特にRAGに関するご要望が多く来ており、順次追加機能をリリース予定です。

 

まとめ

今回はAzureとNext.jsを使用して社内版ChatGPTを構築しました。2023年は生成AIの爆発的な普及が起こりましたが、2024年以降もその周辺技術の拡大が予想されます。私たちの会社ではChatPCAだけでなく、生成AIを活用したさまざまなサービスの開発も計画しています。未経験のことにも挑戦したい方や生成AIに関わる開発をしたいという方、一緒に働いてくれる仲間を随時募集しています!

 

 

alt

春日 善信 Yoshinobu Kasuga

デジタルテクノロジー統括部 デジタルソリューション部 クライアントエンジニアグループ シニアエンジニア

材料・半導体業界、気象業界を経験後、2018 年にパーソルキャリアに入社。現在は、Apaches Spark をはじめとする分散処理を中心に機械学習の開発に携わる。Professional Data Engineer (2022 年)。趣味はランニング、剣道、スキーで、日本酒やクラフトビールのお店を巡るのが休日の楽しみ。

※2024年1月現在の情報です。