Merge pull request #678 from AAEE86/fix

fix: map Developer role to "system" in OpenAI Chat Completions output
This commit is contained in:
fawney19
2026-07-16 23:29:55 +08:00
committed by GitHub
2 changed files with 3 additions and 3 deletions
@@ -144,7 +144,7 @@ pub fn to_raw(canonical: &CanonicalRequest) -> Value {
let mut messages = Vec::new();
for instruction in &canonical.instructions {
let role = match instruction.role {
CanonicalRole::Developer => "developer",
CanonicalRole::Developer => "system",
_ => "system",
};
if !instruction.text.trim().is_empty() {
@@ -3194,7 +3194,7 @@ fn canonical_message_blocks_to_openai_chat(
match message.role {
CanonicalRole::Assistant => "assistant",
CanonicalRole::System => "system",
CanonicalRole::Developer => "developer",
CanonicalRole::Developer => "system",
CanonicalRole::Tool => "tool",
CanonicalRole::Unknown | CanonicalRole::User => "user",
}
@@ -7085,7 +7085,7 @@ mod tests {
let rebuilt = canonical_to_openai_chat_request(&canonical).expect("openai chat request");
assert_eq!(rebuilt["model"], "gpt-5");
assert_eq!(rebuilt["messages"][0]["role"], "system");
assert_eq!(rebuilt["messages"][1]["role"], "developer");
assert_eq!(rebuilt["messages"][1]["role"], "system");
assert_eq!(
rebuilt["messages"][2]["content"][1]["image_url"]["url"],
"data:image/png;base64,iVBORw0KGgo="