Tokitai Core
🎯 核心类型定义
Tokitai Core 提供了 Tokitai AI 工具集成系统的基础类型和 trait。所有工具信息在编译期生成,确保零运行时开销和最大的类型安全。
✨ 核心特性
- 零运行时依赖 - 核心类型依赖最小化
- 类型安全 - 编译期工具定义防止运行时错误
- Serde 集成 - 通过
serde特性提供可选的序列化支持
📦 核心类型
| 类型 | 说明 |
|---|---|
[ToolDefinition] |
工具定义,包含名称、描述和输入 schema |
[ToolParameter] |
工具的参数定义 |
[ParamType] |
JSON Schema 类型枚举 |
[ToolError] |
工具调用错误类型 |
[ToolErrorKind] |
错误分类枚举 |
[ToolProvider] |
工具提供者 trait(由 #[tool] 宏自动实现) |
🚀 快速开始
添加依赖
[]
= "0.3"
基本使用
use ToolDefinition;
// 创建工具定义
let tool = new;
assert_eq!;
assert_eq!;
// 启用 serde 特性时,可转换为 JSON
📋 类型映射
[ParamType] 枚举将 Rust 类型映射到 JSON Schema 类型:
| Rust 类型 | JSON Schema 类型 | ParamType 变体 |
|---|---|---|
String, &str |
string |
ParamType::String |
i8, i16, i32, i64, u8, u16, u32, u64 |
integer |
ParamType::Integer |
f32, f64 |
number |
ParamType::Number |
bool |
boolean |
ParamType::Boolean |
Vec<T> |
array |
ParamType::Array |
| 自定义 struct | object |
ParamType::Object |
use ParamType;
assert_eq!;
assert_eq!;
assert_eq!;
assert_eq!;
assert_eq!;
🔧 错误处理
[ToolError] 类型为工具调用提供结构化错误处理:
use ;
// 创建不同类型的错误
let validation_err = validation_error;
assert_eq!;
let not_found_err = not_found;
assert_eq!;
let internal_err = internal_error;
assert_eq!;
错误类型
| 变体 | 值 | 说明 |
|---|---|---|
ToolErrorKind::ValidationError |
0 | 参数验证失败 |
ToolErrorKind::NotFound |
1 | 工具未找到 |
ToolErrorKind::InternalError |
2 | 内部错误 |
ToolErrorKind::TypeError |
3 | 类型错误 |
🏗️ ToolProvider Trait
[ToolProvider] trait 由 #[tool] 宏自动实现:
use ToolProvider;
// 在你的类型上使用 #[tool] 宏后:
// struct Calculator;
// #[tool] impl Calculator { ... }
// 获取所有工具定义
let tools = tool_definitions;
// 获取工具数量
let count = tool_count;
// 查找特定工具
let tool = find_tool;
📐 JSON Schema 宏
json_schema! 宏帮助在编译期生成 JSON Schema 字符串:
use json_schema;
const SCHEMA: &str = json_schema!;
🎛️ Features
| Feature | 说明 |
|---|---|
serde (默认启用) |
启用 serde 序列化和 JSON 支持 |
⚙️ 要求
- Rust 版本: 1.80+
- Edition: 2021
📄 许可证
Licensed under either of:
at your option.
🤝 贡献
除非你明确声明其他许可,否则你为本 crate 提交的所有贡献都将按上述两种方式之一授权,无需额外条款或条件。
📦 相关 Crate
| Crate | Crates.io | 说明 |
|---|---|---|
tokitai |
主 crate,包含运行时支持 | |
tokitai-macros |
过程宏实现 |
📚 文档
Happy Coding! 🦀