プロジェクト

全般

プロフィール

バグ #565

未完了

【RAG UI開発】開発支援AIチャット画面実装

Redmine Admin さんが5日前に追加. 5日前に更新.

ステータス:
新規
優先度:
高め
担当者:
-
開始日:
2025-06-15
期日:
進捗率:

0%

予定工数:

説明

概要

RAGシステムのユーザーインターフェース開発。開発者が日常的に使いやすい、実用的なUIを構築する。

目的

  • 開発支援に特化したチャットインターフェース
  • インフラ状況の可視化
  • Redmine連携機能の直感的な操作

UI要件

1. メイン画面構成

┌─────────────────────────────────────────────────────┐
│  task2 RAG - 開発支援AIアシスタント                │
├─────────────┬─────────────────────┬─────────────────┤
│ サイドバー  │  チャットエリア     │ 情報パネル    │
│             │                     │                │
│ ・履歴      │  [会話表示]         │ ・コンテキスト │
│ ・お気に入り │                     │ ・ソース      │
│ ・設定      │  [入力欄]           │ ・アクション  │
└─────────────┴─────────────────────┴─────────────────┘

2. 主要コンポーネント

2.1 チャットエリア

  • 会話表示: ユーザーとAIの対話を時系列表示
  • コード表示: シンタックスハイライト対応
  • コピー機能: ワンクリックでコマンドやコードをコピー
  • ソース表示: 回答の根拠となった情報源を表示

2.2 クイックアクション

// よく使うアクション
- 最新のエラーログを確認
- Dockerコンテナの状態確認
- 関連するRedmineチケット検索
- デプロイ手順の確認

2.3 コンテキストパネル

  • 現在のインフラ状態(リアルタイム更新)
  • 最近の障害情報
  • 作業中のチケット情報

3. 技術スタック

  • フレームワーク: React 18
  • スタイリング: TailwindCSS 3
  • 状態管理: Zustand or Context API
  • アイコン: Lucide React
  • コード表示: react-syntax-highlighter
  • 通信: Axios + WebSocket(リアルタイム更新用)

4. デザイン要件

4.1 カラーテーマ

/* ダークモード対応 */
--primary: #3B82F6;     /* Blue 500 */
--secondary: #10B981;   /* Emerald 500 */
--warning: #F59E0B;     /* Amber 500 */
--error: #EF4444;       /* Red 500 */
--background: #111827;  /* Gray 900 */
--surface: #1F2937;     /* Gray 800 */

4.2 レスポンシブ対応

  • デスクトップ: 3カラムレイアウト
  • タブレット: 2カラム(サイドバー折りたたみ)
  • モバイル: 1カラム(タブ切り替え)

5. 機能要件

5.1 基本機能(MVP)

  • テキストベースのチャット
  • 基本的な質問応答
  • コード表示とコピー
  • ソース情報の表示
  • セッション保持

5.2 拡張機能(Phase 2)

  • チャット履歴の永続化
  • お気に入り質問の登録
  • Redmineチケット作成UI
  • インフラ状態のリアルタイム表示
  • ファイルアップロード対応

6. 画面遷移

/ai-chat (メイン)
├── /ai-chat/history      (履歴一覧)
├── /ai-chat/session/:id  (特定セッション)
├── /ai-chat/settings     (設定)
└── /ai-chat/help         (使い方)

7. コンポーネント構造

src/
├── pages/
│   └── AIChat/
│       ├── index.jsx
│       ├── History.jsx
│       └── Settings.jsx
├── components/
│   └── RAG/
│       ├── ChatArea/
│       │   ├── index.jsx
│       │   ├── MessageBubble.jsx
│       │   ├── CodeBlock.jsx
│       │   └── SourceInfo.jsx
│       ├── Sidebar/
│       │   ├── index.jsx
│       │   ├── SessionList.jsx
│       │   └── QuickActions.jsx
│       └── InfoPanel/
│           ├── index.jsx
│           ├── ContextDisplay.jsx
│           └── ActionButtons.jsx
├── hooks/
│   ├── useChat.js
│   ├── useWebSocket.js
│   └── useInfraStatus.js
└── services/
    ├── ragService.js
    └── redmineService.js

8. ユーザビリティ要件

8.1 パフォーマンス

  • 初回表示: 3秒以内
  • チャット応答表示: 即座に「入力中...」表示
  • コード補完: 100ms以内

8.2 アクセシビリティ

  • キーボードナビゲーション対応
  • スクリーンリーダー対応
  • ハイコントラストモード

8.3 エラーハンドリング

  • 接続エラー時の再試行
  • オフライン時のローカルキャッシュ
  • エラーメッセージの分かりやすい表示

9. 実装スケジュール

Week 1: 基本UI実装

  • Day 1-2: プロジェクトセットアップとコンポーネント構造
  • Day 3-4: チャットエリアの実装
  • Day 5-7: APIとの連携とテスト

Week 2: 機能拡張

  • Day 1-2: サイドバーと履歴機能
  • Day 3-4: コンテキストパネルと情報表示
  • Day 5-7: Redmine連携UI

Week 3: 最適化と品質向上

  • Day 1-2: レスポンシブ対応
  • Day 3-4: パフォーマンス最適化
  • Day 5: アクセシビリティ対応

10. 成果物

  1. ソースコード

    • Reactコンポーネント一式
    • カスタムフック
    • APIサービス層
  2. ドキュメント

    • コンポーネントカタログ
    • 使用方法ガイド
    • デザインシステム
  3. テスト

    • ユニットテスト
    • 統合テスト
    • E2Eテスト

関連チケット

  • #564: 【6月15日版RAG開発PJ】親チケット
  • #563: RAG付AIチャット機能実装(バックエンド)

受入条件

  1. 開発者が直感的に使えるUI
  2. 5秒以内にインフラ関連の質問に回答表示
  3. コードのコピー&ペーストが容易
  4. モバイルでも基本機能が使用可能

他の形式にエクスポート: Atom PDF