Spaces:
Sleeping
Sleeping
BolyosCsaba
commited on
Commit
Β·
d85305e
1
Parent(s):
aaa12a0
communication
Browse files- src/floor_manager.py +23 -5
src/floor_manager.py
CHANGED
|
@@ -191,7 +191,8 @@ class FloorManager:
|
|
| 191 |
# Try to parse and log agent's response
|
| 192 |
try:
|
| 193 |
response_data = response.json()
|
| 194 |
-
logger.info(f"π₯ Response from {speaker_uri}
|
|
|
|
| 195 |
|
| 196 |
# Check if agent sent any events back
|
| 197 |
if "openFloor" in response_data:
|
|
@@ -200,7 +201,13 @@ class FloorManager:
|
|
| 200 |
logger.info(f"π Agent {speaker_uri} sent {len(events)} event(s) in response")
|
| 201 |
for event in events:
|
| 202 |
event_type = event.get("eventType")
|
|
|
|
|
|
|
|
|
|
|
|
|
| 203 |
logger.info(f" - Event type: {event_type}")
|
|
|
|
|
|
|
| 204 |
|
| 205 |
# Extract utterance content if present
|
| 206 |
if event_type == "utterance":
|
|
@@ -214,18 +221,29 @@ class FloorManager:
|
|
| 214 |
text_content = " ".join([
|
| 215 |
t.get("value", t.get("token", "")) for t in tokens
|
| 216 |
])
|
| 217 |
-
logger.info(f" π¬ Agent says: {text_content}")
|
| 218 |
|
| 219 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 220 |
if not hasattr(self, '_agent_responses'):
|
| 221 |
self._agent_responses = {}
|
| 222 |
if session_id not in self._agent_responses:
|
| 223 |
self._agent_responses[session_id] = []
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 224 |
self._agent_responses[session_id].append({
|
| 225 |
"agent_uri": speaker_uri,
|
| 226 |
-
"agent_name":
|
| 227 |
"message": text_content,
|
| 228 |
-
"timestamp": datetime.now()
|
|
|
|
|
|
|
| 229 |
})
|
| 230 |
except ValueError:
|
| 231 |
logger.debug(f"Response from {speaker_uri} is not JSON: {response.text[:200]}")
|
|
|
|
| 191 |
# Try to parse and log agent's response
|
| 192 |
try:
|
| 193 |
response_data = response.json()
|
| 194 |
+
logger.info(f"π₯ Response from {speaker_uri}")
|
| 195 |
+
logger.debug(f"π₯ Full response: {response_data}")
|
| 196 |
|
| 197 |
# Check if agent sent any events back
|
| 198 |
if "openFloor" in response_data:
|
|
|
|
| 201 |
logger.info(f"π Agent {speaker_uri} sent {len(events)} event(s) in response")
|
| 202 |
for event in events:
|
| 203 |
event_type = event.get("eventType")
|
| 204 |
+
to_info = event.get("to", {})
|
| 205 |
+
is_private = to_info.get("private", False)
|
| 206 |
+
target_uri = to_info.get("speakerUri")
|
| 207 |
+
|
| 208 |
logger.info(f" - Event type: {event_type}")
|
| 209 |
+
if is_private and target_uri:
|
| 210 |
+
logger.info(f" - Private message to: {target_uri}")
|
| 211 |
|
| 212 |
# Extract utterance content if present
|
| 213 |
if event_type == "utterance":
|
|
|
|
| 221 |
text_content = " ".join([
|
| 222 |
t.get("value", t.get("token", "")) for t in tokens
|
| 223 |
])
|
|
|
|
| 224 |
|
| 225 |
+
if is_private:
|
| 226 |
+
logger.info(f" π Private message: {text_content}")
|
| 227 |
+
else:
|
| 228 |
+
logger.info(f" π¬ Agent says: {text_content}")
|
| 229 |
+
|
| 230 |
+
# Store response for retrieval (include private messages too)
|
| 231 |
if not hasattr(self, '_agent_responses'):
|
| 232 |
self._agent_responses = {}
|
| 233 |
if session_id not in self._agent_responses:
|
| 234 |
self._agent_responses[session_id] = []
|
| 235 |
+
|
| 236 |
+
agent_name = agent_info.manifest.get("conversationalName", speaker_uri) if agent_info.manifest else speaker_uri
|
| 237 |
+
if is_private and target_uri:
|
| 238 |
+
agent_name = f"{agent_name} (private to {target_uri})"
|
| 239 |
+
|
| 240 |
self._agent_responses[session_id].append({
|
| 241 |
"agent_uri": speaker_uri,
|
| 242 |
+
"agent_name": agent_name,
|
| 243 |
"message": text_content,
|
| 244 |
+
"timestamp": datetime.now(),
|
| 245 |
+
"is_private": is_private,
|
| 246 |
+
"target_uri": target_uri
|
| 247 |
})
|
| 248 |
except ValueError:
|
| 249 |
logger.debug(f"Response from {speaker_uri} is not JSON: {response.text[:200]}")
|