import React from 'react'; // Message型を定義 export interface Message { id: string; type: 'question' | 'response' | 'error'; content: string; confidence?: number; memoryAugmented?: boolean; } interface ResponseDisplayProps { messages: Message[]; isLoading: boolean; } // 信頼度に応じた色を返す const getConfidenceColor = (confidence: number): string => { if (confidence >= 0.8) return '#22c55e'; // green if (confidence >= 0.6) return '#eab308'; // yellow if (confidence >= 0.4) return '#f97316'; // orange return '#ef4444'; // red }; // 信頼度のラベル const getConfidenceLabel = (confidence: number): string => { if (confidence >= 0.8) return 'High'; if (confidence >= 0.6) return 'Medium'; if (confidence >= 0.4) return 'Low'; return 'Very Low'; }; export const ResponseDisplay: React.FC = ({ messages, isLoading }) => { return (
{messages.map((msg) => (

{msg.content}

{/* 回答メタ情報(responseタイプのみ) */} {msg.type === 'response' && (msg.confidence !== undefined || msg.memoryAugmented) && (
{msg.confidence !== undefined && ( {getConfidenceLabel(msg.confidence)} ({(msg.confidence * 100).toFixed(0)}%) )} {msg.memoryAugmented && ( Memory Enhanced )}
)}
))} {isLoading &&
回答を生成中...
}
); };