クラウド移行の経験 - RenderからGCP Cloud Runへの移行
RenderからGCP Cloud Runへの移行、Neon PostgreSQLへの移行、GitHub連携による継続的デプロイの実装について

症状・体調・生活状況に基づき、一般用医薬品をチャット形式で提案するWebアプリケーション。登録販売者の相談プロセスを再現した独自スコアリングアルゴリズムとLLMを併用したハイブリッド推奨システムを実装。ドラッグストアでの現場経験(高齢者とのコミュニケーション、言語の壁、人手不足)を踏まえ、2025年4月から開発開始。要件定義から設計・開発・運用まで一貫担当し、継続的に機能拡張と改善を実施。セキュリティ機能、多言語対応、アクセシビリティ対応、クラウドインフラ構築など、包括的なシステム開発を実現。
コミット数
426
開発期間
2025年4月 - 継続中(約10ヶ月)
使用技術数
10
コード行数
185,508
コントリビューター
1
Flaskフレームワークを使用したWebアプリケーションのコアロジック実装。医薬品推奨アルゴリズム、セキュリティ検証、データ処理を担当。
軽量で柔軟なWebアプリケーションフレームワーク。Blueprintによるモジュール分割、セッション管理、ルーティングを実装。
症状分析、カウンセリング応答、質問生成などに使用。ルールベース推奨と組み合わせたハイブリッドシステムを実現。
サーバーレスPostgreSQL。セッション管理、フィードバック保存、グローバル状態管理に使用。マルチインスタンス対応を実現。
日本語・英語・中国語・韓国語の4言語対応。翻訳速度を10-20倍高速化し、コストを約100倍削減。
フレームワーク不使用のモダンJavaScript。インタラクティブなUI、アニメーション、アクセシビリティ機能を実装。
アプリケーションのコンテナ化。GCP Cloud Runへのデプロイを容易にし、環境の一貫性を保証。
サーバーレスコンテナ実行環境。スケールゼロ対応、自動スケーリング、コスト最適化を実現。
症状入力と推奨結果の表示
4言語対応と音声読み上げ機能
効能・禁忌・ユーザー属性・症状パターンを統合評価するルールベース+LLMハイブリッド推奨システム。方言対応・漢方ロジック・成分重複チェック・効能特異性スコアリングを実装。単一症状時の解熱鎮痛薬・総合感冒薬の推奨精度向上を実現。
850以上の攻撃パターンを検出する多層防御システム。不適切・危険入力の検出とブロック、危機検出(緊急受診勧奨)、絶対ブロックリスト、セッション永続化によるUX維持を実装。医療相談用途にふさわしい入力フィルタリングと、ブロック時も案内メッセージを表示するユーザー体験の両立を実現。
日本語・英語・中国語・韓国語対応、方言変換(100件以上の方言表現を標準語に変換)、音声読み上げ、文字サイズ調整、WCAG AA準拠を意識したアクセシビリティ、季節イベントUI(正月・節分・バレンタイン・冬装飾)を実装。高齢者・外国人の利用を想定した多様なユーザーに対応するUI/UXを実現。
RenderからGCP Cloud Runへの移行、Cloud SQLからNeon PostgreSQL(サーバーレス)への移行を実施。Docker化、GitHub連携による自動デプロイを実現。約2日での移行、コスト最適化、スケールゼロ対応を達成。
「15歳以上以上」の重複表現修正、カロナールA・タイレノールAの効能データ修正、イブプロフェン200S/200SCの同一成分重複回避、HTMLタイポ検索手順のドキュメント化、医薬品名の半角統一機能を追加。
Render から GCP Cloud Run、Cloud SQL から Neon PostgreSQL へ移行。GitHub 連携による継続的デプロイ、Docker 化、約2日での移行完了。本番 URL は asia-northeast1(東京)で運用。
絶対ブロック・セキュリティブロック時もセッションに案内メッセージを永続化し、status: ok で返すよう変更。不適切ワードの拡張(パパ活、ナンパ・出会い系等)、ブロック時は元入力を表示するよう修正。
app.py を約89行にスリム化。ルートは main/admin/api/feedback に分離。rule_based_recommendation・medicine_logic・counseling_response・chat_handler をモジュール分割。妊娠・授乳時レッドフラッグの表示統一、エラー表示のユーザーフレンドリー化。
candidate_normalizer.py を新規作成し、スコアリング統合テスト失敗7件を解消。カロナール・タイレノール・ロキソニン系を生理痛専用医薬品の除外から例外として追加。
RenderからGCP Cloud Runへの移行、Neon PostgreSQLへの移行、GitHub連携による継続的デプロイの実装について
Single Responsibility Principle (SRP) に基づいた大規模リファクタリング、コードの可読性とメンテナンス性の向上について
医療情報システムの開発において、倫理的な配慮がどのように実装に反映されるかを、実際のプロジェクト経験から解説します。
2026年1月17日に開催されたdoda ビジネスコンテストで、チャット型医薬品相談ツールを発表した経験と学びについて
WCAG AA準拠のアクセシビリティ機能、音声読み上げ、文字サイズ調整、多言語対応など、すべてのユーザーが使いやすいUI/UXの実装について
性被害を受けた方に対して、72時間以内の緊急避妊薬の服用の重要性を強調し、対面診療とオンライン診療の案内、心理的サポートと警察への相談の案内を提供する機能の実装について
推奨医薬品リスト内で成分重複をチェックし、深刻度レベル別の警告を表示する機能の実装について
関西弁、東北弁、九州弁など100件以上の方言表現を標準語に変換し、症状を正確に抽出する機能の実装について
2025年10月から12月にかけて367コミットを実施し、ほぼ毎日機能追加・改善を行った開発の軌跡と、そこから得た学びについて
ドラッグストアでのスマートフォン利用を想定した店舗案内機能、商品検出機能、階層的カテゴリ分類の実装について
火災、医療緊急、不審者などの緊急事案を自動検出し、誤検知防止機能により医療相談の文脈を除外する機能の実装について
市販薬では対応が難しい診断名を包括的に検出し、早期リターン処理によりAPIコストを削減する機能の実装について
クリスマス、正月、バレンタインなど13種類の特別イベントに対応したイースターエッグ機能の実装について
ユーザー入力を5つのカテゴリに自動分類し、2段階トリアージシステムで詳細なサブカテゴリ分類を実行する機能の実装について
緊張、不安、恋愛の悩みなどに対するカウンセリング的返信を生成し、会話履歴を活用した文脈理解を実現する機能の実装について
2025年12月13日に開催された第9回和歌山県データ利活用コンペティションで、チャット型医薬品相談ツールを発表した経験と学びについて
医療情報システムとして必須のセキュリティ機能、特にプロンプトインジェクション対策と入力検証の実装について
2025年12月6日に開催された椙山女学園大学主催の第13回 ビジネスプランコンテストで、チャット型医薬品相談ツールを発表した経験と学びについて
2025年11月21日に開催されたユメカタリ 学生生成AIコンテストで、チャット型医薬品相談ツールを発表した経験と学びについて
漢方薬の効能効果、適用症状、禁忌事項を考慮した推奨アルゴリズムの実装について
API呼び出し回数を約67%削減し、翻訳速度を10-20倍高速化したパフォーマンス最適化の実装について
Render Manual Scaling対応のため、PostgreSQLベースのセッション管理システムを実装し、複数インスタンス間でセッションデータを共有する機能について
ルールベースとLLMを融合した、安全性と精度を両立する医薬品推奨システムのアーキテクチャと実装について
ドラッグストアでの現場経験から生まれた、高齢者を中心としたお客様の課題を解決するための開発プロジェクトの始まりについて
2025年8月19日に開催されたAWS デジタル社会実現ツアー 2025 名古屋で、チャット型医薬品相談ツールを発表した経験と学びについて