Переглянути джерело

fix(llm): bedrock throw errors if content contains empty string (#4935)

Xingyao Wang 1 рік тому
батько
коміт
910b283ac2
2 змінених файлів з 10 додано та 1 видалено
  1. 7 0
      openhands/core/message.py
  2. 3 1
      openhands/llm/debug_mixin.py

+ 7 - 0
openhands/core/message.py

@@ -98,6 +98,13 @@ class Message(BaseModel):
                 content.extend(d)
 
         ret: dict = {'content': content, 'role': self.role}
+        # pop content if it's empty
+        if not content or (
+            len(content) == 1
+            and content[0]['type'] == 'text'
+            and content[0]['text'] == ''
+        ):
+            ret.pop('content')
 
         if role_tool_with_prompt_caching:
             ret['cache_control'] = {'type': 'ephemeral'}

+ 3 - 1
openhands/llm/debug_mixin.py

@@ -14,7 +14,9 @@ class DebugMixin:
 
         messages = messages if isinstance(messages, list) else [messages]
         debug_message = MESSAGE_SEPARATOR.join(
-            self._format_message_content(msg) for msg in messages if msg['content']
+            self._format_message_content(msg)
+            for msg in messages
+            if msg.get('content', None)
         )
 
         if debug_message: