pub mod base_json_parser;
pub mod deepseek_parser;
pub use super::{config, response};
pub use base_json_parser::try_tool_call_parse_basic_json;
pub use deepseek_parser::parse_tool_calls_deepseek_v3_1;
pub use super::config::JsonParserConfig;
pub use super::response::ToolCallResponse;
#[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
pub enum JsonParserType {
Basic,
DeepseekV31,
}
impl Default for JsonParserType {
fn default() -> Self {
Self::Basic
}
}
pub fn try_tool_call_parse_json(
message: &str,
config: &JsonParserConfig,
) -> anyhow::Result<(Vec<ToolCallResponse>, Option<String>)> {
match config.parser_type {
JsonParserType::Basic => try_tool_call_parse_basic_json(message, config),
JsonParserType::DeepseekV31 => parse_tool_calls_deepseek_v3_1(message, config),
}
}