From ff0ea19b48a18e9a1849bd2a653173a3ed4e4560 Mon Sep 17 00:00:00 2001 From: sigoden Date: Wed, 13 Nov 2024 18:24:43 +0800 Subject: fix: invalid request on qianwen multi tool-calls (#993) --- src/function.rs | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) (limited to 'src/function.rs') diff --git a/src/function.rs b/src/function.rs index 517b9eb..f77467b 100644 --- a/src/function.rs +++ b/src/function.rs @@ -13,8 +13,6 @@ use std::{ path::{Path, PathBuf}, }; -pub type ToolResults = (Vec, String); - #[cfg(windows)] const PATH_SEP: &str = ";"; #[cfg(not(windows))] @@ -268,6 +266,29 @@ impl ToolCall { } } +#[derive(Debug, Clone, Deserialize, Serialize)] +pub struct ToolResults { + pub tool_results: Vec, + pub text: String, + pub sequence: bool, +} + +impl ToolResults { + pub fn new(tool_results: Vec, text: String) -> Self { + Self { + tool_results, + text, + sequence: false, + } + } + + pub fn extend(&mut self, tool_results: Vec, _text: String) { + self.tool_results.extend(tool_results); + self.text.clear(); + self.sequence = true; + } +} + #[cfg(windows)] fn polyfill_cmd_name>(cmd_name: &str, bin_dir: &[T]) -> String { let cmd_name = cmd_name.to_string(); -- cgit v1.2.3