mirror of
https://github.com/fawney19/Aether.git
synced 2026-09-02 01:10:23 +08:00
fix: 修复响应解析器中 usage 为 null 时的处理问题
将 response.get("usage", {}) 改为 response.get("usage") or {},
避免 usage 显式为 None 时导致后续属性访问失败。
This commit is contained in:
@@ -203,7 +203,7 @@ class OpenAIResponseParser(ResponseParser):
|
|||||||
result.response_id = response.get("id")
|
result.response_id = response.get("id")
|
||||||
|
|
||||||
# 提取 usage
|
# 提取 usage
|
||||||
usage = response.get("usage", {})
|
usage = response.get("usage") or {}
|
||||||
result.input_tokens = usage.get("prompt_tokens", 0)
|
result.input_tokens = usage.get("prompt_tokens", 0)
|
||||||
result.output_tokens = usage.get("completion_tokens", 0)
|
result.output_tokens = usage.get("completion_tokens", 0)
|
||||||
|
|
||||||
@@ -218,7 +218,7 @@ class OpenAIResponseParser(ResponseParser):
|
|||||||
return result
|
return result
|
||||||
|
|
||||||
def extract_usage_from_response(self, response: Dict[str, Any]) -> Dict[str, int]:
|
def extract_usage_from_response(self, response: Dict[str, Any]) -> Dict[str, int]:
|
||||||
usage = response.get("usage", {})
|
usage = response.get("usage") or {}
|
||||||
return {
|
return {
|
||||||
"input_tokens": usage.get("prompt_tokens", 0),
|
"input_tokens": usage.get("prompt_tokens", 0),
|
||||||
"output_tokens": usage.get("completion_tokens", 0),
|
"output_tokens": usage.get("completion_tokens", 0),
|
||||||
@@ -342,7 +342,7 @@ class ClaudeResponseParser(ResponseParser):
|
|||||||
result.response_id = response.get("id")
|
result.response_id = response.get("id")
|
||||||
|
|
||||||
# 提取 usage
|
# 提取 usage
|
||||||
usage = response.get("usage", {})
|
usage = response.get("usage") or {}
|
||||||
result.input_tokens = usage.get("input_tokens", 0)
|
result.input_tokens = usage.get("input_tokens", 0)
|
||||||
result.output_tokens = usage.get("output_tokens", 0)
|
result.output_tokens = usage.get("output_tokens", 0)
|
||||||
result.cache_creation_tokens = extract_cache_creation_tokens(usage)
|
result.cache_creation_tokens = extract_cache_creation_tokens(usage)
|
||||||
@@ -361,9 +361,9 @@ class ClaudeResponseParser(ResponseParser):
|
|||||||
def extract_usage_from_response(self, response: Dict[str, Any]) -> Dict[str, int]:
|
def extract_usage_from_response(self, response: Dict[str, Any]) -> Dict[str, int]:
|
||||||
# 对于 message_start 事件,usage 在 message.usage 路径下
|
# 对于 message_start 事件,usage 在 message.usage 路径下
|
||||||
# 对于其他响应,usage 在顶层
|
# 对于其他响应,usage 在顶层
|
||||||
usage = response.get("usage", {})
|
usage = response.get("usage") or {}
|
||||||
if not usage and "message" in response:
|
if not usage and "message" in response:
|
||||||
usage = response.get("message", {}).get("usage", {})
|
usage = (response.get("message") or {}).get("usage") or {}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
"input_tokens": usage.get("input_tokens", 0),
|
"input_tokens": usage.get("input_tokens", 0),
|
||||||
|
|||||||
Reference in New Issue
Block a user