PDF資料の内容を解析して、株主総会で適切な質問を自動生成し、選択可能な形で提示する機能です。
❓ 株主質問候補 [折り畳みボタン]
├─ 説明テキスト
└─ 質問候補一覧
├─ [1] 質問候補1 💬
├─ [2] 質問候補2 💬
├─ [3] 質問候補3 💬
├─ [4] 質問候補4 💬
├─ [5] 質問候補5 💬
└─ [6] 質問候補6 💬
generateQuestionCandidates()
async generateQuestionCandidates() {
// 1. 接続・PDFファイル状態確認
// 2. 質問候補セクション表示
// 3. PDF内容を解析用コンテキストとして準備
// 4. Azure OpenAI APIで質問生成
// 5. 質問を分割して配列化
// 6. UI表示処理実行
}
displayQuestionCandidates()
displayQuestionCandidates() {
// 1. 質問候補リストをクリア
// 2. 各質問をカード形式で表示
// 3. クリックイベントリスナー追加
// 4. フェードインアニメーション適用
}
startDialogueWithQuestion(selectedQuestion)
async startDialogueWithQuestion(selectedQuestion) {
// 1. 質問候補セクションを折り畳み
// 2. 対話状態を初期化
// 3. 選択された質問を株主発言として追加
// 4. 取締役回答生成を開始
}
this.state = {
questionCandidates: [], // 生成された質問候補
candidatesCollapsed: false, // 折り畳み状態
candidatesGenerated: false // 生成完了フラグ
};
const systemPrompt = `${langConfig.shareholderPrompt}
以下の観点から6つの具体的で重要な質問を生成してください:
1. 業績や財務状況に関する懸念
2. 経営戦略や将来計画への疑問
3. 株主還元政策について
4. リスク要因や課題について
5. 市場環境への対応について
6. その他の重要な経営課題
資料内容:
${this.state.pdfContent}`;
.question-candidate {
background: linear-gradient(135deg, #f3f4f6 0%, #e5e7eb 100%);
border: 2px solid #d1d5db;
border-radius: 0.75rem;
padding: 1rem;
cursor: pointer;
transition: all 0.3s ease;
}
.question-candidate:hover {
background: linear-gradient(135deg, #dbeafe 0%, #bfdbfe 100%);
border-color: #3b82f6;
transform: translateY(-2px);
box-shadow: 0 4px 12px rgba(59, 130, 246, 0.15);
}
#questionCandidatesContent {
transition: max-height 0.3s ease-in-out, opacity 0.3s ease-in-out;
max-height: 1000px;
opacity: 1;
overflow: hidden;
}
#questionCandidatesSection.candidates-collapsed #questionCandidatesContent {
max-height: 0;
opacity: 0;
}