implemented basic belief-from-text extractor including demo version #13

Merged
s.o.h.luijkx merged 7 commits from feat/belief-from-text into dev 2025-10-29 14:31:37 +00:00
3 changed files with 21 additions and 7 deletions
Showing only changes of commit a43e5111db - Show all commits

View File

@@ -43,7 +43,7 @@ class BeliefFromText(CyclicBehaviour):
# TODO: Change to Transcriber agent name once implemented
case settings.agent_settings.test_agent_name:
self.logger.info("Received text from transcriber.")
await self._process_transcription(msg.body)
await self._process_transcription_demo(msg.body)
case _:
self.logger.info("Received message from other agent.")
pass
@@ -73,4 +73,19 @@ class BeliefFromText(CyclicBehaviour):
self.logger.info("Sent beliefs to BDI.")
except:
#loading failed so the response is in wrong format, throw warning (let LLM respond to ask again?)
self.logger.warning("Received LLM response in incorrect format.")
self.logger.warning("Received LLM response in incorrect format.")
async def _process_transcription_demo(self, txt: str):
"""
Demo version to process the transcription input to beliefs. For the demo only the belief 'user_said' is relevant so
this function simply makes a dict with key: "user_said", value: txt and passes this to the Belief Collector agent.
"""
belief = {"user_said": [[txt]]}
payload = json.dumps(belief)
# TODO: Change to belief collector
belief_msg = Message(to=settings.agent_settings.bdi_core_agent_name + '@' + settings.agent_settings.host, body=payload)
belief_msg.thread = "beliefs"
await self.send(belief_msg)
self.logger.info("Sent beliefs to Belief Collector.")

View File

@@ -2,8 +2,7 @@ import spade
from spade.agent import Agent
from spade.behaviour import OneShotBehaviour
from spade.message import Message
from spade.template import Template
from control_backend.core.config import AgentSettings, settings
from control_backend.core.config import settings
class SenderAgent(Agent):
class InformBehav(OneShotBehaviour):

View File

@@ -34,11 +34,11 @@ 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, "pohpu7-huqsyH-qutduk", "src/control_backend/agents/bdi/rules.asl")
bdi_core = BDICoreAgent(settings.agent_settings.bdi_core_agent_name + '@' + settings.agent_settings.host, "placeholder", "src/control_backend/agents/bdi/rules.asl")
await bdi_core.start()
text_belief_extractor = TBeliefExtractor(settings.agent_settings.text_belief_extractor_agent_name + '@' + settings.agent_settings.host, "pohpu7-huqsyH-qutduk")
text_belief_extractor = TBeliefExtractor(settings.agent_settings.belief_collector_agent_name + '@' + settings.agent_settings.host, "placehodler")
await text_belief_extractor.start()
test_agent = SenderAgent(settings.agent_settings.test_agent_name + '@' + settings.agent_settings.host, "pohpu7-huqsyH-qutduk")
test_agent = SenderAgent(settings.agent_settings.test_agent_name + '@' + settings.agent_settings.host, "placeholder")
await test_agent.start()
yield