Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 5 additions & 4 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
.idea
.vscode
.venv
.env
*.db
.venv/
.idea/
.vscode/
__pycache__/
.ruff_cache/
40 changes: 27 additions & 13 deletions ac_mode_and_fan_control_full_llm.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
blueprint:
name: Voice - Control AC Mode, Temp & Fan Speed
name: Control AC Mode, Temp & Fan Speed
author: luuquangvu
source_url: https://github.com/luuquangvu/tutorials/blob/dev/ac_mode_and_fan_control_full_llm.yaml
description: |-
Expand Down Expand Up @@ -70,41 +70,41 @@ blueprint:
input:
ac_entities_prompt:
name: AC Entities Prompt
description: The prompt which will be used for the LLM can provide the name of ACs for controlling.
description: The prompt used by the AI to identify the AC units to control
selector:
text:
multiline: true
default: |-
Required: AC names to control. Separate multiple with semicolon (;).
AC names; separate with semicolon (;)
hvac_mode_prompt:
name: HVAC Mode Prompt
description: The prompt which will be used for the LLM can provide the AC mode.
description: The prompt used by the AI to identify the desired AC mode
selector:
text:
multiline: true
default: |-
AC mode (`auto`, `cool`, `heat`, `dry`, `fan_only`, `off`). Only if requested. Error if unsupported; no guessing.
AC mode. Only if requested
temperature_prompt:
name: Temperature Prompt
description: The prompt which will be used for the LLM can provide the target temperature.
description: The prompt used by the AI to identify the target temperature
selector:
text:
multiline: true
default: |-
Target temp as number (e.g. `24`). Convert F to C. No units. Only if requested.
Target temp (number). Convert F to C. Only if requested
fan_mode_prompt:
name: Fan Mode Prompt
description: The prompt which will be used for the LLM can provide the fan speed/mode of the AC.
description: The prompt used by the AI to identify the fan speed or mode
selector:
text:
multiline: true
default: |-
Fan speed (`auto`, `low`/`1`, `lowmid`/`2`, `mid`/`3`, `highmid`/`4`, `high`/`5`). Map to closest. Only if requested. No guessing.
Fan speed. Map to closest. Only if requested
mode: parallel
max_exceeded: silent
description: Controls mode, temperature, and fan speed for air conditioners. Supports auto, cool, heat, dry, and fan_only modes.
description: Controls AC mode, temperature, and fan speed
variables:
version: 20260222
version: 20260409
fields:
ac_entities:
name: AC Entities
Expand All @@ -116,7 +116,14 @@ fields:
name: HVAC Mode
description: !input hvac_mode_prompt
selector:
text:
select:
options:
- "auto"
- "cool"
- "heat"
- "dry"
- "fan_only"
- "off"
temperature:
name: Temperature
description: !input temperature_prompt
Expand All @@ -126,7 +133,14 @@ fields:
name: Fan Mode
description: !input fan_mode_prompt
selector:
text:
select:
options:
- "auto"
- "low"
- "lowmid"
- "mid"
- "highmid"
- "high"
sequence:
- variables:
entity_aliases: !input entity_aliases
Expand Down
14 changes: 7 additions & 7 deletions advanced_google_search_full_llm.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
blueprint:
name: Voice - Perform Google Search
name: Perform Google Search
author: luuquangvu
source_url: https://github.com/luuquangvu/tutorials/blob/dev/advanced_google_search_full_llm.yaml
description: |-
Expand Down Expand Up @@ -51,25 +51,25 @@ blueprint:
input:
query_string_prompt:
name: Query String Prompt
description: The prompt which will be used for the LLM can provide the search string for the query.
description: The search string used by the AI to find information on Google
selector:
text:
multiline: true
default: |-
Required: Search query. Silence-correct misspellings. No clarification.
Search query. Silence-correct misspellings. No clarification
language_prompt:
name: Language Prompt
description: The prompt which will be used for the LLM can provide the language for the query.
description: The language tag (e.g., en-US) used by the AI for the Google search results
selector:
text:
multiline: true
default: |-
Required: Language tag (e.g. `en-US`). Match user language.
Language tag (e.g. en-US). Match user language
mode: parallel
max_exceeded: silent
description: Searches Google to retrieve real-time information, facts, or answers from the web. Use when local knowledge is insufficient.
description: Searches Google to retrieve real-time information or answers from the web
variables:
version: 20260207
version: 20260409
fields:
query_string:
name: Query String
Expand Down
14 changes: 7 additions & 7 deletions advanced_youtube_search_full_llm.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
blueprint:
name: Voice - Perform YouTube Search
name: Perform YouTube Search
author: luuquangvu
source_url: https://github.com/luuquangvu/tutorials/blob/dev/advanced_youtube_search_full_llm.yaml
description: |-
Expand Down Expand Up @@ -66,25 +66,25 @@ blueprint:
input:
query_string_prompt:
name: Query String Prompt
description: The prompt which will be used for the LLM can provide the search string for the query.
description: The search string used by the AI to find YouTube videos
selector:
text:
multiline: true
default: |-
Required: Search query. Silence-correct misspellings. Use ordinals for results, omit Media IDs. Confirm if ambiguous.
Search query. Silence-correct misspellings. Use ordinals for results, omit Media IDs. Confirm if ambiguous
page_token_prompt:
name: Page Token Prompt
description: The prompt which will be used for the LLM can provide the page token to get additional videos that could be obtained.
description: The token used by the AI to fetch the next page of YouTube results
selector:
text:
multiline: true
default: |-
Optional: Token to fetch more videos.
Token to fetch more videos
mode: parallel
max_exceeded: silent
description: Searches YouTube for videos and returns a list of matching results with titles and descriptions. Use to find specific content or playlists.
description: Searches YouTube for videos and returns matching results
variables:
version: 20260207
version: 20260409
fields:
query_string:
name: Query String
Expand Down
22 changes: 11 additions & 11 deletions calendar_events_lookup_full_llm.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
blueprint:
name: Voice - Get Calendar Events
name: Get Calendar Events
author: luuquangvu
source_url: https://github.com/luuquangvu/tutorials/blob/dev/calendar_events_lookup_full_llm.yaml
description: |-
Expand Down Expand Up @@ -46,41 +46,41 @@ blueprint:
input:
time_period_type_prompt:
name: Time Period Type Prompt
description: The prompt which will be used for the LLM can provide the type for the period (days or hours).
description: The prompt used by the AI to identify the period type (daily or hourly) [Human-only]
selector:
text:
multiline: true
default: |-
Required: `daily` (full days) or `hourly` (partial). Output only day of week and start date.
daily or hourly
time_period_length_prompt:
name: Time Period Length Prompt
description: The prompt which will be used for the LLM can provide the length of the period.
description: The prompt used by the AI to identify the period length [Human-only]
selector:
text:
multiline: true
default: |-
Required: Length in days/hours (e.g. 1, 7, 6).
Length in days (daily) or hours (hourly)
date_prompt:
name: Date Prompt
description: The prompt which will be used for the LLM can provide the start date for the events period.
description: The prompt used by the AI to identify the starting date [Human-only]
selector:
text:
multiline: true
default: |-
Required: Start date (`YYYY-MM-DD`). Default today. `Night` = next day if >= `05:00:00`.
Start date (YYYY-MM-DD). Default today. Night=next day if >=05:00:00
time_prompt:
name: Time Prompt
description: The prompt which will be used for the LLM can provide the start time for the events period.
description: The prompt used by the AI to identify the starting time [Human-only]
selector:
text:
multiline: true
default: |-
Required: Start time (`HH:MM:SS`). Morning=`06:00:00`, Afternoon=`12:00:00`, Evening=`18:00:00`, Night/Full day=`00:00:00`.
Start time (HH:MM:SS)
mode: parallel
max_exceeded: silent
description: Retrieves upcoming or past calendar events for a specific time period. Useful for checking schedules and appointments.
description: Retrieves upcoming or past calendar events for a specific period
variables:
version: 20260222
version: 20260409
fields:
time_period_type:
name: Time Period Type
Expand Down
10 changes: 5 additions & 5 deletions camera_snapshot_full_llm.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
blueprint:
name: Voice - Capture Camera Snapshot
name: Capture Camera Snapshot
author: luuquangvu
source_url: https://github.com/luuquangvu/tutorials/blob/dev/camera_snapshot_full_llm.yaml
description: |-
Expand Down Expand Up @@ -95,17 +95,17 @@ blueprint:
input:
camera_name_prompt:
name: Camera Name Prompt
description: The prompt which will be used for the LLM can provide the camera name.
description: The friendly name of the camera to capture a snapshot from, provided by the AI
selector:
text:
multiline: true
default: |-
Required: Camera friendly name. Multiple cameras = multiple calls. Returns local image path.
Camera name. Returns local image path. Multiple cameras = multiple calls
mode: parallel
max_exceeded: silent
description: Captures and saves a camera snapshot. Returns the local file path for analysis or messaging tools. Useful for visual verification of a scene.
description: Captures a camera snapshot and returns the file path
variables:
version: 20260207
version: 20260409
fields:
camera_name:
name: Camera Name
Expand Down
38 changes: 19 additions & 19 deletions control_music_full_llm.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
blueprint:
name: Voice - Control Music
name: Control Music
author: luuquangvu
source_url: https://github.com/luuquangvu/tutorials/blob/dev/control_music_full_llm.yaml
description: |-
Expand Down Expand Up @@ -76,76 +76,76 @@ blueprint:
input:
media_type_prompt:
name: Media Type Prompt
description: The prompt that the LLM will use to provide the media_type.
description: The type of media (track, album, artist, etc.) used by the AI to filter results
selector:
text:
multiline: true
multiple: false
default: |-
Required: track, album, artist, playlist, radio. Default: `track` for genre/mood/list.
Default: track for genre/mood/list
artist_prompt:
name: Artist Prompt
description: The prompt that the LLM will use to provide the artist.
description: The artist name used by the AI to find music
selector:
text:
multiline: true
multiple: false
default: |-
Requested artist(s). Empty if unknown/multiple.
Requested artist(s). Empty if unknown/multiple
album_prompt:
name: Album Prompt
description: The prompt that the LLM will use to provide the album.
description: The album name used by the AI to find music
selector:
text:
multiline: true
multiple: false
default: |-
Requested album. Empty if unknown/multiple.
Requested album. Empty if unknown/multiple
media_id_prompt:
name: Media ID Prompt
description: The prompt that the LLM will use to provide the media_id.
description: The specific media name or ID used by the AI to identify content
selector:
text:
multiline: true
multiple: false
default: |-
Required: Specific name(s). Tracks/Albums: semicolon separated. Artists/Playlists/Radio: exact name (omit `playlist` keyword).
Specific name(s). Tracks/Albums: semicolon separated. Artists/Playlists/Radio: exact name (omit playlist keyword)
media_description_prompt:
name: Media Description Prompt
description: The prompt that the LLM will use to provide the media description.
description: The descriptive information about the media provided by the AI
selector:
text:
multiline: true
multiple: false
default: |-
Required: Extracted media description from query (e.g. `the best Queen songs`). Omit area/player details.
Extracted media description from query (e.g. the best Queen songs). Omit area/player details
area_prompt:
name: Area Prompt
description: The prompt that the LLM will use to provide the area.
description: The area(s) where the music should be played, provided by the AI
selector:
text:
multiline: true
multiple: false
default: |-
Requested area(s). Default to initiating device area. Omit if player specified.
Requested area(s). Default to initiating device area. Omit if player specified
media_player_prompt:
name: Media Player Prompt
description: The prompt that the LLM will use to provide the media player.
description: The specific media player entity_id(s) where music should be played, provided by the AI
selector:
text:
multiline: true
multiple: false
default: |-
Target Music Assistant `media_player` entity_id(s). ONLY if explicitly mentioned.
Target Music Assistant media_player entity_id(s). ONLY if explicitly mentioned
shuffle_prompt:
name: Shuffle Prompt
description: The prompt that the LLM will use to determine whether to turn on shuffle or not.
description: The shuffle state (on/off) determined by the AI based on the request
selector:
text:
multiline: true
multiple: false
default: |-
Required: `true` or `false`. `true` ONLY if shuffling explicitly requested. No guessing.
true or false. true ONLY if shuffling explicitly requested. No guessing
addition_conditions_actions:
name: Additional actions
icon: mdi:wrench
Expand All @@ -163,9 +163,9 @@ blueprint:
default: []
mode: parallel
max_exceeded: silent
description: Plays music via Music Assistant. Supports tracks, albums, artists, playlists, and radio. Requires media type, ID, and shuffle status.
description: Plays music via Music Assistant. Supports tracks, albums, artists, and playlists
variables:
version: 20260222
version: 20260409
fields:
media_type:
selector:
Expand Down
Loading