mirror of
https://github.com/QuantumNous/new-api.git
synced 2026-09-12 15:21:09 +00:00
* feat(relaykit): preserve hosted tools across conversions - add protocol-neutral hosted-tool DTOs, conversion metadata, and loss policies - bridge citations, grounding metadata, and hosted-tool stream lifecycles - document the public conversion behavior and channel policy controls * refactor(relaykit): normalize reasoning and thinking intent - centralize provider-neutral reasoning intent, effort, and budget mappings - parse model suffixes at the host entry boundary while preserving provider-owned tails - keep adaptive Claude thinking and explicit zero-token compatibility consistent * fix(billing): preserve authoritative usage across relay hops - carry native BillingUsage sidecars through direct and streamed protocol bridges - merge partial and terminal usage monotonically with safe fallback settlement - retain cache metadata, penultimate usage, and per-call Gemini tool surcharges * feat(relay): bridge Responses with Claude and Gemini protocols - add direct request, response, and stream converters across supported relay formats - expose Claude count_tokens and Chat-to-Responses compatibility endpoints - carry conversion diagnostics through the host while retaining the curated public goldens * fix(relay): wire relaykit conversions into host channels - connect handlers, adaptors, and channel settings to the standalone conversion layer - keep model mapping, pricing identity, retries, and provider-specific suffix behavior aligned - ignore local audit artifacts and retain focused public regression coverage
45 lines
1.0 KiB
JSON
45 lines
1.0 KiB
JSON
{
|
|
"id": "chatcmpl-<uuid>",
|
|
"type": "message",
|
|
"role": "assistant",
|
|
"content": [
|
|
{
|
|
"type": "text",
|
|
"text": "The answer is 42."
|
|
},
|
|
{
|
|
"type": "tool_use",
|
|
"id": "call_<uuid>",
|
|
"name": "get_weather",
|
|
"input": {
|
|
"city": "Paris"
|
|
}
|
|
}
|
|
],
|
|
"stop_reason": "tool_use",
|
|
"model": "upstream-model",
|
|
"usage": {
|
|
"input_tokens": 10,
|
|
"cache_creation_input_tokens": 0,
|
|
"cache_read_input_tokens": 0,
|
|
"output_tokens": 7,
|
|
"claude_cache_creation_5_m_tokens": 0,
|
|
"claude_cache_creation_1_h_tokens": 0,
|
|
"billing_usage": {
|
|
"source": "gemini_chat",
|
|
"semantic": "gemini",
|
|
"gemini_usage_metadata": {
|
|
"promptTokenCount": 10,
|
|
"toolUsePromptTokenCount": 0,
|
|
"candidatesTokenCount": 5,
|
|
"totalTokenCount": 15,
|
|
"thoughtsTokenCount": 2,
|
|
"cachedContentTokenCount": 0,
|
|
"promptTokensDetails": [],
|
|
"toolUsePromptTokensDetails": [],
|
|
"candidatesTokensDetails": []
|
|
}
|
|
}
|
|
}
|
|
}
|