37 lines
1.2 KiB
Plaintext
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)
|