| // Claude 辅助函数 | |
| // JSON Schema 清理、签名处理等 | |
| // 已移除未使用的 Value 导入 | |
| /// 将 JSON Schema 中的类型名称转为大写 (Gemini 要求) | |
| /// 例如: "string" -> "STRING", "integer" -> "INTEGER" | |
| // 已移除未使用的 uppercase_schema_types 函数 | |
| /// 从 Gemini UsageMetadata 转换为 Claude Usage | |
| pub fn to_claude_usage(usage_metadata: &super::models::UsageMetadata) -> super::models::Usage { | |
| super::models::Usage { | |
| input_tokens: usage_metadata.prompt_token_count.unwrap_or(0), | |
| output_tokens: usage_metadata.candidates_token_count.unwrap_or(0), | |
| server_tool_use: None, | |
| } | |
| } | |
| /// 提取 thoughtSignature | |
| // 已移除未使用的 extract_thought_signature 函数 | |
| mod tests { | |
| use super::*; | |
| // 移除了未使用的 serde_json::json | |
| // 已移除对 uppercase_schema_types 的过期测试 | |
| fn test_to_claude_usage() { | |
| use super::super::models::UsageMetadata; | |
| let usage = UsageMetadata { | |
| prompt_token_count: Some(100), | |
| candidates_token_count: Some(50), | |
| total_token_count: Some(150), | |
| }; | |
| let claude_usage = to_claude_usage(&usage); | |
| assert_eq!(claude_usage.input_tokens, 100); | |
| assert_eq!(claude_usage.output_tokens, 50); | |
| } | |
| } | |