50 lines
1.4 KiB
Python
50 lines
1.4 KiB
Python
"""Constants for the AI Task integration."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from enum import IntFlag
|
|
from typing import TYPE_CHECKING, Final
|
|
|
|
from homeassistant.util.hass_dict import HassKey
|
|
|
|
if TYPE_CHECKING:
|
|
from homeassistant.components.media_source import local_source
|
|
from homeassistant.helpers.entity_component import EntityComponent
|
|
|
|
from . import AITaskPreferences
|
|
from .entity import AITaskEntity
|
|
|
|
DOMAIN = "ai_task"
|
|
DATA_COMPONENT: HassKey[EntityComponent[AITaskEntity]] = HassKey(DOMAIN)
|
|
DATA_PREFERENCES: HassKey[AITaskPreferences] = HassKey(f"{DOMAIN}_preferences")
|
|
DATA_MEDIA_SOURCE: HassKey[local_source.LocalSource] = HassKey(f"{DOMAIN}_media_source")
|
|
|
|
IMAGE_DIR: Final = "image"
|
|
IMAGE_EXPIRY_TIME = 60 * 60 # 1 hour
|
|
|
|
SERVICE_GENERATE_DATA = "generate_data"
|
|
SERVICE_GENERATE_IMAGE = "generate_image"
|
|
|
|
ATTR_INSTRUCTIONS: Final = "instructions"
|
|
ATTR_TASK_NAME: Final = "task_name"
|
|
ATTR_STRUCTURE: Final = "structure"
|
|
ATTR_REQUIRED: Final = "required"
|
|
ATTR_ATTACHMENTS: Final = "attachments"
|
|
|
|
DEFAULT_SYSTEM_PROMPT = (
|
|
"You are a Home Assistant expert and help users with their tasks."
|
|
)
|
|
|
|
|
|
class AITaskEntityFeature(IntFlag):
|
|
"""Supported features of the AI task entity."""
|
|
|
|
GENERATE_DATA = 1
|
|
"""Generate data based on instructions."""
|
|
|
|
SUPPORT_ATTACHMENTS = 2
|
|
"""Support attachments with generate data."""
|
|
|
|
GENERATE_IMAGE = 4
|
|
"""Generate images based on instructions."""
|