Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,9 @@
import os

from dialoguekit.core.dialogue import Dialogue
from usersimcrs.core.information_need import InformationNeed
from usersimcrs.information_need_management.information_need import (
InformationNeed,
)
from usersimcrs.llm_interfaces.llm_interface import LLMInterface

DEFAULT_INITIAL_PROMPT_MOVIES_FILE = "scripts/datasets/information_need_annotation/information_need_prompt_movies_default.txt" # noqa: E501
Expand Down
6 changes: 4 additions & 2 deletions tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,9 @@
from dialoguekit.core.intent import Intent
from dialoguekit.utils.dialogue_reader import json_to_dialogues

from usersimcrs.core.information_need import InformationNeed
from usersimcrs.information_need_management.information_need import (
InformationNeed,
)
from usersimcrs.core.simulation_domain import SimulationDomain
from usersimcrs.items.item import Item
from usersimcrs.items.item_collection import ItemCollection
Expand All @@ -26,7 +28,7 @@ def domain() -> SimulationDomain:
return SimulationDomain(DOMAIN_YAML_FILE)


@pytest.fixture(scope="module")
@pytest.fixture
Comment thread
dkkdark marked this conversation as resolved.
Comment thread
NoB0 marked this conversation as resolved.
def information_need() -> InformationNeed:
"""Information need fixture."""
constraints = {"GENRE": "Comedy", "DIRECTOR": "Steven Spielberg"}
Expand Down
26 changes: 19 additions & 7 deletions tests/core/test_information_need.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import pytest

from usersimcrs.core.information_need import (
from usersimcrs.information_need_management.information_need import (
InformationNeed,
generate_random_information_need,
)
Expand Down Expand Up @@ -59,16 +59,12 @@ def test_get_requestable_slots(information_need: InformationNeed) -> None:
information_need: Information need.
"""
assert information_need.get_requestable_slots() == ["PLOT", "RATING"]
information_need.requested_slots["RATING"] = 4.5
information_need.mark_request_complete("RATING", 4.5)
assert information_need.get_requestable_slots() == ["PLOT"]


def test_to_dict(information_need: InformationNeed) -> None:
"""Test to_dict.

Args:
information_need: Information need.
"""
"""Test to_dict."""
assert information_need.to_dict() == {
"target_items": [
{
Expand All @@ -83,6 +79,14 @@ def test_to_dict(information_need: InformationNeed) -> None:
],
"constraints": {"GENRE": "Comedy", "DIRECTOR": "Steven Spielberg"},
"requests": ["PLOT", "RATING"],
"constraint_states": {
"GENRE": InformationNeed.SLOT_STATE_INCOMPLETE,
"DIRECTOR": InformationNeed.SLOT_STATE_INCOMPLETE,
},
"request_states": {
"PLOT": InformationNeed.SLOT_STATE_INCOMPLETE,
"RATING": InformationNeed.SLOT_STATE_INCOMPLETE,
},
}


Expand Down Expand Up @@ -140,3 +144,11 @@ def test_from_dict() -> None:
loaded_information_need.requested_slots
== expected_information_need.requested_slots
)
assert (
loaded_information_need.constraint_states
== expected_information_need.constraint_states
)
assert (
loaded_information_need.request_states
== expected_information_need.request_states
)
13 changes: 10 additions & 3 deletions tests/simulator/agenda_based/test_interaction_model.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,12 @@
from dialoguekit.core.intent import Intent
from dialoguekit.core.slot_value_annotation import SlotValueAnnotation
from dialoguekit.utils.dialogue_reader import json_to_dialogues
from usersimcrs.core.information_need import InformationNeed
from usersimcrs.information_need_management.information_need import (
InformationNeed,
)
from usersimcrs.information_need_management.information_need_trackers import (
HeuristicInformationNeedTracker,
)
from usersimcrs.core.simulation_domain import SimulationDomain
from usersimcrs.simulator.agenda_based.interaction_model import (
InteractionModel,
Expand All @@ -29,7 +34,7 @@ def im_crsv1(
domain,
ANNOTATED_CONVERSATIONS,
)
im.initialize_agenda(information_need)
im.initialize_agenda(HeuristicInformationNeedTracker(information_need))
return im


Expand All @@ -45,7 +50,9 @@ def test_initialize_with_error(domain: SimulationDomain) -> None:
def test_initialize_agenda(
im_crsv1: InteractionModel, information_need: InformationNeed
) -> None:
im_crsv1.initialize_agenda(information_need)
im_crsv1.initialize_agenda(
HeuristicInformationNeedTracker(information_need)
)
assert len(im_crsv1.agenda.stack) == 6
assert im_crsv1.agenda.stack[0].intent == im_crsv1.INTENT_START
assert im_crsv1.agenda.stack[1].intent == im_crsv1.INTENT_DISCLOSE
Expand Down
4 changes: 3 additions & 1 deletion tests/simulator/llm/test_stop_prompt.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@

import pytest

from usersimcrs.core.information_need import InformationNeed
from usersimcrs.information_need_management.information_need import (
InformationNeed,
)
from usersimcrs.simulator.llm.prompt.stop_prompt import (
DEFAULT_STOP_DEFINITION,
StopPrompt,
Expand Down
4 changes: 3 additions & 1 deletion tests/simulator/llm/test_utterance_generation_prompt.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,9 @@

from dialoguekit.core import Utterance
from dialoguekit.participant import DialogueParticipant
from usersimcrs.core.information_need import InformationNeed
from usersimcrs.information_need_management.information_need import (
InformationNeed,
)
from usersimcrs.simulator.llm.prompt.utterance_generation_prompt import (
DEFAULT_TASK_DEFINITION,
UtteranceGenerationPrompt,
Expand Down
2 changes: 0 additions & 2 deletions usersimcrs/core/__init__.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
"""Module level init for the core classes."""

from usersimcrs.core.information_need import InformationNeed
from usersimcrs.core.simulation_domain import SimulationDomain

__all__ = [
"InformationNeed",
"SimulationDomain",
]
115 changes: 0 additions & 115 deletions usersimcrs/core/information_need.py

This file was deleted.

19 changes: 19 additions & 0 deletions usersimcrs/information_need_management/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
"""Information need management."""

from usersimcrs.information_need_management.information_need import (
InformationNeed,
generate_preference_grounded_information_need,
generate_random_information_need,
)
from usersimcrs.information_need_management.information_need_tracker import (
InformationNeedTracker,
SlotUpdate,
)

__all__ = [
"InformationNeed",
"InformationNeedTracker",
"SlotUpdate",
"generate_preference_grounded_information_need",
"generate_random_information_need",
]
Loading
Loading