#[macro_export]
macro_rules! executor {
() => {
executor!(chatgpt)
};
(chatgpt) => {{
use ai_chain::traits::Executor;
ai_chain_openai::chatgpt::Executor::new()
}};
(chatgpt, $options:expr) => {{
use ai_chain::traits::Executor;
ai_chain_openai::chatgpt::Executor::new_with_options($options)
}};
(mooonshot) => {{
use ai_chain::traits::Executor;
ai_chain_moonshot::chatgpt::Executor::new()
}};
(mooonshot, $options:expr) => {{
use ai_chain::traits::Executor;
ai_chain_moonshot::chatgpt::Executor::new_with_options($options)
}};
(glm) => {{
use ai_chain::traits::Executor;
ai_chain_glm::chatgpt::Executor::new()
}};
(glm, $options:expr) => {{
use ai_chain::traits::Executor;
ai_chain_glm::chatgpt::Executor::new_with_options($options)
}};
(qwen) => {{
use ai_chain::traits::Executor;
ai_chain_qwen::chatgpt::Executor::new()
}};
(qwen, $options:expr) => {{
use ai_chain::traits::Executor;
ai_chain_qwen::chatgpt::Executor::new_with_options($options)
}};
(gemma, $options:expr) => {{
use ai_chain::traits::Executor;
ai_chain_gemma::Executor::new_with_options($options)
}};
(llama) => {{
use ai_chain::traits::Executor;
ai_chain_llama::Executor::new()
}};
(llama, $options:expr) => {{
use ai_chain::traits::Executor;
ai_chain_llama::Executor::new_with_options($options)
}};
(local, $options:expr) => {{
use ai_chain::traits::Executor;
ai_chain_local::Executor::new_with_options($options)
}};
(mock) => {{
use ai_chain::traits::Executor;
ai_chain_mock::Executor::new()
}};
(sagemaker_endpoint, $options:expr) => {{
use ai_chain::traits::Executor;
ai_chain_sagemaker_endpoint::Executor::new_with_options($options)
}};
(deno, $options:expr) => {{
use ai_chain::traits::Executor;
deno_executor::Executor::new_with_options($options)
}};
(wasmtime, $options:expr) => {{
use ai_chain::traits::Executor;
wasmtime_executor::Executor::new_with_options($options)
}};
(custom, $model:ident) => {{
use ai_chain::traits::Executor;
$model::chatgpt::Executor::new()
}};
(custom, $model:ident, $options:expr) => {{
use ai_chain::traits::Executor;
$model::chatgpt::Executor::new_with_options($options)
}};
}