Skip to content

Commit 38e5b16

Browse files
authored
Add support for user role system prompts o1-preview-2024-09-12 (#754)
1 parent 5894c38 commit 38e5b16

File tree

2 files changed

+4
-2
lines changed

2 files changed

+4
-2
lines changed

pydantic_ai_slim/pydantic_ai/models/openai.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@
5151
allows this model to be used more easily with other model types (ie, Ollama)
5252
"""
5353

54-
OpenAISystemPromptRole = Literal['system', 'developer']
54+
OpenAISystemPromptRole = Literal['system', 'developer', 'user']
5555

5656

5757
@dataclass(init=False)
@@ -261,6 +261,8 @@ def _map_user_message(self, message: ModelRequest) -> Iterable[chat.ChatCompleti
261261
if isinstance(part, SystemPromptPart):
262262
if self.system_prompt_role == 'developer':
263263
yield chat.ChatCompletionDeveloperMessageParam(role='developer', content=part.content)
264+
elif self.system_prompt_role == 'user':
265+
yield chat.ChatCompletionUserMessageParam(role='user', content=part.content)
264266
else:
265267
yield chat.ChatCompletionSystemMessageParam(role='system', content=part.content)
266268
elif isinstance(part, UserPromptPart):

tests/models/test_openai.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -515,7 +515,7 @@ async def test_no_delta(allow_model_requests: None):
515515
assert result.usage() == snapshot(Usage(requests=1, request_tokens=6, response_tokens=3, total_tokens=9))
516516

517517

518-
@pytest.mark.parametrize('system_prompt_role', ['system', 'developer', None])
518+
@pytest.mark.parametrize('system_prompt_role', ['system', 'developer', 'user', None])
519519
async def test_system_prompt_role(
520520
allow_model_requests: None, system_prompt_role: OpenAISystemPromptRole | None
521521
) -> None:

0 commit comments

Comments
 (0)