Feat: Implement belief collector

[
    - Currently implements belief collection from text-based mock agent.
    - The beliefs communicated by this agent look like this:

        {
            "type": "belief_extraction_text",
            "beliefs": [
                {"user_said": [["hello"],["Can you help me?"],["stop talking to me"],["No"],["Pepper do a dance"]]}
            ]
        }
    * have yet to add tests (but we want to merge into Dev. asap)
]

[ref]: N25B-206
This commit is contained in:
Pim Hutting
2025-10-28 13:07:49 +01:00
parent 9b36982bf2
commit 1f34b14dfa
7 changed files with 185 additions and 5 deletions

View File

@@ -12,11 +12,17 @@ from spade.behaviour import OneShotBehaviour
import zmq
# Internal imports
from control_backend.agents.bdi.bdi_core import BDICoreAgent
from control_backend.api.v1.router import api_router
from control_backend.core.config import AgentSettings, settings
from control_backend.core.zmq_context import context
# Agents
from control_backend.agents.bdi.bdi_core import BDICoreAgent
from control_backend.agents.belief_collector.belief_collector import BeliefCollectorAgent
from control_backend.agents.mock_agents.emo_text_mock import EmoTextAgent
from control_backend.agents.mock_agents.belief_text_mock import BeliefTextAgent
logger = logging.getLogger(__name__)
logging.basicConfig(level=logging.DEBUG)
@@ -32,11 +38,29 @@ async def lifespan(app: FastAPI):
logger.info("Internal publishing socket bound to %s", internal_comm_socket)
# Initiate agents
bdi_core = BDICoreAgent(settings.agent_settings.bdi_core_agent_name + '@' + settings.agent_settings.host, settings.agent_settings.bdi_core_agent_name, "src/control_backend/agents/bdi/rules.asl")
host = settings.agent_settings.host
bdi_core = BDICoreAgent(
settings.agent_settings.bdi_core_agent_name + '@' + host,
settings.agent_settings.bdi_core_agent_name,
"src/control_backend/agents/bdi/rules.asl"
)
belief_collector = BeliefCollectorAgent(
settings.agent_settings.belief_collector_agent_name + '@' + host,
settings.agent_settings.belief_collector_agent_name
)
belief_text_mock = BeliefTextAgent(
settings.agent_settings.belief_text_agent_mock_name + '@' + host,
settings.agent_settings.belief_text_agent_mock_name
)
await bdi_core.start()
await belief_collector.start()
await belief_text_mock.start()
yield
logger.info("%s shutting down.", app.title)
# if __name__ == "__main__":
@@ -53,4 +77,4 @@ app.include_router(api_router, prefix="") # TODO: make prefix /api/v1
@app.get("/")
async def root():
return {"status": "ok"}
return {"status": "ok"}