From 9b5e6395adfc821bfbcb6b91d783ca351785db92 Mon Sep 17 00:00:00 2001 From: yumoqing Date: Tue, 6 Jan 2026 13:31:50 +0800 Subject: [PATCH] bugfix --- llmage/init.py | 2 ++ llmage/llmclient.py | 28 ++++++++++++++++++++++++++++ wwwroot/llm_dialog.ui | 10 ++++++++++ wwwroot/show_llms_by_providers.ui | 8 ++------ 4 files changed, 42 insertions(+), 6 deletions(-) diff --git a/llmage/init.py b/llmage/init.py index aa78689..1b86575 100644 --- a/llmage/init.py +++ b/llmage/init.py @@ -8,6 +8,7 @@ from llmage.llmclient import ( get_llm, inference, get_llmproviders, + get_llms_sort_by_provider, get_llmcatelogs, get_llms_by_provider, get_llms_by_catelog @@ -26,6 +27,7 @@ def load_llmage(): env.checkCustomerBalance = checkCustomerBalance env.get_llmproviders = get_llmproviders env.get_llms_by_provider = get_llms_by_provider + env.get_llms_sort_by_provider = get_llms_sort_by_provider env.keling_token = keling_token rf = RegisterFunction() diff --git a/llmage/llmclient.py b/llmage/llmclient.py index 1712eea..90028d6 100644 --- a/llmage/llmclient.py +++ b/llmage/llmclient.py @@ -37,6 +37,34 @@ group by a.providerid, a.iconid, b.orgname""" return await sor.sqlExe(sql, {}) return [] +async def get_llms_sort_by_provider(): + env = ServerEnv() + async with get_sor_context(env, 'llmage') as sor: + today = curDateString() + sql = """select a.*, b.orgname from llm, organization b +where a.enabled_date <= ${today}$ + and a.expired_date > ${today}$ + and a.providerid = b.id + order by a.providerid, a.id + """ + recs = await sor.sqlExe(sql, {'today': today}) + d = [] + x = None + oldpid = '-111' + for l in recs: + if l.providerid != oldpid: + x = { + 'id': l.providerid, + 'orgname': l.orgname, + 'llms': [l] + } + d.append(x) + oldpid = l.providerid + else: + x['llms'].append(l) + return d + return [] + async def get_llms_by_provider(pid): env = ServerEnv() async with get_sor_context(env, 'llmage') as sor: diff --git a/wwwroot/llm_dialog.ui b/wwwroot/llm_dialog.ui index 86cc014..ad8c0c7 100644 --- a/wwwroot/llm_dialog.ui +++ b/wwwroot/llm_dialog.ui @@ -1,4 +1,6 @@ {% if get_user() %} +{% set userorgid = get_userorgid %} +{% if checkCustomerBalance(params_kw.id, userorgid) %} {% set llm = get_llm(params_kw.id) %} {% set kdbs = get_user_kdbs(request) %} {% if llm %} @@ -39,6 +41,14 @@ } {% endif %} {% else %} +{ + "widgettype":"Text", + "options":{ + "otext":"Not enrogh balance to use llm", + "i18n":true + } +} +{% else %} { "widgettype":"Text", "options":{ diff --git a/wwwroot/show_llms_by_providers.ui b/wwwroot/show_llms_by_providers.ui index ae36ec5..a0c3856 100644 --- a/wwwroot/show_llms_by_providers.ui +++ b/wwwroot/show_llms_by_providers.ui @@ -6,7 +6,7 @@ "height":"100%" }, "subwidgets":[ -{% for p in get_llmproviders() %} +{% for p in get_llms_sort_by_provider() %} { "widgettype": "VBox", "options":{ @@ -28,15 +28,11 @@ "width":"100%" }, "subwidgets":[ -{% for llm in get_llms_by_provider(p.providerid) %} -{% set can_use = checkCustomerBalance(llm.id, userorgid) %} +{% for llm in p.llms %} { "widgettype":"VScrollPanel", "options":{ "css":"card", -{% if not can_use %} - "disabled":true, -{% endif %} "bgcolor": "#def0f0", "cwidth":20, "cheight":12