25 lines
840 B
Rust
25 lines
840 B
Rust
pub fn filter_extensions_from_system_prompt(system: &str) -> String {
|
|
let Some(extensions_start) = system.find("# Extensions") else {
|
|
return system.to_string();
|
|
};
|
|
|
|
let Some(after_extensions) = system.get(extensions_start + 1..) else {
|
|
return system.to_string();
|
|
};
|
|
|
|
if let Some(next_section_pos) = after_extensions.find("\n# ") {
|
|
let Some(before) = system.get(..extensions_start) else {
|
|
return system.to_string();
|
|
};
|
|
let Some(after) = system.get(extensions_start + next_section_pos + 1..) else {
|
|
return system.to_string();
|
|
};
|
|
format!("{}{}", before.trim_end(), after)
|
|
} else {
|
|
system
|
|
.get(..extensions_start)
|
|
.map(|s| s.trim_end().to_string())
|
|
.unwrap_or_else(|| system.to_string())
|
|
}
|
|
}
|