Commit Graph

204 Commits (llm-task-pref)

Author SHA1 Message Date
Michael Hansen 60774575c6
Set HA time zone with freeze_time in agent test (#131058)
* Patch dt_util instead of using freeze_time

* Use freeze_time but set HA timezone
2024-11-20 19:29:36 +01:00
Michael Hansen 5fa9a945d9
Handle sentence triggers and local intents before pipeline agent (#129058)
* Handle sentence triggers and registered intents in Assist LLM API

* Remove from LLM

* Check sentence triggers and local intents first

* Fix type

* Fix type again

* Use pipeline language

* Fix cloud test

* Clean up and fix translation key

* Refactor async_recognize
2024-11-14 10:50:50 -06:00
Michael Hansen 51c6ee97b1
Upgrade to hassil 2.0 (#130544)
* Working on hassil 2.0

* Bump to hassil 2.0

* Update snapshots

* Remove debug logging
2024-11-13 16:50:08 -05:00
Michael f10063c9be
Fix translation key for `done` response in conversation (#130247) 2024-11-10 16:28:58 +01:00
Michael Hansen 901457e7aa
Bump intents and add HassRespond test (#129830) 2024-11-05 22:22:49 +01:00
Michael Hansen cb1b72d6ba
Bump intents to 2024.10.30 (#129505) 2024-10-30 16:20:59 +01:00
Artur Pragacz 866f1e70a4
Fix default conversation agent tests (#128490) 2024-10-15 22:21:18 -05:00
Artur Pragacz bb9f534259
Improve intent recognition in default conversation agent (#124282)
Use the same logic for custom sentences.
Prefer higher quality (longer) names.
2024-10-15 09:14:31 -05:00
Michael Hansen 8ee8421af7
Use device area/floor in HassGetState intent (#128197)
Use preferred area/floor in HassGetState intent
2024-10-11 16:08:43 -05:00
Michael Hansen 67e0ccf677
Use exposed error messages in Assist (#127503)
* Use exposed error messages

* Report expose errors

* Remove comment

* Relative import

* Rework expose check logic

* Delay creation of all names list, and skip config/hidden entities

* Clean up commented code and type issue

* Fix test

* Move assistant check
2024-10-11 13:06:03 -04:00
epenet f8a53aea09
Use HassKey in conversation (#126332)
* Use HassKey in conversation

* Adjust tests
2024-09-22 17:54:14 +02:00
Paulus Schoutsen 1936aeccb9
Add a test for async_converse (#124697) 2024-08-27 11:01:00 -05:00
Andrii Mitnovych 254aa8c9ea
Add entity deduplication by assist device ID in conversation agent (#123957)
* Add entities deduplication by assist device ID in default conversation agent

* Updated test.
2024-08-19 15:00:23 -05:00
Joost Lekkerkerker e8d7eb05ae
Delete unused snapshots (#123656)
* Delete unused snapshots

* Delete unused snapshots
2024-08-12 13:28:09 +02:00
Allen Porter 8d0e998e54
Improve conversation agent tracing to help with eval and data collection (#122542) 2024-07-31 14:38:44 +02:00
Allen Porter f14471112d
Improve LLM tool quality by more clearly specifying device_class slots (#122723)
* Limit intent / llm API device_class slots to only necessary services and limited set of values

* Fix ruff errors

* Run ruff format

* Fix typing and improve output schema

* Fix schema and improve flattening

* Revert conftest

* Revert recorder

* Fix ruff format errors

* Update using latest version of voluptuous
2024-07-31 14:36:02 +02:00
epenet 075550b7ba
Use HOMEASSISTANT_DOMAIN alias for core DOMAIN in tests (#122762) 2024-07-29 12:51:12 +02:00
Marc Mueller a6068dcdf2
Update import locations in tests (#122216) 2024-07-20 11:16:04 +02:00
Michael Hansen fa0a5451b9
Split up tests to avoid CI timeouts (#122096) 2024-07-17 20:32:26 +02:00
Michael Hansen 417abda649
Add HassGetCurrentDate and HassGetCurrentTime intents (#121707) 2024-07-11 00:17:04 +02:00
Paulus Schoutsen 01861cd240
Ensure we prepare conversation pipeline when speech-to-text starts (#114665)
* Ensure we prepare conversation pipeline when speech-to-text starts

* Add lock around recognize

* Update homeassistant/components/conversation/default_agent.py

* Add lock around load intents
2024-07-09 09:58:52 -05:00
Michael Hansen 4498bf9ec4
Remove language lock from default agent and move around tests (#121531)
* Remove language lock

* Remove unsub for change events

* Remove redundant check

* Simplify intent loading

* Cache intent loading error

* Revert "Remove unsub for change events"

This reverts commit 575266abcd.

* guard instead of assert

* Some more cleanup

* No need to warn during prepare

* Some more cleanup

* Add more timing logs

* Split up tests and rely less on http

---------

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2024-07-09 16:05:43 +02:00
Jan Bouwhuis 8a28cbe9e2
Wait for conversation test init (#121464)
* Wait for conversation test init

* typo
2024-07-07 22:24:20 +02:00
Paulus Schoutsen daaf35d4c1
Simplify conversation tests (#121060)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2024-07-05 09:46:36 +02:00
Paulus Schoutsen a885bdfe76
Add conversation supported feature CONTROL (#121036) 2024-07-03 14:30:51 +02:00
epenet e5c7ff6a5b
Use service_calls fixture in conversation tests (#120906) 2024-07-01 17:57:40 +02:00
Michael Hansen 02b142fbde
Bump intents to 2024.6.26 (#120584)
Bump intents
2024-06-26 11:13:01 -05:00
Michael Hansen d3ceaef098
Allow timer management from any device (#120440) 2024-06-26 09:06:56 +02:00
Michael Hansen 46dcf1dc44
Prioritize custom intents over builtin (#120358) 2024-06-24 20:57:56 +02:00
epenet 015bc0e172
Use HassKey in homeassistant integration (#120332) 2024-06-24 16:37:07 +02:00
epenet b4d0de9c0f
Improve type hints in conversation tests (#120306) 2024-06-24 13:41:55 +02:00
Michael Hansen 8aed04cd3c
Bump intents to 2024.6.21 (#120106) 2024-06-21 18:19:52 +02:00
epenet 904cf26d31
Add MockToggleEntity type hints in tests (#120075) 2024-06-21 12:32:03 +02:00
Michael Hansen bca8958d4b
Prioritize literal text with name slots in sentence matching (#118900)
Prioritize literal text with name slots
2024-06-06 14:20:34 -04:00
Michael Hansen 0257aa4839
Clean up exposed domains (#118753)
* Remove lock and script

* Add media player

* Fix tests
2024-06-03 21:26:40 -05:00
epenet 5d594a509c
Add type hints for MockAgent in conversation tests (#118701) 2024-06-03 17:44:13 +02:00
epenet 1fbf93fd36
Add SnapshotAssertion type hints in tests (#118371) 2024-05-29 14:11:58 +02:00
epenet 7e62061b9a
Improve typing for `calls` fixture in tests (a-l) (#118349)
* Improve typing for `calls` fixture in tests (a-l)

* More

* More
2024-05-29 09:06:48 +02:00
Michael Hansen d223e1f2ac
Add Conversation command to timers (#118325)
* Add Assist command to timers

* Rename to conversation_command. Execute in timer code.

* Make agent_id optional

* Fix arg

---------

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2024-05-28 20:33:31 -05:00
Michael Hansen 106cb4cfb7
Bump intents and add tests for new error messages (#118317)
* Add new error keys

* Bump intents and test new error messages

* Fix response text
2024-05-28 12:24:24 -04:00
Allen Porter 89e2c57da6
Add conversation agent debug tracing (#118124)
* Add debug tracing for conversation agents

* Minor cleanup
2024-05-25 14:16:51 -04:00
Thomas55555 528d67ee06
Remove unused snapshots [a-f] (#117999) 2024-05-24 08:28:04 +02:00
Michael Hansen daee3d8db0
Don't prioritize "name" slot if it's a wildcard in default conversation agent (#117518)
* Don't prioritize "name" slot if it's a wildcard

* Fix typing error
2024-05-15 22:23:24 -04:00
Michael Hansen 641754e0bb
Pass device_id to intent handlers (#117442) 2024-05-14 13:59:49 -05:00
Michael Hansen 7923471b94
Intent target matching and media player enhancements (#115445)
* Working

* Tests are passing

* Fix climate

* Requested changes from review
2024-05-07 22:01:03 -04:00
Michael Hansen 1c2499b03a
Add "conversation" key to translations (#114887)
* Use translated trigger response

* Use conversation key instead
2024-04-04 14:45:27 -05:00
J. Nick Koston aedfd6c983
Add index for floor/label to the area registry (#114777) 2024-04-03 21:04:26 -10:00
Paulus Schoutsen d2e4f5f36e
Add conversation entity (#114518)
* Default agent as entity

* Migrate constant to point at new value

* Fix tests

* Fix more tests

* Move assist pipeline back to cloud after dependenceis
2024-04-01 21:34:25 -04:00
Paulus Schoutsen f01235ef74
Re-organize conversation integration (#114502)
* Re-organize conversation integration

* Clean up 2 more imports

* Re-export models

* Fix imports

* Uno mas

* Rename agents to models

* Fix cast test that i broke?

* Just blocking till I'm done

* Wrong place
2024-03-31 00:05:25 -04:00
Michael Hansen d23b22b566
Add initial support for floors to intents (#114456)
* Add initial support for floors to intents

* Fix climate intent

* More tests

* No return value

* Add requested changes

* Reuse event handler
2024-03-30 16:59:20 -04:00
Sid dc557fca1e
Refactor conversation mock_agent (#114428)
* Refactor conversation mock_agent

* Address review comments
2024-03-29 14:38:58 +01:00
Michael Hansen e4d2985589
Bump intents to 2024.3.27 (#114312) 2024-03-27 16:43:15 +01:00
Jan-Philipp Benecke 9580adfde9
Use new `setup_test_component_platform` helper instead of test fixture for light platform (#114200) 2024-03-26 00:17:16 +01:00
Joost Lekkerkerker 6bb4e7d62c
Bump ruff to 0.3.4 (#112690)
Co-authored-by: Sid <27780930+autinerd@users.noreply.github.com>
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-03-26 00:02:16 +01:00
Jan-Philipp Benecke cd0c9e1c4f
Remove deprecated `hass.components` from conversation tests and use light setup fixture (#114012) 2024-03-22 17:52:10 +01:00
Sid 00ec7f11f0
Enable Ruff rule PT007 (#113764)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2024-03-19 09:01:07 +01:00
Sid 82a60fe8ad
Enable Ruff RSE (#113695) 2024-03-18 00:40:38 +01:00
Michael Hansen 556855f54e
Add device_id to sentence trigger and external conversation APIs (#113094)
* Add device_id to sentence trigger and external conversation APIs

* Remove device_id from external API

* Update tests/components/conversation/snapshots/test_init.ambr

---------

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2024-03-12 08:50:06 -04:00
Marc Mueller aa16a9d707
Add empty line after module docstring (3) (#112750) 2024-03-08 20:38:34 +01:00
Marc Mueller 38adfbf1a3
Add empty line after module docstring [tests a-e] (#112708) 2024-03-08 08:50:25 -05:00
Michael Hansen 0d0b64d351
Move HassSetPosition to homeassistant domain (#111867)
* Move HassSetPosition to homeassistant domain

* Add test for unsupported domain with HassSetPosition

* Split service intent handler

* cleanup

---------

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2024-02-29 21:53:52 -05:00
Michael Hansen 0985a7ab91
Bump intents and add sentence tests (#111791) 2024-02-28 23:25:33 -05:00
J. Nick Koston fdd45189ca
Fix trigger attachment race in conversation tests (#110869) 2024-02-18 20:13:41 +01:00
Michael Hansen 2681dae60c
Matching duplicate named entities is now an error in Assist (#110050)
* Matching duplicate named entities is now an error

* Update snapshot

* Only use area id
2024-02-08 19:38:03 -06:00
Michael Hansen 1750f54da4
Assist fixes (#109889)
* Don't pass entity ids in hassil slot lists

* Use first completed response

* Add more tests
2024-02-07 15:13:42 -06:00
Michael Hansen c6ea57458c
Pass slots to error messages instead of IDs [rework] (#109410)
Co-authored-by: tetele <tm.sandu@gmail.com>
2024-02-03 12:14:33 +01:00
Erik Montnemery 9d22f07fc6
Use send_json_auto_id in conversation tests (#109354) 2024-02-02 15:46:59 +01:00
Michael Hansen a1eaa5cbf2
Migrate to new intent error response keys (#109269) 2024-02-01 21:10:24 +01:00
Michael Hansen c2c98bd04c
Move default response out of sentence trigger registration and into agent (#109317)
* Move default response out of trigger and into agent

* Add test
2024-02-01 20:40:29 +01:00
Michael Hansen 9752e70675
Intents package combines sentences/responses per language (#109079) 2024-01-30 12:38:29 +01:00
Michael Hansen 61c6c70a7d
Improved Assist debug (#108889)
* Differentiate builtin/custom sentences and triggers in debug

* Refactor so async_process runs triggers

* Report relative path of custom sentences file

* Add sentence trigger test
2024-01-26 23:04:45 -05:00
Michael Hansen d8a1c58b12
Fix intent loading and incorporate unmatched entities more (#108423)
* Incorporate unmatched entities more

* Don't list targets when match is incomplete

* Add test for out of range
2024-01-23 20:31:57 -05:00
Erik Montnemery 9bff039d17
Add set_conversation_response script action (#108233)
* Add set_conversation_response script action

* Update homeassistant/components/conversation/trigger.py

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>

* Revert accidental change

* Add test

* Ignore mypy

* Remove incorrect callback decorator

* Update homeassistant/helpers/script.py

* Add test with templated set_conversation_response

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2024-01-23 09:13:42 -05:00
Erik Montnemery 91815ed5f9
Assert default response from conversation trigger (#108231) 2024-01-17 15:47:06 +01:00
Michael Hansen 4bb2a3ad92
Specific Assist errors for domain/device class (#107302)
* Specific errors for domain/device class

* Don't log exception

* Check device class first

* Refactor guard clauses

* Test default error
2024-01-08 12:23:06 -06:00
Michael Hansen a600a0e023
Expose all areas to Assist and ignore empty aliases (#107267)
* Expose all areas to Assist

* Skip empty entity/area aliases
2024-01-05 13:45:41 -05:00
Michael Hansen 269500cb29
Report missing entities/areas instead of failing to match in Assist (#107151)
* Report missing entities/areas instead of failing

* Fix test

* Update assist pipeline test snapshots

* Test complete match failure

* Fix conflict
2024-01-04 17:09:20 -06:00
Denis Shulyaka 99bcc38284
Add conversation_id parameter to conversation.process service (#106078)
* Add conversation_id parameter to conversation.process service

* fix test

* fix tests
2024-01-04 14:46:06 -06:00
Michael Hansen 5003993658
Bump intents to 2024.1.2 (#106909) 2024-01-02 15:35:48 -06:00
Michael Hansen fdeb9e36c3
Use area id for context instead of name (#105313) 2023-12-08 10:05:21 -06:00
Michael Hansen 8c99cf14d3
Context slot decisions moved into hassil (#104132) 2023-11-17 11:07:08 -06:00
Michael Hansen a8acde62ff
Use device area as context during intent recognition (#103939)
* Use device area as context during intent recognition

* Use guard clauses
2023-11-17 07:34:14 -06:00
Michael Hansen e157206eeb
Conversation reload with language=None clears all languages (#103757)
Reload with language=None clears all languages
2023-11-10 13:22:49 -05:00
Tudor Sandu d3ed8a6b8b
Validate empty sentence triggers (#103579)
* Validate empty sentence triggers

* Add extra test for no sentences

* Remove extra line

---------

Co-authored-by: Michael Hansen <mike@rhasspy.org>
2023-11-07 11:56:24 -06:00
Michael Hansen 25671a2e42
Add HassNevermind intent (bump intents package) (#102131)
* Add HassNevermind intent

* Bump intents package to 2023.10.16
2023-10-16 19:13:26 -05:00
Erik Montnemery da53944a37
Adjust conversation tests which create devices (#98185) 2023-08-10 18:22:17 +02:00
Michael Hansen 7cf2199e8b
Bump intents to 2023.8.2 (#97636) 2023-08-02 20:01:30 -04:00
Michael Hansen 7e3fdd85fc
Add wildcards to sentence triggers (#97236)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2023-07-27 20:30:42 +02:00
Michael Hansen 311c321d06
Add HassShoppingListAddItem to default agent (#97232)
* Bump hassil and intents package for HassShoppingListAddItem

* Remove hard-coded response text

* Test adding item to the shopping list

* Hook removed import in test for some reason
2023-07-25 22:19:03 -04:00
Franck Nijhof f2bd122fde
Clean up conversation agent attribution (#96883)
* Clean up conversation agent attribution

* Clean up google_generative_ai_conversation as well
2023-07-19 09:03:53 +02:00
Michael Hansen 6b8ae0ec86
Ensure trigger sentences do not contain punctuation (#95633)
* Ensure trigger sentences do not contain punctuation

* Update homeassistant/components/conversation/trigger.py

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>

---------

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2023-06-30 13:06:26 -05:00
Michael Hansen 487dd3f956
Add targeted entities to sentence debug API (#95480)
* Return targets with debug sentence API

* Update test

* Update homeassistant/components/conversation/__init__.py

* Include area/domain in test sentences

---------

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2023-06-28 18:34:43 -04:00
Michael Hansen 79f1c86789
Bump home-assistant-intents to 2023.6.28 (#95451) 2023-06-28 19:35:18 +02:00
Paulus Schoutsen d6cd5648b9
Change conversation default agent behavior (#95225)
* Change conversation default agent behavior

* Fix tests
2023-06-26 22:10:17 -04:00
Paulus Schoutsen 3f10233833
Add return value to conversation.process service (#94740)
* Add return value to conversation.process service

* Adjust for new API
2023-06-23 13:32:03 -04:00
Michael Hansen d811fa0e74
Sentence trigger (#94613)
* Add async_register_trigger_sentences for default agent

* Add trigger response and trigger handler

* Check callback in test

* Clean up and move response to callback

* Add trigger test

* Drop TriggerAction

* Test we pass sentence to callback

* Match triggers once, allow multiple sentences

* Don't use trigger id

* Use async callback

* No response for now

* Use asyncio.gather for callback responses

* Fix after rebase

* Use a list for trigger sentences

---------

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2023-06-22 18:29:34 -05:00
Michael Hansen 38614bc3f0
Add websocket command to test intent recognition for default agent (#94674)
* Add websocket command to test intent recognition for default agent

* Return results as a list

* Only check intent name/entities in test

* Less verbose output in debug API
2023-06-22 12:24:59 -04:00
Paulus Schoutsen cd330a2740
Pass device ID to conversation input (#93867) 2023-05-31 16:56:12 -04:00
Michael Hansen 9f4c9f1ce3
Bump intents to 2023.5.30 (#93822) 2023-05-30 22:11:08 +02:00
Michael Hansen 74560ab139
Skip unexposed entities in intent handlers (#92415)
* Filter intent handler entities by exposure

* Add test for skipping unexposed entities
2023-05-03 12:18:31 -04:00