1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
//! # Tool Module
//!
//! Provides tool implementations for various external services and APIs
//! that can be used with AI models through function calling.
//!
//! ## Available Tools
//!
//! ### File Parsing Tools
//! - [`file_parser_create`] - Create file parsing tasks for document analysis
//! - [`file_parser_result`] - Retrieve results from file parsing operations
//!
//! ### Web Search Tools
//! - [`web_search`] - Web search capabilities for retrieving current
//! information
//!
//! ## Tool Registration
//!
//! Tools can be registered with the
//! [`ToolExecutor`](crate::toolkits::ToolExecutor) for use in AI conversations:
//!
//! ```rust,ignore
//! use zai_rs::toolkits::{ToolExecutor, ToolMetadata};
//! use zai_rs::tool::web_search::{WebSearchRequest, WebSearchTool};
//!
//! let mut executor = ToolExecutor::new();
//! executor.register_tool(WebSearchTool::new())?;
//! ```
//!
//! ## Tool Implementation Pattern
//!
//! Each tool implements the [`DynTool`](crate::toolkits::core::DynTool) trait,
//! providing:
//! - Metadata (name, description, parameters)
//! - Schema generation for LLM integration
//! - Async execution handler
//!
//! ## Usage Example
//!
//! ```rust,ignore
//! use zai_rs::tool::web_search::WebSearchRequest;
//! use zai_rs::client::ZaiClient;
//!
//! let client = ZaiClient::new(api_key);
//! let request = WebSearchRequest::new("Rust programming language")
//! .num_results(5)
//! .build()?;
//!
//! let results = client.web_search(&request).await?;
//! ```
// File Parser Create
pub use ;
// File Parser Result
pub use FileParserResultRequest;
pub use ;
// Web Search
pub use WebSearchRequest;
pub use ;