【要約】デジタル庁の源内 Web(`genai-web`)から Cloud 依存を外して、ローカル LLM で動かしてみた [Qiita_Trend] | Summary by TechDistill
> Source: Qiita_Trend
Execute Primary Source
// Problem
開発者が、AWSサービスに強く依存した「genai-web」を、ローカル環境で検証・実行したいという課題に直面した。元の構成は以下のAWSリソースに密結合している。
- ・Cognito/Amplifyによる認証管理
- ・Lambdaによる推論ストリーミング
- ・DynamoDBによるチャット履歴の保存
- ・Bedrock/SageMakerによるモデル提供
- ・S3によるファイルアップロード
// Approach
開発者は、既存コードの構造を破壊せず、Cloud依存の経路のみを切り離すアプローチを採用した。具体的には以下のステップで改修を行った。
- ・
VITE_APP_LOCAL_MODEによる条件分岐の導入 - ・AWS SDKを
lazy importし、ローカルでの読み込みを回避 - ・Node.jsとSQLiteを用いた
local-apiの新規構築 - ・OpenAI互換APIへのリクエスト変換処理の実装
- ・Cloud専用UI(チーム管理等)のルート除外
// Result
開発者は、AWS環境を一切用意することなく、ローカルLLMを用いた開発・検証が可能になった。以下の機能がローカル環境で動作することを確認している。
- ・Ollama等のローカルモデルサーバーとの連携
- ・SQLiteによるチャット履歴およびシステムプロンプトの保存
- ・テキストチャットおよびストリーミング応答の実現
Senior Engineer Insight
> 既存コードを物理削除せず、
lazy importで依存を制御する設計は極めて実戦的だ。全ての機能を移植せず、テキストチャットに機能を絞った判断も、開発効率の観点から妥当である。この「動く中心線」を先に作る手法は、大規模開発におけるプロトタイピングの定石と言える。ただし、S3等の複雑な機能を後から戻す際の整合性確保が、今後の課題となるだろう。