diff --git a/crates/assistant2/src/thread.rs b/crates/assistant2/src/thread.rs index e9869f4f226106819065b72199445f2d42bd0619..e742b46fe3578af54387f7fc333b8b3f3b222157 100644 --- a/crates/assistant2/src/thread.rs +++ b/crates/assistant2/src/thread.rs @@ -23,6 +23,8 @@ use crate::thread_store::SavedThread; #[derive(Debug, Clone, Copy)] pub enum RequestKind { Chat, + /// Used when summarizing a thread. + Summarize, } #[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Hash, Clone, Serialize, Deserialize)] @@ -243,7 +245,7 @@ impl Thread { pub fn to_completion_request( &self, - _request_kind: RequestKind, + request_kind: RequestKind, _cx: &App, ) -> LanguageModelRequest { let mut request = LanguageModelRequest { @@ -265,12 +267,18 @@ impl Thread { content: Vec::new(), cache: false, }; - if let Some(tool_results) = self.tool_results_by_message.get(&message.id) { - for tool_result in tool_results { - request_message - .content - .push(MessageContent::ToolResult(tool_result.clone())); + match request_kind { + RequestKind::Chat => { + for tool_result in tool_results { + request_message + .content + .push(MessageContent::ToolResult(tool_result.clone())); + } + } + RequestKind::Summarize => { + // We don't care about tool use during summarization. + } } } @@ -281,10 +289,17 @@ impl Thread { } if let Some(tool_uses) = self.tool_uses_by_message.get(&message.id) { - for tool_use in tool_uses { - request_message - .content - .push(MessageContent::ToolUse(tool_use.clone())); + match request_kind { + RequestKind::Chat => { + for tool_use in tool_uses { + request_message + .content + .push(MessageContent::ToolUse(tool_use.clone())); + } + } + RequestKind::Summarize => { + // We don't care about tool use during summarization. + } } } @@ -451,7 +466,7 @@ impl Thread { return; } - let mut request = self.to_completion_request(RequestKind::Chat, cx); + let mut request = self.to_completion_request(RequestKind::Summarize, cx); request.messages.push(LanguageModelRequestMessage { role: Role::User, content: vec![