- llm table: add status field (published/unpublished, default unpublished)
- User-facing queries: filter by status='published' in 11 query points:
- utils.py: get_llms_by_catelog_to_customer, get_llms_by_catelog,
get_llm, get_llmproviders, get_llms_sort_by_provider
- v1 endpoints: chat/completions, image/generations, video/generations
- user pages: t2t, get_type_llms, list_catelog_models,
list_paging_catelog_llms, llmcheck
- CRUD: status column visible/editable with select dropdown
- Admin CRUD list shows ALL models regardless of status
- Migration SQL: sql/add_status_field.sql (existing models set to published)
41 lines
1.0 KiB
Plaintext
41 lines
1.0 KiB
Plaintext
debug(f'{params_kw=}')
|
|
lctype='文生文'
|
|
if params_kw.off_peak:
|
|
off_peak = params_kw.off_peak
|
|
if off_peak in [True, "Y" "y", 1, "1"]:
|
|
off_peak = True
|
|
else:
|
|
off_peak = False
|
|
params_kw.off_peak = off_peak
|
|
userid = await get_user()
|
|
userorgid = await get_userorgid()
|
|
if userid is None:
|
|
return openai_403()
|
|
|
|
if not params_kw.prompt:
|
|
d = return_error('Missing need data(prompt)')
|
|
return json_response(d, status=400)
|
|
env = request._run_ns
|
|
async with get_sor_context(env, 'llmage') as sor:
|
|
sql = """select distinct a.* from llm a
|
|
join llm_api_map m on a.id = m.llmid
|
|
join llmcatelog b on m.llmcatelogid = b.id
|
|
where b.name = ${lctype}$
|
|
and a.model=${model}$
|
|
and a.status = 'published'"""
|
|
recs = await sor.sqlExe(sql, {
|
|
'lctype': lctype,
|
|
'model': params_kw.model or 'qwen3-max'
|
|
})
|
|
if len(recs) == 0:
|
|
return openai_400()
|
|
params_kw.llmid = recs[0].id
|
|
|
|
f = await checkCustomerBalance(params_kw.llmid, userorgid)
|
|
if not f:
|
|
return openai_429()
|
|
|
|
env = DictObject(**globals())
|
|
return await inference(request, env=env)
|
|
|