Add support for 'developer' role in chat messages (#209)

This commit is contained in:
Angélica de Oliveira
2025-12-09 00:26:10 -03:00
committed by GitHub
parent b41633b826
commit 1a7f55b89b
2 changed files with 9 additions and 2 deletions

View File

@@ -24,6 +24,7 @@ from api.schema import (
Choice,
ChoiceDelta,
CompletionTokensDetails,
DeveloperMessage,
Embedding,
EmbeddingsRequest,
EmbeddingsResponse,
@@ -455,7 +456,7 @@ class BedrockModel(BaseChatModel):
"""
system_prompts = []
for message in chat_request.messages:
if message.role != "system":
if message.role not in ("system", "developer"):
continue
if not isinstance(message.content, str):
raise TypeError(f"System message content must be a string, got {type(message.content).__name__}")

View File

@@ -75,6 +75,12 @@ class ToolMessage(BaseModel):
tool_call_id: str
class DeveloperMessage(BaseModel):
name: str | None = None
role: Literal["developer"] = "developer"
content: str
class Function(BaseModel):
name: str
description: str | None = None
@@ -91,7 +97,7 @@ class StreamOptions(BaseModel):
class ChatRequest(BaseModel):
messages: list[SystemMessage | UserMessage | AssistantMessage | ToolMessage]
messages: list[SystemMessage | UserMessage | AssistantMessage | ToolMessage | DeveloperMessage]
model: str = DEFAULT_MODEL
frequency_penalty: float | None = Field(default=0.0, le=2.0, ge=-2.0) # Not used
presence_penalty: float | None = Field(default=0.0, le=2.0, ge=-2.0) # Not used