Commit Graph

60 Commits (a45ba51f890a86367f639e82a785d0ce76dcd503)

Author SHA1 Message Date
epenet 25d33e96cc
Add missing hass type hint in component tests (g) (#124203) 2024-08-19 00:29:26 -07:00
Paulus Schoutsen aa6f0cd55a
Add CONTROL supported feature to Google conversation when API access (#123046)
* Add CONTROL supported feature to Google conversation when API access

* Better function name

* Handle entry update inline

* Reload instead of update
2024-08-02 23:16:30 -07:00
Denis Shulyaka f6ad018f8f
Change enum type to string for Google Generative AI Conversation (#123069) 2024-08-02 23:14:24 -07:00
Allen Porter 8d0e998e54
Improve conversation agent tracing to help with eval and data collection (#122542) 2024-07-31 14:38:44 +02:00
Denis Shulyaka 975cfa6457
Fix gemini api format conversion (#122403)
* Fix gemini api format conversion

* add tests

* fix tests

* fix tests

* fix coverage
2024-07-22 17:56:13 -07:00
Denis Shulyaka ac1ad9680b
Goofle Generative AI: Fix string format (#122348)
* Ignore format for string tool args

* Add tests
2024-07-21 21:54:31 -07:00
epenet 43e4223a8e
Improve type hints in google_generative_ai tests (#121170) 2024-07-04 02:09:34 -07:00
tronikos 8354aa434e
Remove a useless line in Google Generative AI test (#120903) 2024-07-01 17:48:39 +02:00
tronikos 5ce54c2174
Replace GoogleAPICallError with GoogleAPIError (#120902) 2024-07-01 17:48:12 +02:00
tronikos d2a457c24f
Fix Google Generative AI: 400 Request contains an invalid argument (#120741) 2024-06-28 13:25:55 +02:00
Michael Hansen 1e16afb43b
Fix pylint error in Google generative AI tests (#120371)
* Fix pylint error

* Add second fix
2024-06-24 16:03:34 -05:00
Paulus Schoutsen 5c2db162c4
Remove "no API" prompt (#120280) 2024-06-24 08:57:59 +02:00
tronikos ad1f0db5a4
Pass prompt as system_instruction for Gemini 1.5 models (#120147) 2024-06-22 12:35:48 +02:00
Sid 721b2c2ca8
Enable Ruff PT012 (#113957) 2024-06-08 17:59:08 +02:00
tronikos f605c10f42
Properly handle escaped unicode characters passed to tools in Google Generative AI (#119117) 2024-06-08 09:02:00 +02:00
tronikos f9dff1632e
Use ISO format when passing date to LLMs (#118705) 2024-06-03 19:48:50 +02:00
tronikos a4612143e6
Use gemini-1.5-flash-latest in google_generative_ai_conversation.generate_content (#118594) 2024-05-31 21:57:14 -07:00
tronikos 7af469f81e
Strip Google AI text responses (#118593)
* Strip Google AI test responses

* strip each part
2024-05-31 21:55:52 -07:00
Paulus Schoutsen f3b20d30ae
Add base prompt for LLMs (#118592) 2024-06-01 00:21:37 -04:00
Denis Shulyaka bae96e7d36
Add Google Generative AI Conversation system prompt `user_name` and `llm_context` variables (#118510)
* Google Generative AI Conversation: Add variables to the system prompt

* User name and llm_context

* test for template variables

* test for template variables

---------

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2024-05-31 15:28:44 -04:00
Paulus Schoutsen 6dd01dbff7
Rename llm.ToolContext to llm.LLMContext (#118566) 2024-05-31 11:11:24 -04:00
tronikos 272c51fb38
Fix unnecessary single quotes escaping in Google AI (#118522) 2024-05-30 19:56:06 -04:00
tronikos aeee222df4
Default to gemini-1.5-flash-latest in Google Generative AI (#118367)
Default to flash
2024-05-29 08:04:47 -04:00
Paulus Schoutsen 615a1eda51
LLM Assist API to ignore intents if not needed for exposed entities or calling device (#118283)
* LLM Assist API to ignore timer intents if device doesn't support it

* Refactor to use API instances

* Extract ToolContext class

* Limit exposed intents based on exposed entities
2024-05-28 21:29:18 -04:00
Paulus Schoutsen 0cf574dc42
Update the recommended model for Google Gen AI (#118323) 2024-05-28 21:21:28 -04:00
tronikos 4f7a91828e
Mock llm prompts in test_default_prompt for Google Generative AI (#118286) 2024-05-28 00:40:26 -04:00
tronikos 63227f14ed
Add diagnostics to Google Generative AI (#118262)
* Add diagnostics for Google Generative AI

* Remove quality scale from manifest

* include options in diagnostics
2024-05-28 00:02:32 -04:00
tronikos 0c245f1976
Fix freezing on HA startup when there are multiple Google Generative AI config entries (#118282)
* Fix freezing on HA startup when there are multiple Google Generative AI config entries

* Add timeout to list_models
2024-05-27 23:49:16 -04:00
tronikos 722feb285b
Handle multiple function_call and text parts in Google Generative AI (#118270) 2024-05-27 19:57:03 -04:00
Paulus Schoutsen ecb05989ca
Add exposed entities to the Assist LLM API prompt (#118203)
* Add exposed entities to the Assist LLM API prompt

* Check expose entities in Google test

* Copy Google default prompt test cases to LLM tests
2024-05-27 00:27:08 -04:00
Paulus Schoutsen 1602c8063c
Standardize LLM instructions prompt (#118195)
* Standardize instructions prompt

* Add time/date to default instructions
2024-05-26 20:24:26 -04:00
tronikos 0972b29510
Add Google Generative AI reauth flow (#118096)
* Add reauth flow

* address comments
2024-05-26 11:44:48 -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
tronikos 0182bfcc81
Google Generative AI: 100% test coverage for conversation (#118112)
100% coverage for conversation
2024-05-25 07:52:20 -04:00
Paulus Schoutsen 81f3387d06
Flip prompts to put user prompt on top (#118085) 2024-05-25 00:33:24 -04:00
Paulus Schoutsen 69f237fa9e
Update Google safety defaults to match Google (#118084) 2024-05-25 00:02:53 -04:00
Paulus Schoutsen c59d4f9bba
Add no-API LLM prompt back to Google (#118082)
* Add no-API LLM prompt back

* Use string join
2024-05-25 00:00:04 -04:00
Paulus Schoutsen 86a24cc3b9
Fix default Google AI prompt on initial setup (#118078) 2024-05-24 23:55:11 -04:00
tronikos 620487fe75
Add Google Generative AI safety settings (#117679)
* Add safety settings

* snapshot-update

* DROPDOWN

* fix test

* rename const

* Update const.py

* Update strings.json
2024-05-24 21:48:39 -04:00
tronikos 5ca27f5d0c
Google Generative AI: add timeout to ensure we don't block HA startup (#118066)
* timeout

* fix

* tests
2024-05-24 21:31:02 -04:00
Paulus Schoutsen 7554ca9460
Allow llm API to render dynamic template prompt (#118055)
* Allow llm API to render dynamic template prompt

* Make rendering api prompt async so it can become a RAG

* Fix test
2024-05-24 16:04:48 -04:00
Paulus Schoutsen d1af40f1eb
Google gen updates (#117893)
* Add a recommended model for Google Gen AI

* Add recommended settings to Google Gen AI

* Revert no API msg

* Use correct default settings

* Make sure options are cleared when using recommended

* Update snapshots

* address comments
2024-05-23 17:16:48 -04:00
Paulus Schoutsen 1f7245ecf2
Update LLM no tools message (#117935) 2024-05-22 21:17:03 -04:00
tronikos e4130480c3
Google Generative AI: Handle response with empty parts in generate_content (#117908)
Handle response with empty parts in generate_content
2024-05-22 07:47:16 -07:00
Denis Shulyaka 009c9e79ae
LLM Tools: Add device_id (#117884) 2024-05-21 21:24:46 -04:00
Paulus Schoutsen f21226dd0e
Address late feedback Google LLM (#117873) 2024-05-21 20:11:18 +02:00
Denis Shulyaka c3196a5667
LLM Tools support for Google Generative AI integration (#117644)
* initial commit

* Undo prompt chenges

* Move format_tool out of the class

* Only catch HomeAssistantError and vol.Invalid

* Add config flow option

* Fix type

* Add translation

* Allow changing API access from options flow

* Allow model picking

* Remove allowing HASS Access in main flow

* Move model to the top in options flow

* Make prompt conditional based on API access

* convert only once to dict

* Reduce debug logging

* Update title

* re-order models

* Address comments

* Move things

* Update labels

* Add tool call tests

* coverage

* Use LLM APIs

* Fixes

* Address comments

* Reinstate the title to not break entity name

---------

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2024-05-19 22:11:25 -04:00
Allen Porter caa35174cb
Add Google Gen AI Conversation Agent Entity (#116362)
* Add Google Gen AI Conversation Agent Entity

* Rename agent to entity

* Revert ollama changes

* Don't copy service tests to conversation_test.py

* Move logger and cleanup snapshots

* Move property after init

* Set logger to use package

* Cleanup hass from constructor

* Fix merges

* Revert ollama change
2024-05-17 11:00:11 -04:00
tronikos 5c4afe55fd
Avoid exceptions when Gemini responses are blocked (#116847)
* Bump google-generativeai to v0.5.2

* Avoid exceptions when Gemini responses are blocked

* pytest --snapshot-update

* set error response

* add test

* ruff
2024-05-06 18:22:22 +10:00
Joost Lekkerkerker 906d3198e3
Use is in enum comparison in config flow tests F-J (#114670)
* Use right enum expression F-J

* Fix
2024-04-02 23:01:37 +02:00