"""Create reasoning_engine
Generated by Phi-Octopus Eden
2025-11-06 07:25:34.758950
"""

```python
from typing import List, Dict


class KnowledgeBase:
    def __init__(self):
        self.knowledge = {}

    def add_knowledge(self, key: str, value: str) -> None:
        """
        Add or update knowledge in the knowledge base.
        
        :param key: The key of the knowledge
        :param value: The value of the knowledge
        """
        self.knowledge[key] = value

    def get_knowledge(self, key: str) -> str:
        """
        Retrieve knowledge from the knowledge base.

        :param key: The key of the knowledge to retrieve
        :return: The value of the knowledge corresponding to the given key
        """
        return self.knowledge.get(key, "Unknown")


class RuleEngine:
    def __init__(self):
        self.rules = []

    def add_rule(self, condition: str, action: str) -> None:
        """
        Add a new rule to the rule engine.
        
        :param condition: The condition for the rule
        :param action: The action to take if the condition is met
        """
        self.rules.append((condition, action))

    def reason(self, input_data: Dict[str, str]) -> str:
        """
        Apply rules based on input data and return an appropriate action.
        
        :param input_data: A dictionary containing key-value pairs of input data
        :return: The action to be taken according to the applied rule or "No Action" if no rule is applicable
        """
        for condition, action in self.rules:
            if all(key in input_data and value == input_data[key] for key, value in condition.items()):
                return action
        return "No Action"


def create_reasoning_engine() -> RuleEngine:
    """
    Create a basic reasoning engine with predefined knowledge base.
    
    :return: An initialized RuleEngine instance
    """
    kb = KnowledgeBase()
    kb.add_knowledge('temperature', 'warm')
    kb.add_knowledge('humidity', 'high')

    re = RuleEngine()
    re.add_rule(
        {'temperature': 'warm', 'humidity': 'high'},
        "Water the plants"
    )
    re.add_rule(
        {'temperature': 'cold', 'humidity': 'low'},
        "Turn on heater"
    )

    return re


# Example usage
reasoning_engine = create_reasoning_engine()
input_data = {'temperature': 'warm', 'humidity': 'high'}
print(reasoning_engine.reason(input_data))  # Output: Water the plants

input_data = {'temperature': 'cold', 'humidity': 'low'}
print(reasoning_engine.reason(input_data))  # Output: Turn on heater
```