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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
use ChatMessage;
// pub struct ContextBuilder {
// pub system_prompt: String,
// pub skill_loader: Option<SkillLoader>,
// }
// impl ContextBuilder {
// pub fn new<S, P>(system_prompt: S, skill_path: Option<P>) -> AgentResult<Self>
// where
// S: Into<String>,
// P: Into<PathBuf>
// {
// let mut system_prompt: String = system_prompt.into();
// let skill_loader = match skill_path {
// Some(path) => {
// let skill_loader = SkillLoader::load(path).context("load skill")?;
// system_prompt = format!("{}\n\n{}", system_prompt, skill_loader.get_descriptions());
// Some(skill_loader)
// }
// None => None,
// };
// Ok(Self { system_prompt, skill_loader })
// }
// pub fn build(&self, query: &str, memorys: Vec<ChatMessage>) -> Vec<ChatMessage> {
// let mut messages = vec![ChatMessage::system(self.system_prompt.clone())];
// messages.extend(memorys);
// messages.push(ChatMessage::user(query));
// messages
// }
// }