optimize TenantLLMService.increase_usage for "can't update token usag… (#4755)

…e error " message

### What problem does this PR solve?

optimize TenantLLMService.increase_usage Performance

### Type of change

- [x] Performance Improvement

Co-authored-by: che_shuai <che_shuai@massclouds.com>
This commit is contained in:
davidche 2025-02-07 12:16:17 +08:00 committed by GitHub
parent 2aa0cdde8f
commit 588207d7c1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -175,38 +175,35 @@ class TenantLLMService(CommonService):
if not e: if not e:
raise LookupError("Tenant not found") raise LookupError("Tenant not found")
if llm_type == LLMType.EMBEDDING.value: llm_map = {
mdlnm = tenant.embd_id LLMType.EMBEDDING.value: tenant.embd_id,
elif llm_type == LLMType.SPEECH2TEXT.value: LLMType.SPEECH2TEXT.value: tenant.asr_id,
mdlnm = tenant.asr_id LLMType.IMAGE2TEXT.value: tenant.img2txt_id,
elif llm_type == LLMType.IMAGE2TEXT.value: LLMType.CHAT.value: tenant.llm_id if not llm_name else llm_name,
mdlnm = tenant.img2txt_id LLMType.RERANK.value: tenant.rerank_id if not llm_name else llm_name,
elif llm_type == LLMType.CHAT.value: LLMType.TTS.value: tenant.tts_id if not llm_name else llm_name
mdlnm = tenant.llm_id if not llm_name else llm_name }
elif llm_type == LLMType.RERANK:
mdlnm = tenant.rerank_id if not llm_name else llm_name mdlnm = llm_map.get(llm_type)
elif llm_type == LLMType.TTS: if mdlnm is None:
mdlnm = tenant.tts_id if not llm_name else llm_name raise ValueError("LLM type error")
else:
assert False, "LLM type error"
llm_name, llm_factory = TenantLLMService.split_model_name_and_factory(mdlnm) llm_name, llm_factory = TenantLLMService.split_model_name_and_factory(mdlnm)
num = 0
try: try:
if llm_factory: num = cls.model.update(
tenant_llms = cls.query(tenant_id=tenant_id, llm_name=llm_name, llm_factory=llm_factory) used_tokens=cls.model.used_tokens + used_tokens
else: ).where(
tenant_llms = cls.query(tenant_id=tenant_id, llm_name=llm_name) cls.model.tenant_id == tenant_id,
if not tenant_llms: cls.model.llm_name == llm_name,
return num cls.model.llm_factory == llm_factory if llm_factory else True
else: ).execute()
tenant_llm = tenant_llms[0]
num = cls.model.update(used_tokens=tenant_llm.used_tokens + used_tokens) \
.where(cls.model.tenant_id == tenant_id, cls.model.llm_factory == tenant_llm.llm_factory, cls.model.llm_name == llm_name) \
.execute()
except Exception: except Exception:
logging.exception("TenantLLMService.increase_usage got exception") logging.exception(
"TenantLLMService.increase_usage got exception,Failed to update used_tokens for tenant_id=%s, llm_name=%s",
tenant_id, llm_name)
return 0
return num return num
@classmethod @classmethod