[SMG][DS32][fix] support dsv32, add role developer (#14307)
This commit is contained in:
@@ -56,6 +56,14 @@ pub enum ChatMessage {
|
||||
},
|
||||
#[serde(rename = "function")]
|
||||
Function { content: String, name: String },
|
||||
#[serde(rename = "developer")]
|
||||
Developer {
|
||||
content: MessageContent,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
tools: Option<Vec<Tool>>,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
name: Option<String>,
|
||||
},
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Deserialize, Serialize, PartialEq)]
|
||||
@@ -638,7 +646,10 @@ impl GenerationRequest for ChatCompletionRequest {
|
||||
|
||||
for msg in &self.messages {
|
||||
match msg {
|
||||
ChatMessage::System { content, .. } | ChatMessage::User { content, .. } => {
|
||||
ChatMessage::System { content, .. }
|
||||
| ChatMessage::User { content, .. }
|
||||
| ChatMessage::Tool { content, .. }
|
||||
| ChatMessage::Developer { content, .. } => {
|
||||
if has_content && content.has_text() {
|
||||
buffer.push(' ');
|
||||
}
|
||||
@@ -671,14 +682,6 @@ impl GenerationRequest for ChatCompletionRequest {
|
||||
}
|
||||
}
|
||||
}
|
||||
ChatMessage::Tool { content, .. } => {
|
||||
if has_content && content.has_text() {
|
||||
buffer.push(' ');
|
||||
}
|
||||
if content.append_text_to(&mut buffer) {
|
||||
has_content = true;
|
||||
}
|
||||
}
|
||||
ChatMessage::Function { content, .. } => {
|
||||
if !content.is_empty() {
|
||||
if has_content {
|
||||
|
||||
@@ -711,6 +711,26 @@ impl HarmonyBuilder {
|
||||
};
|
||||
harmony_messages.push(harmony_msg);
|
||||
}
|
||||
ChatMessage::Developer {
|
||||
content,
|
||||
name,
|
||||
tools: _,
|
||||
} => {
|
||||
// Developer messages stay as-is
|
||||
let harmony_msg = HarmonyMessage {
|
||||
author: Author {
|
||||
role: Role::Developer,
|
||||
name: name.clone(),
|
||||
},
|
||||
recipient: None,
|
||||
content: vec![Content::Text(TextContent {
|
||||
text: content.to_simple_string(),
|
||||
})],
|
||||
channel: None,
|
||||
content_type: None,
|
||||
};
|
||||
harmony_messages.push(harmony_msg);
|
||||
}
|
||||
|
||||
ChatMessage::User { content, name } => {
|
||||
// Extract text from user content
|
||||
|
||||
@@ -1132,6 +1132,10 @@ impl RouterTrait for PDRouter {
|
||||
MessageContent::Text(text) => Some(text.clone()),
|
||||
MessageContent::Parts(_) => None,
|
||||
},
|
||||
ChatMessage::Developer { content, .. } => match content {
|
||||
MessageContent::Text(text) => Some(text.clone()),
|
||||
MessageContent::Parts(_) => None,
|
||||
},
|
||||
ChatMessage::System { content, .. } => Some(content.to_simple_string()),
|
||||
_ => None,
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user