Alias komend dla jolki

Jak radzicie sobie z różnorodnością zapytań o to samo do jolki, np:
czujnik “temperatura na zawnątrz”
komenda: jaka jest temperatura na zewnątrz - działa, natomiast
komenda: jaka jest temperatura na dworze - fajnie byłoby żeby również działała itd.
czujnik “temperatura Kacper”
komenda: jaka jest temperatura Kacper - działa, natomiast
komenda: jaka jest temperatura w pokoju Kacpra - nie zostanie rozpoznana
światło “salon”
komenda: zapal światło salon - jest ok, ale
komenda: zapal światło w salonie - już nie

Fajnie by było gdyby do sensora, światła itd. można by było dodawać kilka nazw “aliasów” które byłyby brane pod uwagę.

Hej @qumi

Aliasy to dobry pomysł, tak jest w Google Home itd… bo nikt nie pamięta dokładnie komendy. Pracujemy już nad tym.
Pewne rzeczy dopasowujemy wyrażeniami regularnymi z jakimś prawdopodobieństwem (teraz 85%) i to czasami działa, ale czasami to nadal szukanie igły w stogu siana.
W idealnym rozwiązaniu trzeba by było mieć więcej danych i robić wykrywanie intencji nie na podstawie wyrażeń regularnych, ale na podstawie informacji zwrotnej, na zasadzie → “napisz, co chciałeś zrobić, jak powiedziałeś xxxx”.

Ale wróćmy do aliasów.
W ostatniej aktualizacji dodaliśmy możliwość łatwego definiowania komend w interfejsie - wystarczy nazwę automatyzacji poprzedzić słowem “Jolka: …” tu masz dokładny opis jak to działa:

Przykład z życia

Załóżmy, że chcesz o godzinę pytać nie komendą: “godzina” czy “która godzina” itp. ale np. komendą → “która na osi”. Jolka tego nie rozumie. Żeby zrozumiała robisz tak:

  1. dodajesz automatyzację o nazwie “Jolka: która na osi”

  2. dodajesz w automatyzacji akcję → process
    akcja ‘‘process’’ to jest to, co robi Jolka, jak słyszy/dostaje komendę, w tej akcji dodajesz tekst → komendę którą rozumie Jolka → “która godzina”

  3. mówisz do Jolki “która na osi”

PS
teraz wystarczy, że zrobimy kolejny krok i zamiast “Jolka: która na osi” zaczniemy dodawać coś w stylu “Jolka: która na osi; jaki mamy czas; zegarek”
czyli przedzielamy nazwę średnikiem i już mamy aliasy :slight_smile:
(jeszcze nie wiadomo czy tak to docelowo rozwiążemy - testujemy to i zastanawiamy się jak to zrobić najprościej)

PS2
możemy też iść dalej
“Jolka: która na osi; jaki mamy czas; zegarek; what time is it”
i Jolka będzie poliglotką :wink:

PS3
Pierwsza Jolka była “trenowana” na platformie wit.ai, mieliśmy kilka intencji wytrenowanych.
Niestety każda zmiana powodowała problemy z działaniem - dodawaliśmy “włącz światło” i Jolka przestała rozumieć “włącz radio zet” które już doskonale znała, itd…

Nie mniej jednak to, co robi wit.ai (projekt FB) jest bardzo ciekawe, może jeszcze do tego wrócimy i zrobimy kolejne podejście, żeby zastosować wit.ai jako silnik do definiowania intencji w AIS.

5 polubień

Widziałem waszą nową funkcją “Dodawanie komend”, spore ułatwienie, natomiast nie do końca chciałem tworzyć nową automatyzację dla każdego możliwego scenariusza.

Natomiast nie wiedziałem o możliwości definiowania wielu możliwości w jednej automatyzacji, to bardzo ułatwi sprawę, przynajmniej tymczasowo, czekam na rozwój tematu z waszej strony.

1 polubienie

Nie do końca mi działają wasze komendy w nowej funkcjonalności, dodawanie ich poprzez automatyzacje.

Dodałem sobie przykładową automatyzację:
Jolka: włącz światło w jadalni; zapal światło w jadalni
(najwięcej mam problemów z jadalnią poprzez wbudowane polecenia)
po wywołaniu polecenia nie przełącza światła tylko włącza albo wyłącza automatyzację

czy coś robię nie tak, oczywiście w automatyzacji dodane:
akcja: wywołanie usługi: light.turn_on “lught jadalnia”
akcja: wywołanie usługi: ais_ai_service.say_it “już włączam”

Maiłem tak raz czy dwa razy -zamiast wykonać automatyzację wyłączało lub włączało ją :wink: Ale to było losowe - nic nie zmieniałem i w końcu Jolka załapała. Sprawdź jeszcze.

Ok, spróbuję pokombinować, a czy działa wam te aliasy w jolce, czyli kilka różnych komend do jednej usługi.

Było to kiedyś w dokumentacji; taki przykład był podany:

conversation.yaml

intents:
    WhenEOD:
        - ile do końca pracy
        - kiedy koniec pracy
        - kiedy do domu
intents.yaml

   WhenEOD:
       speech:
           text: Nie wiem, zapytaj szefa :)
       action:
           service: ais_ai_service.say_it
           data_template:
               text: "Jest {{ states.sensor.time.state }}. Nie wiem, zapytaj szefa :)."

Tak, ale niby teraz się odchodzi od grzebania w plikach .yaml
chodziło mi o ostatnie przykłady w automatyzacjach.