mirror of
https://github.com/katanemo/plano.git
synced 2026-05-15 11:02:39 +02:00
system prompt (keep system prompt at the top) (#139)
* add system prompt * fix
This commit is contained in:
parent
422efd3887
commit
43dc2a0a73
1 changed files with 23 additions and 21 deletions
|
|
@ -622,7 +622,7 @@ impl StreamContext {
|
||||||
fn function_call_response_handler(
|
fn function_call_response_handler(
|
||||||
&mut self,
|
&mut self,
|
||||||
body: Vec<u8>,
|
body: Vec<u8>,
|
||||||
callout_context: StreamCallContext,
|
mut callout_context: StreamCallContext,
|
||||||
) {
|
) {
|
||||||
if let Some(http_status) = self.get_http_call_response_header(":status") {
|
if let Some(http_status) = self.get_http_call_response_header(":status") {
|
||||||
if http_status != StatusCode::OK.as_str() {
|
if http_status != StatusCode::OK.as_str() {
|
||||||
|
|
@ -651,7 +651,28 @@ impl StreamContext {
|
||||||
.unwrap()
|
.unwrap()
|
||||||
.clone();
|
.clone();
|
||||||
|
|
||||||
let mut messages: Vec<Message> = callout_context.request_body.messages.clone();
|
let mut messages: Vec<Message> = Vec::new();
|
||||||
|
|
||||||
|
// add system prompt
|
||||||
|
let system_prompt = match prompt_target.system_prompt.as_ref() {
|
||||||
|
None => match self.system_prompt.as_ref() {
|
||||||
|
None => None,
|
||||||
|
Some(system_prompt) => Some(system_prompt.clone()),
|
||||||
|
},
|
||||||
|
Some(system_prompt) => Some(system_prompt.clone()),
|
||||||
|
};
|
||||||
|
if system_prompt.is_some() {
|
||||||
|
let system_prompt_message = Message {
|
||||||
|
role: SYSTEM_ROLE.to_string(),
|
||||||
|
content: system_prompt,
|
||||||
|
model: None,
|
||||||
|
tool_calls: None,
|
||||||
|
};
|
||||||
|
messages.push(system_prompt_message);
|
||||||
|
}
|
||||||
|
|
||||||
|
messages.append(callout_context.request_body.messages.as_mut());
|
||||||
|
|
||||||
let user_message = match messages.pop() {
|
let user_message = match messages.pop() {
|
||||||
Some(user_message) => user_message,
|
Some(user_message) => user_message,
|
||||||
None => {
|
None => {
|
||||||
|
|
@ -664,25 +685,6 @@ impl StreamContext {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// add system prompt
|
|
||||||
let system_prompt = match prompt_target.system_prompt.as_ref() {
|
|
||||||
None => match self.system_prompt.as_ref() {
|
|
||||||
None => None,
|
|
||||||
Some(system_prompt) => Some(system_prompt.clone()),
|
|
||||||
},
|
|
||||||
Some(system_prompt) => Some(system_prompt.clone()),
|
|
||||||
};
|
|
||||||
|
|
||||||
if system_prompt.is_some() {
|
|
||||||
let system_prompt_message = Message {
|
|
||||||
role: SYSTEM_ROLE.to_string(),
|
|
||||||
content: system_prompt,
|
|
||||||
model: None,
|
|
||||||
tool_calls: None,
|
|
||||||
};
|
|
||||||
messages.push(system_prompt_message);
|
|
||||||
}
|
|
||||||
|
|
||||||
let final_prompt = format!(
|
let final_prompt = format!(
|
||||||
"{}\nhere is context: {}",
|
"{}\nhere is context: {}",
|
||||||
user_message.content.unwrap(),
|
user_message.content.unwrap(),
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue