30 lines
771 B
Python
30 lines
771 B
Python
"""Agent foundation for conversation integration."""
|
|
from abc import ABC, abstractmethod
|
|
from typing import Optional
|
|
|
|
from homeassistant.core import Context
|
|
from homeassistant.helpers import intent
|
|
|
|
|
|
class AbstractConversationAgent(ABC):
|
|
"""Abstract conversation agent."""
|
|
|
|
@property
|
|
def attribution(self):
|
|
"""Return the attribution."""
|
|
return None
|
|
|
|
async def async_get_onboarding(self):
|
|
"""Get onboard data."""
|
|
return None
|
|
|
|
async def async_set_onboarding(self, shown):
|
|
"""Set onboard data."""
|
|
return True
|
|
|
|
@abstractmethod
|
|
async def async_process(
|
|
self, text: str, context: Context, conversation_id: Optional[str] = None
|
|
) -> intent.IntentResponse:
|
|
"""Process a sentence."""
|