Update ha_text_ai_request.yaml

This commit is contained in:
smkrv
2024-11-15 02:11:41 +03:00
committed by GitHub
parent 947fdc3096
commit 2bd8f2d34f
+185 -101
View File
@@ -1,106 +1,190 @@
blueprint: blueprint:
name: Text AI Request name: Text AI Request
description: Send a prompt to Text AI service and store the response in a Text Helper description: Send a prompt to Text AI service and store the response in a Text Helper
domain: automation domain: automation
source_url: https://github.com/smkrv/ha-text-ai/blob/main/blueprints/automation/ha_text_ai_request.yaml source_url: https://github.com/smkrv/ha-text-ai/blob/main/blueprints/automation/ha_text_ai_request.yaml
input: input:
trigger_entity: trigger_type:
name: Trigger Entity name: Trigger Type
description: Entity that will trigger this automation description: Select the type of trigger for automation
selector: default: state
entity: {} selector:
prompt_template: select:
name: Prompt Template options:
description: Template for the prompt. You can use template syntax, e.g., {{ states('sensor.temperature') }} - state
selector: - numeric_state
text: - time
multiline: true - template
response_id: trigger_entity:
name: Response ID name: Trigger Entity
description: Unique identifier for the Text Helper that will store the response description: Entity that will trigger this automation
selector: selector:
text: entity: {}
model: state_from:
name: AI Model name: From State
description: The AI model to use for generation description: Optional 'from state' condition (for state trigger)
default: gpt-3.5-turbo default: ""
selector: selector:
text: text:
temperature: required: false
name: Temperature state_to:
description: Controls randomness in the response (0-2) name: To State
default: 0.7 description: Optional 'to state' condition (for state trigger)
selector: default: ""
number: selector:
min: 0.0 text:
max: 2.0 required: false
step: 0.1 numeric_above:
mode: slider name: Above Value
max_tokens: description: Trigger when numeric value is above (for numeric state)
name: Max Tokens required: false
description: Maximum length of the response selector:
default: 150 number:
selector: mode: box
number: step: 0.1
min: 1 numeric_below:
max: 4096 name: Below Value
step: 1 description: Trigger when numeric value is below (for numeric state)
top_p: required: false
name: Top P selector:
description: Controls diversity via nucleus sampling number:
default: 1.0 mode: box
selector: step: 0.1
number: time_at:
min: 0.0 name: Time
max: 1.0 description: Time for the trigger (for time trigger)
step: 0.1 required: false
mode: slider selector:
frequency_penalty: time: {}
name: Frequency Penalty template_value:
description: Reduces repetition of token sequences name: Template
default: 0.0 description: Template condition (for template trigger)
selector: required: false
number: selector:
min: -2.0 template: {}
max: 2.0 prompt_template:
step: 0.1 name: Prompt Template
mode: slider description: Template for the prompt. You can use template syntax, e.g., {{ states('sensor.temperature') }}
presence_penalty: selector:
name: Presence Penalty text:
description: Reduces repetition of topics multiline: true
default: 0.0 response_id:
selector: name: Response ID
number: description: Unique identifier for the Text Helper that will store the response
min: -2.0 selector:
max: 2.0 text:
step: 0.1 model:
mode: slider name: AI Model
description: The AI model to use for generation
default: gpt-3.5-turbo
selector:
select:
options:
- gpt-4
- gpt-3.5-turbo
- gpt-3.5-turbo-16k
temperature:
name: Temperature
description: Controls randomness in the response (0-2)
default: 0.7
selector:
number:
min: 0.0
max: 2.0
step: 0.1
mode: slider
max_tokens:
name: Max Tokens
description: Maximum length of the response
default: 150
selector:
number:
min: 1
max: 4096
step: 1
top_p:
name: Top P
description: Controls diversity via nucleus sampling
default: 1.0
selector:
number:
min: 0.0
max: 1.0
step: 0.1
mode: slider
frequency_penalty:
name: Frequency Penalty
description: Reduces repetition of token sequences
default: 0.0
selector:
number:
min: -2.0
max: 2.0
step: 0.1
mode: slider
presence_penalty:
name: Presence Penalty
description: Reduces repetition of topics
default: 0.0
selector:
number:
min: -2.0
max: 2.0
step: 0.1
mode: slider
mode: queued mode: queued
max_exceeded: silent max_exceeded: silent
trigger: trigger:
- platform: state - choose:
entity_id: !input trigger_entity - conditions:
- condition: template
value_template: "{{ trigger_type == 'state' }}"
sequence:
- platform: state
entity_id: !input trigger_entity
from: !input state_from
to: !input state_to
- conditions:
- condition: template
value_template: "{{ trigger_type == 'numeric_state' }}"
sequence:
- platform: numeric_state
entity_id: !input trigger_entity
above: !input numeric_above
below: !input numeric_below
- conditions:
- condition: template
value_template: "{{ trigger_type == 'time' }}"
sequence:
- platform: time
at: !input time_at
- conditions:
- condition: template
value_template: "{{ trigger_type == 'template' }}"
sequence:
- platform: template
value_template: !input template_value
variables: variables:
prompt_template: !input prompt_template prompt_template: !input prompt_template
response_id: !input response_id response_id: !input response_id
model: !input model model: !input model
temperature: !input temperature temperature: !input temperature
max_tokens: !input max_tokens max_tokens: !input max_tokens
top_p: !input top_p top_p: !input top_p
frequency_penalty: !input frequency_penalty frequency_penalty: !input frequency_penalty
presence_penalty: !input presence_penalty presence_penalty: !input presence_penalty
action: action:
- service: ha_text_ai.text_ai_call - service: ha_text_ai.text_ai_call
data: data:
prompt: "{{ prompt_template }}" prompt: "{{ prompt_template }}"
response_id: "{{ response_id }}" response_id: "{{ response_id }}"
model: "{{ model }}" model: "{{ model }}"
temperature: "{{ temperature }}" temperature: "{{ temperature }}"
max_tokens: "{{ max_tokens }}" max_tokens: "{{ max_tokens }}"
top_p: "{{ top_p }}" top_p: "{{ top_p }}"
frequency_penalty: "{{ frequency_penalty }}" frequency_penalty: "{{ frequency_penalty }}"
presence_penalty: "{{ presence_penalty }}" presence_penalty: "{{ presence_penalty }}"