This commit is contained in:
yumoqing 2026-03-27 13:20:16 +08:00
parent 444efd7a52
commit 9697b9c16c
3 changed files with 53 additions and 2 deletions

View File

@ -8,6 +8,7 @@ from llmage.llmclient import (
get_llm, get_llm,
inference_generator, inference_generator,
inference, inference,
llm_query_price,
get_llmproviders, get_llmproviders,
get_llms_sort_by_provider, get_llms_sort_by_provider,
get_llmcatelogs, get_llmcatelogs,
@ -29,6 +30,6 @@ def load_llmage():
env.get_llmproviders = get_llmproviders env.get_llmproviders = get_llmproviders
env.get_llms_sort_by_provider = get_llms_sort_by_provider env.get_llms_sort_by_provider = get_llms_sort_by_provider
env.keling_token = keling_token env.keling_token = keling_token
env.llm_query_price = llm_query_price
rf = RegisterFunction() rf = RegisterFunction()
rf.register('jimeng_auth_headers', jimeng_auth_headers) rf.register('jimeng_auth_headers', jimeng_auth_headers)

View File

@ -425,3 +425,18 @@ async def inference(request, *args, params_kw=None, **kw):
f = partial(inference_generator, request, *args, params_kw=params_kw, **kw) f = partial(inference_generator, request, *args, params_kw=params_kw, **kw)
return await env.stream_response(request, f) return await env.stream_response(request, f)
async def llm_query_price(llmid, config_data):
env = ServerEnv()
async with get_sor_context(env, 'llmage') as sor:
llms = await sor.R('llm', {id': llmid})
if not llms:
e = Exception(f'id={llmid} llm not founnd')
exception(f'{e}')
raise e
llm = llms[0]
if llm.ppid is None:
e = Exception(f'{llm=} ppid is None')
exception(f'{e}')
raise e
prices = env.pricing_program_charging(sor, llm.ppid, config_data)
return prices

View File

@ -3,5 +3,40 @@ product_id:
product_type: llm product_type: llm
config_data: config_data:
""" """
product_id = params_kw.product_id
if product_id is None:
return {
"status": "error",
"data": {
"message": "need a llmid"
}
}
config_data = params_kw.config_data
if config_data is None:
return {
"status": "error",
"data": {
"message": "need a config_data"
}
}
try:
prices = llm_query_price(product_id, config_data)
amount = 0
for p in prices:
amount += p.amount
return {
"status": "ok",
"data": {
"price": amount
}
}
except Exception as e:
msg = f'{product_id=}, {config_data=}, {e=}'
exception(msg)
return {
"status": "error",
"data": {
"message": msg
}
}