yumoqing
e3f61f446d
feat(balance): extend atomic balance reserve to async+sync+product paths
- balance.py: module-level redis.asyncio singleton (works in all
processes without env.redis injection), centralized tpac/self-org
skip policy, userid param, extend_reserve, invalidate_balance_cache,
finalize updates max_cost on cold start (no reserve)
- llmclient.py: unified reserve injection in _inference_generator
(covers all 22 dspy entries); fix luid mismatch (reserve key ==
llmusage id == finalize key); stream exception refund
- syncinference.py / asyncinference.py: luid reuse + failure refunds
(submit failure, outer exception, query_task_status FAILED)
- product_interface.py: reserve + refund on product stream/non-stream
- accounting.py: finalize after llm_accounting (was missing for
direct llmage accounting path -> reserve leaked until TTL)
- init.py: lambda signatures synced
- v1/chat/completions/index.dspy: pass userid to reserve
2026-08-04 18:35:53 +08:00
..
2026-07-24 16:56:50 +08:00
2026-08-04 18:35:53 +08:00
2026-07-24 16:56:50 +08:00
2026-07-27 10:22:34 +08:00
2026-06-02 11:21:25 +08:00
2026-07-24 16:56:50 +08:00
2026-07-24 16:56:50 +08:00
2026-07-06 15:57:25 +08:00
2026-05-23 21:48:46 +08:00
2026-07-24 16:56:50 +08:00