GoとReact、Ollamaを組み合わせたローカル環境のExcelアドインを開発
本記事は、業務で文章処理を行う際に、外部へのデータ漏洩やAPI利用料のコストを懸念し、ローカル環境で完結するExcelアドインの開発事例を詳細に解説している。開発されたアドインは、Excelのセルを選択し、ボタン一つで文章の要約や添削を行う機能を持つ。このシステムは、バックエンドにGo言語、フロントエンドにReact、そして大規模言語モデル(LLM)の実行環境としてOllamaを利用している。Ollamaは、データセキュリティと高速な応答性を確保するため、ローカルネットワーク上の別のPC(IPアドレス:172.19.10.10)に設置されているのが特徴である。システム構成としては、ExcelアドインがHTTPS経由でローカルホスト(:8888)のGoサーバーにアクセスし、Goサーバーが受け取ったリクエストをリバースプロキシとしてOllamaサーバーに転送する仕組みとなっている。開発者は、ChatGPT APIの利用を避け、データが外部に出ないセキュアな環境を構築した。実装上の工夫点として、ローカルホストでの動作に必須な自己署名証明書を用いたHTTPS化や、Goの標準ライブラリを用いたリバースプロキシ設定が挙げられている。実際に1ヶ月間使用した結果、データが外部に出ない安全性と、ローカルネットワーク経由による高速なレスポンス、そしてllama2:7bモデルの要約品質の高さが評価されている。しかし、複数人での利用には現在の構成では課題があることも指摘されている。
背景
近年、AIを活用した業務効率化ツールが普及する中で、機密性の高い社内データを外部のクラウドAPI(例:ChatGPT API)に送信することへのセキュリティ懸念が高まっている。この背景から、データが社内ネットワーク内で完結し、かつ高性能なLLMを利用できるローカル環境でのソリューション開発が求められている。
重要用語解説
- Ollama: ローカル環境で様々なオープンソースのLLM(大規模言語モデル)を簡単に動かすためのツール。外部APIに依存せず、社内ネットワーク内でAI処理を完結させることが可能。
- Excel Add-in: Microsoft Excelの機能拡張として動作するアドイン。ユーザーがExcel内で直接、要約や添削といったAI処理を呼び出すインターフェースを提供する。
- リバースプロキシ: Webサーバーの機能の一つで、クライアントからのリクエストを一旦受け取り、別のバックエンドサーバー(この場合はOllama)に転送する仲介役。セキュリティや負荷分散に利用される。
今後の影響
本事例は、企業が機密データを扱うAIツールの導入において、セキュリティとコスト効率を両立させる具体的なモデルケースを示す。今後は、このローカル環境の構成を、より多くのユーザーがアクセスできる形で(例:社内サーバーへの移行)展開することが、業務効率化の鍵となることが予想される。特に、データガバナンスが重視される業界で大きな影響を与えるだろう。