- ライター:宮田 悠太郎
- 2020年にネットワンシステムズに入社。ServiceNow製品の担当を経て、現在はAI、Webアプリ開発に従事。
目次
概要
本記事は社内向け生成AIアプリ「nelmo」誕生から成長まで Part 1の続きとなります。Part1ではnelmoの概要や生まれた経緯について解説しましたが、本記事ではnelmoの機能紹介、技術、構成をご紹介します。
※以前プレスリリースで発表したNELMOは社内全体の生成AIの取り組みを指しています。本記事で紹介するnelmo(社内向け生成AI利用webアプリ)は上記取り組みの一部となります。
同じ読みですが、用途に応じて表記を使い分けています。全社的な取り組みは「NELMO」(大文字)、社内向けWebアプリは「nelmo」(小文字)として記載します。
プレスリリース記事
https://www.netone.co.jp/news/release/20240802_01.html
機能紹介
nelmoにはチャット機能、AIアプリ共有機能など多くの機能が実装されています。それらをいくつか紹介します。
チャット機能 & プロンプト共有機能
nelmoのチャット機能は、スレッド単位で会話の履歴を引き継ぎながらAIと対話できる機能です。
単なるチャットツールとしてだけでなく、下記のような機能により生成AIの利用に不慣れな方でも直感的に使い始められるUIを目指しています。
システム全体としてのコスト管理の観点から週間で上限値を設けているものの、その範囲内ではLLMのコンテキストウインドウを最大限に利用できます。そのため大規模なドキュメントや複雑な質問にも柔軟に対応可能です。
| 機能名 | 詳細 |
|---|---|
| プロンプトエンハンス機能 | ユーザーが入力した質問文を自動で補正・補完し、より的確かつ詳細な回答を引き出せるようにする機能です。意図の曖昧さや不足情報を補うことで、生成AIが最適な文脈で処理できるよう整え、回答の精度を高めます。 |
| ファイルアップロード機能 | Officeファイルをはじめとする各種ドキュメントをアップロードできる機能です。複数の資料をまとめてアップロードし、その内容に基づいて自由に質問することが可能です。 |
| ナレッジ検索機能 | 社内情報に基づいた正確な回答を提供するため、事前に登録したナレッジを活用し、RAG(Retrieval-Augmented Generation)による検索で関連情報を収集します。収集した情報をもとに生成AIが応答を組み立てることで、文脈に即した信頼性の高い回答を実現します。 |
| スレッド共有機能 | スレッド内でのやり取りを他のメンバーと共有できる機能です。 |
| プロンプト改善(エンハンス)機能 |
自身で作成したAIへの指示文(プロンプト)を全社に共有できる機能です。効果的なプロンプトを組織全体で活用することで、知見の蓄積・再利用を支援します。 |
今後はテキスト対話だけでなく、画像生成・動画生成などのマルチモーダル機能も実装予定です。
nelmoチャット画面
プロンプト共有画面
AIアプリ市民開発機能
社員が自分の業務に合わせてAIアプリを開発し、社内で共有できる「AI市民開発」という仕組みを整えています。
市民開発者は、ノーコードのAI開発プラットフォーム「Dify」を活用し、専門的なプログラミングスキルがなくても、自由にAIアプリを作成可能です。業務フローに合わせたプロンプト設計、外部ツールとの連携、ワークフローの自動化などを柔軟に組み込めるため、業務特化型の生成AIアプリを素早く形にすることができます。
完成したアプリは、社内の審査・承認プロセスを経て「nelmo」上に公開され、公開後は全社員が利用できます。
市民開発によって作られたアプリ一覧
パーソナルナレッジ機能
パーソナルナレッジ機能は、業務で蓄積された知見や資料をAIが横断的に検索・参照できる機能です。ユーザーがファイルをアップロードすると、情報はRAGデータベースに保存され、チャット画面から関連情報を即座に検索・活用できます。
SE業務での利用を想定しており、登録したナレッジは社内全体に公開することができるのはもちろん、案件、PJ関係者、部門向けなど公開範囲を限定して共有することも可能です。
議事録機能
当社では会議ツールとしてWebex Meetingを採用しており、録画データをmp4形式でダウンロードすることができます。
議事録機能ではその録画ファイルを、nelmoを経由してアップロードするだけで自動的に文字起こし、AI要約を作成することができます。また作成を行う際、議事録のフォーマットなどに関する指示を与えることもできます。
技術、構成について
インフラ
社内向けAIアシスタント「nelmo」は、最新モデルへの追随性とコスト効率、そしてデータセキュリティを両立させるため、アプリ基盤は堅牢な社内オンプレミス環境、LLM推論はセキュアに接続されたパブリッククラウド(Azure/GCP)を利用するハイブリッド構成を採用しています。
ログイン認証にはAzure Entra IDを導入しており、全ての利用情報は社員情報と紐づいています。
一部のAI市民開発アプリは、NELMOプロジェクトの一つであるVirtual Agent(AI ProCon)で活用されているデータとも連携し、社内のAIシステム全体で知見を共有しています。
nelmoは現在beta版であり、単一インスタンス上でdocker composeによる運用ですが、多くのOSS製品がコンテナベースである点、nelmoが社内の重要インフラへと成長したことからKubernetesベースの統合コンテナ環境への移行を進めています。
開発環境
開発環境は社内の仮想環境上で完結し、コード管理にはセルフホスト型のGitLabを採用。GitLab Runnerを活用したCI/CDにより、運用とリリースの自動化を実現しています。
nelmoではNext.js を軸にした T3 Stack を採用しています。言語は TypeScript を選定し、型安全性を担保することで、品質と保守性の高いコードを開発できる環境に整えています。
限られた開発期間と人員の中で、UI の開発効率を最大化するため、フロントエンドには React と Mantine UI を採用しています。これにより、実装のスピードと品質の一貫性を両立しました。またバックエンドには tRPC と Prisma(ORM)を導入し、API 設計とデータベース操作における開発者体験を向上しました。
さらに、TypeScript では開発が難しい処理を担うため、FastAPI を用いた専用の Python バックエンド(JOB エンジン)を併設しており、ファイルからの文字抽出や議事録機能における動画から音声への変換などを担当させています。またPythonであれば成熟したライブラリを多く活用できるため、上記のような機能の開発の難易度を下げることができました。
開発手法はアジャイル開発を採用し、ユーザーからの要望、新機能を素早く実装しています。
これらの選定と体制により、開発スピードは大幅に向上し、不具合発生率も減り、安定した継続的なアプリ提供へ繋げることができました。
構成図
データ分析
利用状況の可視化は、初期はデータベースに対するクエリを元にExcelで活用状況の可視化をしていました。
しかしAI活用普及に従って、各事業部門から活用状況のデータ提供依頼、経営陣への活用状況レポーティングが増えたため、OSSのBIツールであるApache Supersetを活用し、部門ごとの登録者数や利用回数などの可視化を推進しています。
今後はさらにデータ分析を推進し、AIを活用した会話ログの解析により、何の業務にどのように利用しているかを可視化し、工数削減との相関関係を調査していく予定です。
まとめ
現在、生成AIモデルや関連サービスは次々に登場しており、それぞれに強みがあります。一方で、単一のサービスだけで全てを満たすことは困難です。
そこでネットワンシステムズに適した、最新の技術トレンドを柔軟に取り込める社内向け生成AIプラットフォームとして「nelmo」を開発しました。
ユーザーにとって使いやすいUIはもちろん重要ですが、迅速に新しい技術を取り入れ、継続的に利用者の声を反映していくためには、開発体制・環境・インフラの整備が不可欠です。
nelmoでは新しい技術スタック、アジャイル開発体制を取り入れることで、スピードと柔軟性の両立することができました。
今後も、ユーザー体験の向上、最新モデルへの対応、現場主体のアプリ開発支援を軸に、社内の生成AI活用をさらに加速させていきます。
この記事を読んで、共感するところ、聞いてみたいところがあれば、お気軽にご連絡ください。
※本記事の内容は執筆者個人の見解であり、所属する組織の見解を代表するものではありません。