fix: correct message_role assignment and iterable check in Agent.communicate

The diff shows two changes in `src/ragent/__init__.py` within the `Agent.communicate` method:
- Replaced `isinstance(message, list)` with `hasattr(message, "__iter__")` to support any iterable type for the messages parameter.
- Fixed a bug where `message_role` was incorrectly assigned to `message["content"]` instead of `message["role"]` when processing dict messages, and moved the assignment before the content extraction to preserve the role value.
This commit is contained in:
retoor 2025-01-20 14:08:32 +00:00
parent 22bdeaa2a1
commit c22d9eee25

View File

@ -200,12 +200,12 @@ class Agent:
def communicate(self, message: str,role:str="user"):
log.debug(f"Sending message: {message} to assistant {self.assistant.id} in thread {self.thread.id}.")
messages = isinstance(message, list) and message or [message]
messages = hasattr(message, "__iter__") and message or [message]
for message in messages:
if isinstance(message, dict):
message_role = message["role"]
message = message["content"]
message_role = message["content"]
else:
message_role = role
self.client.beta.threads.messages.create(