-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathagentevolver_task_core.rs
More file actions
29 lines (25 loc) · 909 Bytes
/
agentevolver_task_core.rs
File metadata and controls
29 lines (25 loc) · 909 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
use serde::{Deserialize, Serialize};
use crate::adaptive_framework::{PromptTemplateAsset, PromptTemplateBundle};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct AgentEvolverTaskPack {
pub system_prompt: Vec<String>,
pub routing_prompt: Vec<String>,
pub tool_prompt: Vec<String>,
pub forge_prompt: Vec<String>,
}
impl AgentEvolverTaskPack {
pub fn from_bundle(bundle: &PromptTemplateBundle) -> Self {
Self {
system_prompt: flatten_assets(&bundle.system_templates),
routing_prompt: flatten_assets(&bundle.routing_templates),
tool_prompt: flatten_assets(&bundle.tool_templates),
forge_prompt: flatten_assets(&bundle.forge_templates),
}
}
}
fn flatten_assets(assets: &[PromptTemplateAsset]) -> Vec<String> {
assets
.iter()
.flat_map(|asset| asset.instructions.clone())
.collect()
}