diff options
| author | sigoden <sigoden@gmail.com> | 2024-11-14 06:03:06 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-11-14 06:03:06 +0800 |
| commit | cfa9217422dfa6cf10bed6e6e3fab0722f58588d (patch) | |
| tree | f004b226caae309c860914e7393e516464eecee8 /src/config/input.rs | |
| parent | ff0ea19b48a18e9a1849bd2a653173a3ed4e4560 (diff) | |
| download | aichat-cfa9217422dfa6cf10bed6e6e3fab0722f58588d.tar.gz | |
feat: save function calls in the session (#994)
Diffstat (limited to 'src/config/input.rs')
| -rw-r--r-- | src/config/input.rs | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/src/config/input.rs b/src/config/input.rs index bc58f32..55a4d45 100644 --- a/src/config/input.rs +++ b/src/config/input.rs @@ -29,7 +29,7 @@ pub struct Input { regenerate: bool, medias: Vec<String>, data_urls: HashMap<String, String>, - tool_call: Option<ToolResults>, + tool_results: Option<ToolResults>, rag_name: Option<String>, role: Role, with_session: bool, @@ -48,7 +48,7 @@ impl Input { regenerate: false, medias: Default::default(), data_urls: Default::default(), - tool_call: None, + tool_results: None, rag_name: None, role, with_session, @@ -104,7 +104,7 @@ impl Input { regenerate: false, medias, data_urls, - tool_call: Default::default(), + tool_results: Default::default(), rag_name: None, role, with_session, @@ -120,6 +120,10 @@ impl Input { self.data_urls.clone() } + pub fn tool_results(&self) -> &Option<ToolResults> { + &self.tool_results + } + pub fn text(&self) -> String { match self.patched_text.clone() { Some(text) => text, @@ -184,11 +188,11 @@ impl Input { } pub fn merge_tool_call(mut self, output: String, tool_results: Vec<ToolResult>) -> Self { - match self.tool_call.as_mut() { + match self.tool_results.as_mut() { Some(exist_tool_results) => { exist_tool_results.extend(tool_results, output); } - None => self.tool_call = Some(ToolResults::new(tool_results, output)), + None => self.tool_results = Some(ToolResults::new(tool_results, output)), } self } @@ -228,7 +232,7 @@ impl Input { } else { self.role().build_messages(self) }; - if let Some(tool_results) = &self.tool_call { + if let Some(tool_results) = &self.tool_results { messages.push(Message::new( MessageRole::Assistant, MessageContent::ToolResults(tool_results.clone()), |
