[SMG][DS32][fix] support dsv32, add role developer (#14307)
This commit is contained in:
@@ -56,6 +56,14 @@ pub enum ChatMessage {
|
|||||||
},
|
},
|
||||||
#[serde(rename = "function")]
|
#[serde(rename = "function")]
|
||||||
Function { content: String, name: String },
|
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)]
|
#[derive(Debug, Clone, Deserialize, Serialize, PartialEq)]
|
||||||
@@ -638,7 +646,10 @@ impl GenerationRequest for ChatCompletionRequest {
|
|||||||
|
|
||||||
for msg in &self.messages {
|
for msg in &self.messages {
|
||||||
match msg {
|
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() {
|
if has_content && content.has_text() {
|
||||||
buffer.push(' ');
|
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, .. } => {
|
ChatMessage::Function { content, .. } => {
|
||||||
if !content.is_empty() {
|
if !content.is_empty() {
|
||||||
if has_content {
|
if has_content {
|
||||||
|
|||||||
@@ -711,6 +711,26 @@ impl HarmonyBuilder {
|
|||||||
};
|
};
|
||||||
harmony_messages.push(harmony_msg);
|
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 } => {
|
ChatMessage::User { content, name } => {
|
||||||
// Extract text from user content
|
// Extract text from user content
|
||||||
|
|||||||
@@ -1132,6 +1132,10 @@ impl RouterTrait for PDRouter {
|
|||||||
MessageContent::Text(text) => Some(text.clone()),
|
MessageContent::Text(text) => Some(text.clone()),
|
||||||
MessageContent::Parts(_) => None,
|
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()),
|
ChatMessage::System { content, .. } => Some(content.to_simple_string()),
|
||||||
_ => None,
|
_ => None,
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user