def mode_selection(self, query, search_type, model_name="qwen3:0.6b", 
                   num_predict=512, temperature=0.3):
    """
    選択モード: ユーザーが検索方式を選択
    
    Args:
        query: ユーザーのクエリ
        search_type: 検索方式（"rag", "web", "hybrid"）
        model_name: 使用するLLMモデル
        num_predict: 生成トークン数
        temperature: 生成の確定性（0.0-1.0）
    
    Returns:
        dict: 実行結果（回答、コンテキスト、メタデータ）
    """
    print(f"\n{'='*60}")
    print(f"モード: Selection ({search_type})")
    print(f"クエリ: {query}")
    print(f"{'='*60}\n")
    
    start_time = time.time()
    
    # 選択された検索方式を実行
    if search_type == "rag":
        context, metadata = self._execute_rag_search(query)
        method_used = "RAG"
    elif search_type == "web":
        context, metadata = self._execute_web_search(query)
        method_used = "Web"
    elif search_type == "hybrid":
        context, metadata = self._execute_hybrid_search(query)
        method_used = "Hybrid"
    else:
        raise ValueError(f"Invalid search_type: {search_type}")
    
    # LLMで回答生成
    answer = self._generate_answer(query, context, model_name, 
                                   num_predict, temperature)
    
    elapsed_time = time.time() - start_time
    
    return {
        "answer": answer,
        "context": context,
        "metadata": metadata,
        "method": method_used,
        "mode": "selection",
        "elapsed_time": elapsed_time
    }
