BoostDraft 技術スタック
この記事では、BoostDraft が利用する技術スタックの概要を紹介します。それぞれの選択理由や詳細などは個別の記事にて順次紹介します。
BoostDraft は法律文書に関する業務を支援する Microsoft Word アドインを提供しています。BoostDraft は SaaS ではなく、ユーザーのローカル環境で動作するアプリケーションです。このため、高いセキュリティ要件が求められる法律関係の業務でも資料をローカルに持ったまま BoostDraft をご利用いただけます。一方で、ローカルで動作するアドインであることから技術的制約も存在します。
Windows アプリケーション (BoostDraft)
Microsft Word でオフィスアドインを提供するには、VSTO アドインもしくは Office Web アドインの2通りの方法があります。BoostDraft は優れたユーザー体験を提供するために、ネイティブアプリケーションとして動作する VSTO アドインを採用しています。このため、プログラミング言語の選択肢などに制約があります。
プログラミング言語
- C# 12
フレームワーク
- Material Design (UI)
- .NET Framework 4.8
- ClickOnce
- .NET 8.0
データベース
- SQLite
- Dapper
ログ
- NLog
テスト
- xUnit
- Fluent Assertions
- Moq
- BenchmarkDotNet
- Qase
バックエンド
BoostDraft は、最新の法令を参照するといった機能を提供するために、一部機能をウェブサービスとして実装し BoostDraft から参照しています。また、業務効率化のために社内向けのサービスも作成しています。
プログラミング言語
- Python
- TypeScript
- Rust
インフラストラクチャ
- AWS
- Amazon API Gateway
- Amazon CloudFront
- Amazon Cognito
- Amazon RDS
- AWS AppRunner
- AWS Lambda
- OpenSearch
- Google Cloud Platform
- AWS CDK
- Terraform
- Google Apps Script
フロントエンド
BoostDraft は、現時点ではウェブから操作をメインとするサービスは提供していません。このため、フロントエンドの利用は必要最低限となっています。
プログラミング言語
- TypeScript
フレームワーク
- React
- Vite.js
機械学習
現在、通常の『BoostDraft』では機械学習を使った機能はありません。しかし、ベータ機能や新規開発中のプロダクトでは積極的に機械学習やAIを取り入れています。また、開発業務においてもGPT-4をはじめとするLLMを様々な場面で活用しています。
開発業務における活用事例としては、「定義語抽出作業」 が挙げられます。『BoostDraft』には契約書内の定義語を抽出する機能があるのですが、プログラムの変更時には、この定義語の抽出精度を頻繁に確認する必要があります。これには定義語を正確にリスト化したデータが必要になるのですが、全て手動で行うと手間がかかるため、まずLLMを使って定義語の候補リストを生成し、その後人手で追加・削除を行って最終的なデータを整えるなどを行っています。
- GPT-4o (Async call, structured output)
- Claude (AWS Bedrock)
- Gemini
- fine-tuned BERT/RoBERTa
- Vector DB
- Python-free ML model runtime (Rust)
共通
以下は社内共通で利用するサービス、技術スタックです。
コミュニケーション
- Google Workspace
- Notion
- Gather
- Slack
CI/CD
- GitHub
- GitHub Actions
- Self-hosted runner (Windows)
- Azure DevOps
ログ分析
- AWS CloudWatch
- Elasticsearch + Kibana
- BigQuery
おわりに
BoostDraftではソフトウェアエンジニアをはじめ、全方位で採用強化中です!ご興味ある方はぜひ以下のリンク先から採用ポジションをご確認ください。
Discussion