fix: 展平嵌套usage数据以支持pricing引擎点号路径查找
根因:pricing引擎的config_data.get(k)是平面dict查找, 当k='prompt_tokens_details.cached_tokens'时无法从嵌套结构取值。 在llm_charging()中将prompt_tokens_details和completion_tokens_details 的子键展平为顶层key(如'prompt_tokens_details.cached_tokens')。
This commit is contained in:
parent
534e4fe8e0
commit
71626468e2
@ -16,6 +16,13 @@ async def llm_charging(ppid, llmusage):
|
||||
usages = llmusage.usages
|
||||
if isinstance(usages, str):
|
||||
usages = json.loads(usages)
|
||||
# 展平嵌套dict,使 prompt_tokens_details.cached_tokens 等点号路径
|
||||
# 可以作为顶层key被pricing引擎的 config_data.get(k) 取到
|
||||
for nested_key in ('prompt_tokens_details', 'completion_tokens_details'):
|
||||
nested = usages.get(nested_key)
|
||||
if isinstance(nested, dict):
|
||||
for k, v in nested.items():
|
||||
usages[f'{nested_key}.{k}'] = v
|
||||
prices = await env.buffered_charging(ppid, usages)
|
||||
if prices is None:
|
||||
e = Exception(f'{ppid=}, {usages=}{llmusage.id=} env.buffered_charging() return None')
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user