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

Booking information not updated for State Tracker[BUG] #175

Open
ChrisGeishauser opened this issue Feb 17, 2021 · 3 comments
Open

Booking information not updated for State Tracker[BUG] #175

ChrisGeishauser opened this issue Feb 17, 2021 · 3 comments
Labels
bug Something isn't working

Comments

@ChrisGeishauser
Copy link

Hi all,

in the script ConvLab-2/convlab2/policy/vector/vector_multiwoz.py in line 168 onwards, there is the following code:

book = np.zeros(len(self.db_domains))
for i, domain in enumerate(self.db_domains):
if state['belief_state'][domain.lower()]['book']['booked']:
book[i] = 1.

This checks whether an entity has been booked by the system for every domain. Yet I can not find that the belief_state is updated after an entity has been booked.

I would expect that after an entity has been booked, the belief_state will be updated. Is that missing or did I overlook it?

Thanks in advance!

@ChrisGeishauser ChrisGeishauser added the bug Something isn't working label Feb 17, 2021
@liangrz15
Copy link
Contributor

liangrz15 commented Feb 19, 2021

In the script ConvLab-2/convlab2/policy/vector/vector_multiwoz.py, the method state_vectorize(self, state) is used to create the vector version of the given state. It does not try to update anything.

Currently, the output state_vec consists of six parts (for readability), two of which are belief_state and book. Both belief_state and book are created according to the input state.

The input state of state_vectorize(self, state) is created in dst module. If you are interested in how the book information in input state is updated, you can check ConvLab-2/convlab2/dst/rule/multiwoz/dst.py.

@ChrisGeishauser
Copy link
Author

Thanks for your quick answer!

In the script ConvLab-2/convlab2/policy/vector/vector_multiwoz.py, the method state_vectorize(self, state) is used to create the vector version of the given state. It does not try to update anything.

I just used it for checking if the case "if state['belief_state'][domain.lower()]['book']['booked']:" is ever triggered and it was not.

The input state of state_vectorize(self, state) is created in dst module. If you are interested in how the book information in input state is updated, you can check ConvLab-2/convlab2/dst/rule/multiwoz/dst.py.

I also checked that but it seems it only uses the user-act to update it right? But the information if an entity has been booked should be updated using the system-act, right?

@zqwerty
Copy link
Member

zqwerty commented Feb 22, 2021

You are right. 'booked' is not updated by ruleDST. I think booked information should be updated by the policy module (sys-act).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants