Add support for 'developer' role in chat messages (#209)
This commit is contained in:
@@ -24,6 +24,7 @@ from api.schema import (
|
|||||||
Choice,
|
Choice,
|
||||||
ChoiceDelta,
|
ChoiceDelta,
|
||||||
CompletionTokensDetails,
|
CompletionTokensDetails,
|
||||||
|
DeveloperMessage,
|
||||||
Embedding,
|
Embedding,
|
||||||
EmbeddingsRequest,
|
EmbeddingsRequest,
|
||||||
EmbeddingsResponse,
|
EmbeddingsResponse,
|
||||||
@@ -455,7 +456,7 @@ class BedrockModel(BaseChatModel):
|
|||||||
"""
|
"""
|
||||||
system_prompts = []
|
system_prompts = []
|
||||||
for message in chat_request.messages:
|
for message in chat_request.messages:
|
||||||
if message.role != "system":
|
if message.role not in ("system", "developer"):
|
||||||
continue
|
continue
|
||||||
if not isinstance(message.content, str):
|
if not isinstance(message.content, str):
|
||||||
raise TypeError(f"System message content must be a string, got {type(message.content).__name__}")
|
raise TypeError(f"System message content must be a string, got {type(message.content).__name__}")
|
||||||
|
|||||||
+7
-1
@@ -75,6 +75,12 @@ class ToolMessage(BaseModel):
|
|||||||
tool_call_id: str
|
tool_call_id: str
|
||||||
|
|
||||||
|
|
||||||
|
class DeveloperMessage(BaseModel):
|
||||||
|
name: str | None = None
|
||||||
|
role: Literal["developer"] = "developer"
|
||||||
|
content: str
|
||||||
|
|
||||||
|
|
||||||
class Function(BaseModel):
|
class Function(BaseModel):
|
||||||
name: str
|
name: str
|
||||||
description: str | None = None
|
description: str | None = None
|
||||||
@@ -91,7 +97,7 @@ class StreamOptions(BaseModel):
|
|||||||
|
|
||||||
|
|
||||||
class ChatRequest(BaseModel):
|
class ChatRequest(BaseModel):
|
||||||
messages: list[SystemMessage | UserMessage | AssistantMessage | ToolMessage]
|
messages: list[SystemMessage | UserMessage | AssistantMessage | ToolMessage | DeveloperMessage]
|
||||||
model: str = DEFAULT_MODEL
|
model: str = DEFAULT_MODEL
|
||||||
frequency_penalty: float | None = Field(default=0.0, le=2.0, ge=-2.0) # Not used
|
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
|
presence_penalty: float | None = Field(default=0.0, le=2.0, ge=-2.0) # Not used
|
||||||
|
|||||||
Reference in New Issue
Block a user