chore: move magic numbers to env and cleanup
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -223,7 +223,7 @@ docs/*
|
|||||||
!docs/conf.py
|
!docs/conf.py
|
||||||
|
|
||||||
# Generated files
|
# Generated files
|
||||||
agentspeak.asl
|
*.asl
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ from control_backend.agents.bdi.agentspeak_ast import (
|
|||||||
StatementType,
|
StatementType,
|
||||||
TriggerType,
|
TriggerType,
|
||||||
)
|
)
|
||||||
|
from control_backend.core.config import settings
|
||||||
from control_backend.schemas.program import (
|
from control_backend.schemas.program import (
|
||||||
BaseGoal,
|
BaseGoal,
|
||||||
BasicNorm,
|
BasicNorm,
|
||||||
@@ -524,6 +525,7 @@ class AgentSpeakGenerator:
|
|||||||
:return: The corresponding AgentSpeak statement.
|
:return: The corresponding AgentSpeak statement.
|
||||||
"""
|
"""
|
||||||
match step:
|
match step:
|
||||||
|
# Note that SpeechAction gets included in the ACHIEVE_GOAL, since it's a goal internally
|
||||||
case Goal() | SpeechAction() | LLMAction() as a:
|
case Goal() | SpeechAction() | LLMAction() as a:
|
||||||
return AstStatement(StatementType.ACHIEVE_GOAL, self._astify(a))
|
return AstStatement(StatementType.ACHIEVE_GOAL, self._astify(a))
|
||||||
case GestureAction() as a:
|
case GestureAction() as a:
|
||||||
@@ -560,7 +562,12 @@ class AgentSpeakGenerator:
|
|||||||
subgoals.append(step)
|
subgoals.append(step)
|
||||||
|
|
||||||
# Arbitrary wait for UI to display nicely
|
# Arbitrary wait for UI to display nicely
|
||||||
body.append(AstStatement(StatementType.DO_ACTION, AstLiteral("wait", [AstNumber(2000)])))
|
body.append(
|
||||||
|
AstStatement(
|
||||||
|
StatementType.DO_ACTION,
|
||||||
|
AstLiteral("wait", [AstNumber(settings.behaviour_settings.trigger_time_to_wait)]),
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
body.append(
|
body.append(
|
||||||
AstStatement(
|
AstStatement(
|
||||||
|
|||||||
@@ -75,7 +75,7 @@ class BDIProgramManager(BaseAgent):
|
|||||||
|
|
||||||
asl_str = asg.generate(program)
|
asl_str = asg.generate(program)
|
||||||
|
|
||||||
file_name = "src/control_backend/agents/bdi/agentspeak.asl"
|
file_name = settings.behaviour_settings.agentspeak_file
|
||||||
|
|
||||||
with open(file_name, "w") as f:
|
with open(file_name, "w") as f:
|
||||||
f.write(asl_str)
|
f.write(asl_str)
|
||||||
|
|||||||
@@ -145,7 +145,7 @@ class RICommunicationAgent(BaseAgent):
|
|||||||
|
|
||||||
# At this point, we have a valid response
|
# At this point, we have a valid response
|
||||||
try:
|
try:
|
||||||
self.logger.debug("Negotiation successful. Handling rn")
|
self.logger.debug("Negotiation successful.")
|
||||||
await self._handle_negotiation_response(received_message)
|
await self._handle_negotiation_response(received_message)
|
||||||
# Let UI know that we're connected
|
# Let UI know that we're connected
|
||||||
topic = b"ping"
|
topic = b"ping"
|
||||||
|
|||||||
@@ -77,6 +77,8 @@ class BehaviourSettings(BaseModel):
|
|||||||
:ivar transcription_words_per_token: Estimated words per token for transcription timing.
|
:ivar transcription_words_per_token: Estimated words per token for transcription timing.
|
||||||
:ivar transcription_token_buffer: Buffer for transcription tokens.
|
:ivar transcription_token_buffer: Buffer for transcription tokens.
|
||||||
:ivar conversation_history_length_limit: The maximum amount of messages to extract beliefs from.
|
:ivar conversation_history_length_limit: The maximum amount of messages to extract beliefs from.
|
||||||
|
:ivar trigger_time_to_wait: Amount of milliseconds to wait before informing the UI about trigger
|
||||||
|
completion.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# ATTENTION: When adding/removing settings, make sure to update the .env.example file
|
# ATTENTION: When adding/removing settings, make sure to update the .env.example file
|
||||||
@@ -100,6 +102,10 @@ class BehaviourSettings(BaseModel):
|
|||||||
# Text belief extractor settings
|
# Text belief extractor settings
|
||||||
conversation_history_length_limit: int = 10
|
conversation_history_length_limit: int = 10
|
||||||
|
|
||||||
|
# AgentSpeak related settings
|
||||||
|
trigger_time_to_wait: int = 2000
|
||||||
|
agentspeak_file: str = "src/control_backend/agents/bdi/agentspeak.asl"
|
||||||
|
|
||||||
|
|
||||||
class LLMSettings(BaseModel):
|
class LLMSettings(BaseModel):
|
||||||
"""
|
"""
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ async def test_create_agentspeak_and_send_to_bdi(mock_settings):
|
|||||||
await manager._create_agentspeak_and_send_to_bdi(program)
|
await manager._create_agentspeak_and_send_to_bdi(program)
|
||||||
|
|
||||||
# Check file writing
|
# Check file writing
|
||||||
mock_file.assert_called_with("src/control_backend/agents/bdi/agentspeak.asl", "w")
|
mock_file.assert_called_with(mock_settings.behaviour_settings.agentspeak_file, "w")
|
||||||
handle = mock_file()
|
handle = mock_file()
|
||||||
handle.write.assert_called()
|
handle.write.assert_called()
|
||||||
|
|
||||||
@@ -67,7 +67,7 @@ async def test_create_agentspeak_and_send_to_bdi(mock_settings):
|
|||||||
msg: InternalMessage = manager.send.await_args[0][0]
|
msg: InternalMessage = manager.send.await_args[0][0]
|
||||||
assert msg.thread == "new_program"
|
assert msg.thread == "new_program"
|
||||||
assert msg.to == mock_settings.agent_settings.bdi_core_name
|
assert msg.to == mock_settings.agent_settings.bdi_core_name
|
||||||
assert msg.body == "src/control_backend/agents/bdi/agentspeak.asl"
|
assert msg.body == mock_settings.behaviour_settings.agentspeak_file
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.asyncio
|
@pytest.mark.asyncio
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ def mock_settings():
|
|||||||
mock.agent_settings.vad_name = "vad_agent"
|
mock.agent_settings.vad_name = "vad_agent"
|
||||||
mock.behaviour_settings.sleep_s = 0.01 # Speed up tests
|
mock.behaviour_settings.sleep_s = 0.01 # Speed up tests
|
||||||
mock.behaviour_settings.comm_setup_max_retries = 1
|
mock.behaviour_settings.comm_setup_max_retries = 1
|
||||||
|
mock.behaviour_settings.agentspeak_file = "src/control_backend/agents/bdi/agentspeak.asl"
|
||||||
yield mock
|
yield mock
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user