Converts this message into a [UserInputMessage] to be sent as [FigConversationState::user_input_message].
(
self,
model_id: Option<String>,
tools: &HashMap<ToolOrigin, Vec<Tool>>,
)
| 198 | /// Converts this message into a [UserInputMessage] to be sent as |
| 199 | /// [FigConversationState::user_input_message]. |
| 200 | pub fn into_user_input_message( |
| 201 | self, |
| 202 | model_id: Option<String>, |
| 203 | tools: &HashMap<ToolOrigin, Vec<Tool>>, |
| 204 | ) -> UserInputMessage { |
| 205 | let content = self.content_with_context(); |
| 206 | UserInputMessage { |
| 207 | images: self.images, |
| 208 | content, |
| 209 | user_input_message_context: Some(UserInputMessageContext { |
| 210 | env_state: self.env_context.env_state, |
| 211 | tool_results: match self.content { |
| 212 | UserMessageContent::CancelledToolUses { tool_use_results, .. } |
| 213 | | UserMessageContent::ToolUseResults { tool_use_results } => { |
| 214 | Some(tool_use_results.into_iter().map(Into::into).collect()) |
| 215 | }, |
| 216 | UserMessageContent::Prompt { .. } => None, |
| 217 | }, |
| 218 | tools: if tools.is_empty() { |
| 219 | None |
| 220 | } else { |
| 221 | Some(tools.values().flatten().cloned().collect::<Vec<_>>()) |
| 222 | }, |
| 223 | ..Default::default() |
| 224 | }), |
| 225 | user_intent: None, |
| 226 | model_id, |
| 227 | } |
| 228 | } |
| 229 | |
| 230 | pub fn has_tool_use_results(&self) -> bool { |
| 231 | match self.content() { |