Open RobyBioloid opened 7 years ago
salut, pour le redemarage dans jarvis.sh tu as la commande "jv_update_config ;) ca met a jour tes commandes. donc pas besoin de redemarrer jarvis, pour le troubleshouting pareil tu as les commandes dans jarvis.sh si besoin aide hesite pas ou attend des rep de @alexylem
Si l'objectif est de prendre en compte les modifications de fichiers, je préfère comme suggéré par @NYGHOST te donner le moyen de faire ca exactement. Quels fichiers modifies-tu? Juste le fichier des commandes?
Lorsque Jarvis est lancé en mode service, tout l'historique est stocké dans jarvis.log
Pourquoi pas. Ca me fait penser à un autre ticket sur l'apprentissage automatique. Mais cela ne s'applique qu'aux discussions bêtes et méchantes. Je ne vois pas comment on pourrait directer des commandes complexes. Mais d'un point de vue probabilité, ton exemple a très peu de chance d'arriver, qui aurait l'idée de faire dire "Au revoir" à la commande "Bonjour"...
Bonsoir, autre sujet d'amélioration : Le nom Jarvis est très bien choisi, mais du coup c'est assez difficile à retrouver dans un moteur de recherche :/ Peut-être ajouter un préfixe/suffixe qui le rendrait unique ?
Oui, il s'agit essentiellement des fichier commands mais également function quand je test de nouveau plugins
Sinon pour l'exemple Bonjour, Au revoir. C'était un exemple 'humoristique' ;)
Pas besoin de redémarrer Jarvis si tu changes les commandes, testé à l'instant:
Alex: bonjour
Jarvis: Bonjour Alex
# nano jarvis-commands in another terminal
Alex: bonjour
Jarvis: Salut Alex
Pourquoi pas. Ca me fait penser à un autre ticket sur l'apprentissage automatique. Mais cela ne s'applique qu'aux discussions bêtes et méchantes. Je ne vois pas comment on pourrait directer des commandes complexes!
un redémarrage en mode keyboard réglerait le problème en partie ''' You : Bonjour Jarvis: Salut You: Mauvaise réponse Jarvis: Cette réponse ne vous convient pas? You: Non, passe en mode saisie et montre moi la ligne concernée "passage en mode keyboard"
Jarvis: Passage en mode saisie OK. Voici la ligne qui m'a poussé à vous répondre cela Jarvis:BONJOUR== say "Salut" You:BONJOUR==say "Bonjour $username" "passage en mode background avec mise à jour des commandes" Jarvis: Mise à jour éffectuée. You: Bonjour Jarvis Jarvis: Bonjour You ''' Voila un peu comment je vois les choses. Pense tu que c'est faisable? On peut imaginer plusieurs scénario comme par exemple pour chaque ligne modifié ainsi, ajouter dans un fichier daté du jour les lignes modifié
Du coup on pourrait lui demander: You: donne moi la liste des modifications apportées aujourd'hui? Jarvis: Je n'ai modifié qu'une ligne aujourdh'ui Jarvis: BONJOUR==say "Salut" par BONJOUR==say "Bonjour $username" Jarvis: Est-ce correct? You: oui "On peut imaginer que si ont dit non on repart sur une mise à jour de la ligne"
You: donne moi la liste des modifications apportées aujourd'hui? Jarvis: J'ai modifié 3 ligne aujourd'hui Jarvis: ligne 1: BONJOUR==say "Salut" par BONJOUR==say "Bonjour $username" Jarvis: ligne 2: AUREVOIR==say "A la prochaine" par AUVOIR==say "Au revoir" Jarvis: ligne 3: TERMINE==bypass=false; say "Ok" par TERMINE==bypas=false; say "Ok, à bientôt" Jarvis: Est-ce correct? You: Non, passe ne mode saisie et montre moi la ligne numero 3 "passage en mode keyboard" Jarvis: TERMINE==bypas=false; say "Ok, à bientôt" You: TERMINE*==bypass=false; say "Ok, à bientôt" "passage en mode background" Jarvis: "Mise à jour éffectuée."
2017-04-06 23:54 GMT+02:00 Alexandre Mély notifications@github.com:
Pas besoin de redémarrer Jarvis si tu changes les commandes, testé à l'instant:
Alex: bonjourJarvis: Bonjour Alex# nano jarvis-commands in another terminalAlex: bonjourJarvis: Salut Alex
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/alexylem/jarvis/issues/526#issuecomment-292335530, or mute the thread https://github.com/notifications/unsubscribe-auth/AYhEcqpa_ooO5hy9GdpoOL5ZrlOMryM8ks5rtV8wgaJpZM4M1aDG .
Ça reste faisable, avec un awk
ou grep
, ça me semble a porté mais il faut rendre le truc stable sous peine de toujours voir "i dont understand".
Je teste ça tout à l'heure, je te mettrais ici le code.
La commande jv_update_config fonctionne parfaitement par contre ça ne met pas à jour les changements apportés dans function.sh. Y a t'il un solution pour cela ou faut il forcément redémarrer Jarvis ?
Petit up pour @NYGHOST . Tu as trouvé une piste ou ça te semble compliqué?
Que pensez-vous d'un script python qui tourne en boucle avec une lecture "toutes les 5 secondes" pour éviter de trop consommer en ressource par exemple d'un fichier temp "rebbot.txt".
Quand on veux redemarrer Jarvis en mode clavier, on écrit "reboot_keyboard" dans le fichier temp et le script se charge donc de fermer Jarvis et de le relancer en mode keyboard
@NYGHOST Des avancées sur ton script ?
@RobyBioloid Pourquoi ne pas te créer un ou plusieurs alias ? Tu pourrais ainsi lancer des commandes longues et complexes avec des termes simples.
Je ne comprends pas où tu veux en venir avec la création d'alias :(
Plutôt que d’exécuter les commandes ./jarvis/jarvis.sh -k
ou ./jarvis/jarvis.sh -kv
, j'utilise les alias jarvis-kb
ou jarvis-tbm
quand je souhaite respectivement lancer Jarvis en mode Keyboard ou Keyboard+Troubleshooting.
J'ai un plantage dans le script python le voici `
if int(time.time()) - chrono > 5 : chrono = time.time() file = open("/dev/shm/data/reboot.txt") line = file.readline() if len(line) != 0 : if line[0:8] == "keyboard" : os.system(\'"\~/jarvis/jarvis.sh -s "Redémarrage de Jarvis en cours ..." \') time.sleep(2) os.system("\~/jarvis/jarvis.sh -q") time.sleep(2) os.system("\~/jarvis/jarvis.sh -b") `
La commande *REDEMARRE*SYSTEME==echo "keyboard" > /dev/shm/data/reboot.txt' fonctionne bien.
J'ai bien l'annonce du redémarrage Jarvis s’arrête, Se relance avec l'annonce de départ et plante
As-tu un message d'erreur ou un simple crash avec le processus qui disparaît ? Peut-être ouvrir un ticket dédié ?
dsl
pas mal de taff,
dans les grandes lignes il y aurait :
moi:"salut"
popole:"yo" *salut*== say "yo" ' moi:"mauvaise reponse" popole:"quelle commande ne vous a pas plus?" *mauvaise reponse*== say "quelle commande ne vous a pas plus?" moi:"salut" grep du mot sous forme: (*)== ecoute la reponse
désirée` que tu stock dans un fichier txt puis grep de "salut" et tu remplaces dans le say"" et rebbot jarvis je vois ca jeudi hesite pas a me le rappeler
pour lancer un fichier que tu veux:
*lance (*)==python (1).py
@Oliv4945 je n'ai pas de message d'erreur. Juste un crash
Bonjour à tous, Bravo Alex, Jarvis fonctionne très bien !
J'ai moi aussi quelques idées d'améliorations et remarques, je me permet de t'en faire part ci-après :
Pour les remarques :
Serait il possible d'améliorer la réactivité ? Je trouve que à l'appel de du mot magique et la reconnaissance de la commande sont longues et de fait pas très naturelles… Pouvoir dans la même phrase prononcer le mot magique et enchaîner l'instruction serait super (mais est ce possible à ce jour ?) par exemple : Pierre : "Jarvis, allume la lumière, s'il te plait" Jarvis : "J'allume la lumière"
Pour les améliorations :
Implémenter un mode multi-utilisateurs (avec des droits et des préférences différentes) du type : Pierre : "Jarvis, c'est Pierre, Allume la lumière, s'il te plait" Jarvis : "Bonjour, Pierre, j'allume la lumière" Je pense à cela notamment dans le cadre de la domotisaiton d'une maison, autoriser ou non l'usage d'une pièce… Mais aussi dans le cas d'un micro par pièce une affectation de droit spécifiques…
un mode apprentissage sous forme de module externe serait un plus : Je prends l'exemple de Siri qui est capable d'apprendre certaine choses tel que "Pierre Durant est mon Beau-Frère" ou "quand je dis le Robot cela concerne celui de la cuisine" ou "si je dis allume la chambre des petits tu peux aussi déterminer que c'est les enfants", ça ajouterai de la contextualité aux conversations… ou la prise en compte de généralité de type "allume les lumières à l'extérieur" "voudrez vous que je pense à les éteindre pour vous ?"
Voilà mes quelques idées, je n'ai vu cela écris nulle part, mais je n'ai pas tout lu non plus, j'espère l'avoir mis au bon endroit.
Pour le mode apprentissage, tu peux utiliser une base de données où tu stockes les infos; par exemple j'ai créé une base en sqlite où j'enregistre diverses infos que je donne à Jarvis.
Par ex, si je lui dis "J'habite à Paris", il enregistre en base "ville |Paris ", et lorsque je lui demande "Où j'habite ? " il me répond "Paris".
Cela permet de lui donner une "mémoire", avec plusieurs tables pour différentes utilisations. J'ai personnelement créé une table de paramètres et une table liée aux jeux afin de par exemple pouvoir jouer avec Jarvis et qu'il puisse avoir accès à différentes valeurs lors d'un jeu quelconque.
C'est un début de piste, à voir comment l'adapter dans tes exemples ^^
@Crali ça semble pas mal et un bon début de piste, avez vous un "tutoriel" pour la mise en place ?
Non je n'ai pas de tuto mais il faut juste créer une base sqlite et l'appeler dans les ordres. Il faut que je retrouve mon raspberry et j'essaierai d'expliquer (encore dans les cartons du déménagement) si personne ne l'a fait avant.
Pour le multi-utilisateurs c'est déjà discuté ici: #190
Bonjour,
J'ai plusieurs idées d'amélioration concernant le core de Jarvis
1) Est il possible de mettre en place des options de redémarrage ?
Il m'arrive assez souvent de modifier tel ou tel fichier de Jarvis et il faut forcément redémarrer Jarvis pour qu'il en tienne compte
Il serait sympa de gérer cela en vocal On pourrait:
You: Redemarre le système Jarvis: Je redemarre le système You: Redemarre le système en mode analyse Jarvis: Je redemarre le système en mode analyse etc ...
2) Avoir un historique de conversation
Ça permettrait de pouvoir revenir sur ce qu'on s'est dit et éventuellement corriger les interactions qu'on à eu avec Jarvis (Réponses inappropriées, phrase non reconnue, etc ...). On pourrait également profiter de cet historique pour donner un peu de mémoire à Jarvis (A voir ...)
3) Il serait sympa aussi que quand une réponse ne donne pas entière satisfaction, pouvoir modifier la réponse de Jarvis. Exemple:
You: Bonjour Jarvis Jarvis: Au revoir You: Mauvaise réponse, modifie cela s'il te plait Jarvis: Oui bien sûr. Que faut il répondre? You: Bonjour Jarvis: J'ai bien pris en compte la modification. Dois-je redémarrer le système? You: Oui, redémarre le système Jarvis: Je redémarre le système