大手生命保険会社:RAGシステム開発支援
グローバルコンサルティングファーム
概要
クライアントのAI開発内製化と人材育成を目標に,Microsoft Azure上で社内文書検索RAGシステムの設計・開発を主導.`Azure-Samples/azure-search-openai-demo` をforkし,金融機関の閉域ネットワーク要件とEntra ID統合認証を満たすエンタープライズ仕様へ拡張.プライベート環境への本番デプロイまでをエンドツーエンドで担当した.
アーキテクチャ
フロントエンドはReact + TypeScript(Viteビルド),バックエンドはPython Quartの非同期APIで構成.Azure AI Searchによるベクトル検索・BM25・セマンティックランカーを多段に組み合わせ,社内規程のような固有名詞と言い換えが混在するドキュメントでも高い想起率と関連度を両立する検索パイプラインを組んだ.
ドキュメント投入は Azure Document Intelligence でのOCR・表構造解析と Integrated Vectorization を組み合わせ,Blob Storage へのアップロードから検索可能化までをイベント駆動で自動化.プロンプトは upstream の Jinja2 ベースから `.prompty`(`chat_answer_question.prompty` 等)へ移し替え,プロンプトのレビュー・差分追跡をコード同等に扱えるようにした.
環境差分は `azure-dev.yaml` に 130+ の環境変数として集約し,テナント・部署ごとのデプロイを同じコードベースから派生できる設計.ホスティングは Azure Container Apps を選択し,Bicep による IaC でスケール・可用性を宣言的に管理している.
セキュリティ・閉域ネットワーク
金融業界のセキュリティ要件に対応するため,`network-isolation.bicep` でVNet・Private Endpoint・DNSプライベートゾーンを一式で定義.upstreamでは限定的だった閉域構成を宣言的IaCに統合し,インターネット側へのパブリック経路を持たない完全内部通信を実現した.
認証・認可は `authentication.py` でEntra IDのテナントID・サーバーApp ID・クライアントApp IDを厳密に管理し,ドキュメント単位のACLと組み合わせて部署横断の情報漏洩を防止.Azure Key Vaultでシークレットを外出しし,Application Insightsとの連携用に43KB規模のBicepテンプレートでカスタム KPI ダッシュボードを構築している.
Azure Log Analytics上でKQLクエリによる運用監視ダッシュボードを実装し,回答レイテンシ・検索ヒット率・ユーザー別利用状況といったRAG固有のKPIを継続計測.回答品質劣化の早期検知を可能にした.
技術移転・人材育成
Web基礎(HTML / CSS / JavaScript)からPython・Azureアーキテクチャまでを体系的にレクチャーし,Git / GitHub・Pull Request・コードレビューの運用を段階的にチームへ定着.アジャイル(スクラム・2週間スプリント・Daily Standup)を導入し,外部依存から自走チームへの移行を半年スパンで設計・実行した.