Merge pull request #93 from mjunaidca/fix/chat-history-assistant-role
Fix: Add missing support for 'assistant' Role in Converter.items_to_messages used by Runner.run_sync
This commit is contained in:
commit
96913b847f
2 changed files with 42 additions and 0 deletions
|
|
@ -808,6 +808,13 @@ class _Converter:
|
|||
"content": cls.extract_text_content(content),
|
||||
}
|
||||
result.append(msg_developer)
|
||||
elif role == "assistant":
|
||||
flush_assistant_message()
|
||||
msg_assistant: ChatCompletionAssistantMessageParam = {
|
||||
"role": "assistant",
|
||||
"content": cls.extract_text_content(content),
|
||||
}
|
||||
result.append(msg_assistant)
|
||||
else:
|
||||
raise UserError(f"Unexpected role in easy_input_message: {role}")
|
||||
|
||||
|
|
|
|||
|
|
@ -393,3 +393,38 @@ def test_unknown_object_errors():
|
|||
with pytest.raises(UserError, match="Unhandled item type or structure"):
|
||||
# Purposely ignore the type error
|
||||
_Converter.items_to_messages([TestObject()]) # type: ignore
|
||||
|
||||
|
||||
def test_assistant_messages_in_history():
|
||||
"""
|
||||
Test that assistant messages are added to the history.
|
||||
"""
|
||||
messages = _Converter.items_to_messages(
|
||||
[
|
||||
{
|
||||
"role": "user",
|
||||
"content": "Hello",
|
||||
},
|
||||
{
|
||||
"role": "assistant",
|
||||
"content": "Hello?",
|
||||
},
|
||||
{
|
||||
"role": "user",
|
||||
"content": "What was my Name?",
|
||||
},
|
||||
]
|
||||
)
|
||||
|
||||
assert messages == [
|
||||
{"role": "user", "content": "Hello"},
|
||||
{"role": "assistant", "content": "Hello?"},
|
||||
{"role": "user", "content": "What was my Name?"},
|
||||
]
|
||||
assert len(messages) == 3
|
||||
assert messages[0]["role"] == "user"
|
||||
assert messages[0]["content"] == "Hello"
|
||||
assert messages[1]["role"] == "assistant"
|
||||
assert messages[1]["content"] == "Hello?"
|
||||
assert messages[2]["role"] == "user"
|
||||
assert messages[2]["content"] == "What was my Name?"
|
||||
|
|
|
|||
Loading…
Reference in a new issue