append instead of replace system msg

This commit is contained in:
Dhanji R. Prasanna
2025-11-29 16:13:00 +11:00
parent 81fd2ab92f
commit 8928fb92be

View File

@@ -103,7 +103,7 @@ use serde::{Deserialize, Serialize};
use std::time::Duration;
use tokio::sync::mpsc;
use tokio_stream::wrappers::ReceiverStream;
use tracing::{debug, error, warn};
use tracing::{debug, error};
use crate::{
CompletionChunk, CompletionRequest, CompletionResponse, CompletionStream, LLMProvider, Message,
@@ -223,10 +223,12 @@ impl AnthropicProvider {
for message in messages {
match message.role {
MessageRole::System => {
if system_message.is_some() {
warn!("Multiple system messages found, using the last one");
if let Some(existing) = system_message {
// Concatenate system messages instead of replacing
system_message = Some(format!("{}\n\n{}", existing, message.content));
} else {
system_message = Some(message.content.clone());
}
system_message = Some(message.content.clone());
}
MessageRole::User => {
anthropic_messages.push(AnthropicMessage {