Skip to content

Commit 2f0a493

Browse files
committed
feature: set n messages to include w/ context window
1 parent b7d63ce commit 2f0a493

2 files changed

Lines changed: 26 additions & 1 deletion

File tree

server/src/data/models.rs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3324,7 +3324,7 @@ impl DatasetConfiguration {
33243324
query_parameter_description: Some("The search query to find relevant information".to_string()),
33253325
price_filter_description: Some("The price filter to use for the search".to_string()),
33263326
max_price_option_description: Some("The maximum price to filter by".to_string()),
3327-
min_price_option_description: Some("The minimum price to filter by".to_string()),
3327+
min_price_option_description: Some("The minimum price to filter by".to_string()),
33283328
}),
33293329
}))
33303330
.as_object()
@@ -4618,6 +4618,7 @@ impl ApiKeyRequestParams {
46184618
metadata: payload.metadata,
46194619
use_agentic_search: payload.use_agentic_search,
46204620
only_include_docs_used: payload.only_include_docs_used,
4621+
number_of_messages_to_include: payload.number_of_messages_to_include,
46214622
}
46224623
}
46234624

@@ -9504,6 +9505,7 @@ impl<'de> Deserialize<'de> for CreateMessageReqPayload {
95049505
remove_stop_words: Option<bool>,
95059506
typo_options: Option<TypoOptions>,
95069507
pub only_include_docs_used: Option<bool>,
9508+
pub number_of_messages_to_include: Option<u64>,
95079509
}
95089510

95099511
let mut helper = Helper::deserialize(deserializer)?;
@@ -9545,6 +9547,7 @@ impl<'de> Deserialize<'de> for CreateMessageReqPayload {
95459547
typo_options: helper.typo_options,
95469548
use_agentic_search: helper.use_agentic_search,
95479549
only_include_docs_used: helper.only_include_docs_used,
9550+
number_of_messages_to_include: helper.number_of_messages_to_include,
95489551
})
95499552
}
95509553
}
@@ -9580,6 +9583,7 @@ impl<'de> Deserialize<'de> for RegenerateMessageReqPayload {
95809583
pub rag_context: Option<String>,
95819584
pub use_agentic_search: Option<bool>,
95829585
pub only_include_docs_used: Option<bool>,
9586+
pub number_of_messages_to_include: Option<u64>,
95839587
}
95849588

95859589
let mut helper = Helper::deserialize(deserializer)?;
@@ -9618,6 +9622,7 @@ impl<'de> Deserialize<'de> for RegenerateMessageReqPayload {
96189622
rag_context: helper.rag_context,
96199623
use_agentic_search: helper.use_agentic_search,
96209624
only_include_docs_used: helper.only_include_docs_used,
9625+
number_of_messages_to_include: helper.number_of_messages_to_include,
96219626
})
96229627
}
96239628
}
@@ -9657,6 +9662,7 @@ impl<'de> Deserialize<'de> for EditMessageReqPayload {
96579662
pub rag_context: Option<String>,
96589663
pub use_agentic_search: Option<bool>,
96599664
pub only_include_docs_used: Option<bool>,
9665+
pub number_of_messages_to_include: Option<u64>,
96609666
}
96619667

96629668
let mut helper = Helper::deserialize(deserializer)?;
@@ -9699,6 +9705,7 @@ impl<'de> Deserialize<'de> for EditMessageReqPayload {
96999705
rag_context: helper.rag_context,
97009706
use_agentic_search: helper.use_agentic_search,
97019707
only_include_docs_used: helper.only_include_docs_used,
9708+
number_of_messages_to_include: helper.number_of_messages_to_include,
97029709
})
97039710
}
97049711
}

server/src/handlers/message_handler.rs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,8 @@ pub struct CreateMessageReqPayload {
136136
pub rag_context: Option<String>,
137137
/// If true, the search will be conducted using llm tool calling. If not specified, this defaults to false.
138138
pub use_agentic_search: Option<bool>,
139+
/// Number of messages to include in the context window. If not specified, this defaults to 10.
140+
pub number_of_messages_to_include: Option<u64>,
139141
}
140142

141143
/// Create message
@@ -243,6 +245,11 @@ pub async fn create_message(
243245
// remove chunks from the previous messages
244246
previous_messages = previous_messages
245247
.into_iter()
248+
.take(
249+
create_message_data
250+
.number_of_messages_to_include
251+
.unwrap_or(10) as usize,
252+
)
246253
.map(|message| {
247254
let mut message = message;
248255
if message.role == "assistant" {
@@ -442,6 +449,8 @@ pub struct RegenerateMessageReqPayload {
442449
pub rag_context: Option<String>,
443450
/// If true, the search will be conducted using llm tool calling. If not specified, this defaults to false.
444451
pub use_agentic_search: Option<bool>,
452+
/// Number of messages to include in the context window. If not specified, this defaults to 10.
453+
pub number_of_messages_to_include: Option<u64>,
445454
}
446455

447456
#[derive(Serialize, Debug, ToSchema)]
@@ -498,6 +507,8 @@ pub struct EditMessageReqPayload {
498507
pub rag_context: Option<String>,
499508
/// If true, the search will be conducted using llm tool calling. If not specified, this defaults to false.
500509
pub use_agentic_search: Option<bool>,
510+
/// Number of messages to include in the context window. If not specified, this defaults to 10.
511+
pub number_of_messages_to_include: Option<u64>,
501512
}
502513

503514
impl From<EditMessageReqPayload> for CreateMessageReqPayload {
@@ -528,6 +539,7 @@ impl From<EditMessageReqPayload> for CreateMessageReqPayload {
528539
rag_context: data.rag_context,
529540
use_agentic_search: data.use_agentic_search,
530541
only_include_docs_used: data.only_include_docs_used,
542+
number_of_messages_to_include: data.number_of_messages_to_include,
531543
}
532544
}
533545
}
@@ -560,6 +572,7 @@ impl From<RegenerateMessageReqPayload> for CreateMessageReqPayload {
560572
rag_context: data.rag_context,
561573
use_agentic_search: data.use_agentic_search,
562574
only_include_docs_used: data.only_include_docs_used,
575+
number_of_messages_to_include: data.number_of_messages_to_include,
563576
}
564577
}
565578
}
@@ -732,6 +745,11 @@ pub async fn regenerate_message_patch(
732745
// remove citations from the previous messages
733746
previous_messages = previous_messages
734747
.into_iter()
748+
.take(
749+
create_message_data
750+
.number_of_messages_to_include
751+
.unwrap_or(10) as usize,
752+
)
735753
.map(|message| {
736754
let mut message = message;
737755
if message.role == "assistant" {

0 commit comments

Comments
 (0)