gemini / server /src /proxy /mappers /claude /utils.rs
yinming
feat: Antigravity API Proxy for HuggingFace Spaces
bbb1195
// 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 函数
#[cfg(test)]
mod tests {
use super::*;
// 移除了未使用的 serde_json::json
// 已移除对 uppercase_schema_types 的过期测试
#[test]
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);
}
}