append instead of replace system msg
This commit is contained in:
@@ -103,7 +103,7 @@ use serde::{Deserialize, Serialize};
|
|||||||
use std::time::Duration;
|
use std::time::Duration;
|
||||||
use tokio::sync::mpsc;
|
use tokio::sync::mpsc;
|
||||||
use tokio_stream::wrappers::ReceiverStream;
|
use tokio_stream::wrappers::ReceiverStream;
|
||||||
use tracing::{debug, error, warn};
|
use tracing::{debug, error};
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
CompletionChunk, CompletionRequest, CompletionResponse, CompletionStream, LLMProvider, Message,
|
CompletionChunk, CompletionRequest, CompletionResponse, CompletionStream, LLMProvider, Message,
|
||||||
@@ -223,10 +223,12 @@ impl AnthropicProvider {
|
|||||||
for message in messages {
|
for message in messages {
|
||||||
match message.role {
|
match message.role {
|
||||||
MessageRole::System => {
|
MessageRole::System => {
|
||||||
if system_message.is_some() {
|
if let Some(existing) = system_message {
|
||||||
warn!("Multiple system messages found, using the last one");
|
// 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 => {
|
MessageRole::User => {
|
||||||
anthropic_messages.push(AnthropicMessage {
|
anthropic_messages.push(AnthropicMessage {
|
||||||
|
|||||||
Reference in New Issue
Block a user