Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor: HMI Node #143

Merged
merged 9 commits into from
Sep 17, 2024
Merged

refactor: HMI Node #143

merged 9 commits into from
Sep 17, 2024

Conversation

maciejmajek
Copy link
Member

@maciejmajek maciejmajek commented Aug 16, 2024

Merge after #149

Purpose

This PR introduces a BaseHMINode class to streamline the implementation of various Human-Machine Interface (HMI) modalities (e.g., text-to-text, speech-to-speech). The goal is to simplify the current HMI architecture, which has separate and complex solutions for different modalities.

Proposed Changes

This PR:

  • Adds the BaseHMINode. This base class provides core functionality for HMI nodes, including loading the system wide system prompt, querying a FAISS index, publishing processing statuses, and handling feedback requests.
  • Implements abstract methods that must be overridden by subclasses to handle feedback requests.

Issues

Related: #142

Testing

TODO

@maciejmajek maciejmajek marked this pull request as draft August 16, 2024 15:28
maciejmajek and others added 7 commits September 17, 2024 12:45
…ies (text-to-text, speech-to-speech, etc.)

feat: handle faiss index loading error

feat: add  to base hmi class

feat: add basic tools to the base node

feat: skeleton class for voice hmi

feat: handle faiss initialization error, add robot_description_package param

chore: add license to voice_hmi

feat: implement voice_hmi agents
feat: skeleton handle_task_feedback_request implementation

chore: remove deprecated Feedback.srv

fix(state_based.py): add status field with value "error" to error log entries in ToolRunner class
fix(action_handler_mixin.py): raise exception and log error if task action server is not available
refactor(base.py): refactor BaseHMINode constructor to accept robot_description_package parameter and handle it accordingly
feat: enhance typing

chore: cleanup

feat: artifact store poc

fix: add missing imports

feat: use artifact database in text hmi

chore: move rai navigator to nav2 specific tools

chore: cleanup

fix: include system prompt in text hmi

fix: remove deprecated streamlit hmi, fix imports

fix: display tool calls when ai_msg.content is not empty
boczekbartek and others added 2 commits September 17, 2024 15:23
fix(voice_hmi): use HumanMessage instead of string
fix(text_hmi): typo in import
@maciejmajek
Copy link
Member Author

maciejmajek commented Sep 17, 2024

image

Streamlit GUI is working

@rachwalk rachwalk self-requested a review September 17, 2024 14:23
Copy link
Contributor

@rachwalk rachwalk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@maciejmajek maciejmajek merged commit 5a95f9f into development Sep 17, 2024
4 checks passed
@maciejmajek maciejmajek deleted the refactor/hmi branch September 17, 2024 14:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Chat interface has no access to some tools when running HMI without the "whoami" parameter.
3 participants