llmage/wwwroot/api/get_plaza_models.dspy

37 lines
1.2 KiB
Plaintext

import json
providerid = (params_kw or {}).get('providerid', '')
catelogid = (params_kw or {}).get('catelogid', '')
search = (params_kw or {}).get('search', '').strip()
data = await request._run_ns.get_llms_by_catelog_to_customer(
catelogid=catelogid if catelogid else None,
orderby='a.name'
)
result = []
for cate in data:
for llm in cate['llms']:
if providerid and llm.providerid != providerid:
continue
if search:
sl = search.lower()
n = (llm.name or '').lower()
d = (llm.description or '').lower()
if sl not in n and sl not in d:
continue
result.append({
'id': llm.id,
'name': llm.name,
'model': llm.model,
'description': llm.description or '',
'iconid': llm.iconid,
'providerid': llm.providerid,
'provider_name': getattr(llm, 'provider_name', getattr(llm, 'orgname', '')),
'catelog_id': getattr(llm, 'catelog_id', ''),
'catelogname': getattr(llm, 'catelogname', ''),
'pricing_display': getattr(llm, 'pricing_display', []),
})
return json.dumps({'total': len(result), 'rows': result}, ensure_ascii=False)