This commit is contained in:
ping 2026-07-21 16:13:44 +08:00
parent 35d7fa08ea
commit 4af3ff5000

View File

@ -1,5 +1,11 @@
async def sync_model_to_llm(ns={}):
import aiohttp
async def get_sync_orgid(sor):
if ns.get('orgid'):
return ns.get('orgid')
user_li = await sor.R('users', {'id': await get_user()})
return user_li[0].get('orgid') if user_li else ''
# 从数据库读取domain和Bearer token
db = DBPools()
@ -13,6 +19,12 @@ async def sync_model_to_llm(ns={}):
}
domain = domain_li[0]['pvalue']
bearer_token = user_key[0]['pvalue']
sync_orgid = await get_sync_orgid(sor)
if not sync_orgid:
return {
'status': False,
'msg': '未找到当前用户所属机构'
}
url = f"{domain}/llmage/list_llms"
header = {
@ -33,9 +45,70 @@ async def sync_model_to_llm(ns={}):
db = DBPools()
async with db.sqlorContext('kboss') as sor:
new_llms_count = 0
sync_products_count = 0
new_llms_list = []
for category_list in result:
for item in category_list.get('llms', []):
provider_orgcode = item.get('providerid')
provider_name = item.get('provider_name') or item.get('providerid') or '模型供应商'
if not provider_orgcode:
continue
provider_ns = {
'orgid': sync_orgid,
'orgcode': provider_orgcode,
'orgname': provider_name,
'name': provider_name,
'description': provider_name,
'appid': item.get('upappid') or '',
'providerkey': provider_orgcode,
'state': '1',
'start_date': item.get('enabled_date'),
'end_date': item.get('expired_date') or '9999-12-31',
'salemode': ns.get('salemode') or '0',
'settle_mode': ns.get('settle_mode') or '0',
'settle_datep': ns.get('settle_datep')
}
provider_res = await path_call('../provider/providerAdd.dspy', provider_ns)
if not provider_res.get('status'):
return {
'status': False,
'msg': '供应商同步失败, %s, %s' % (provider_name, provider_res.get('msg'))
}
provider_data = provider_res.get('data') or {}
provider_orgid = provider_data.get('provider_orgid') or provider_data.get('orgid')
protocolid = provider_data.get('protocolid')
if not provider_orgid or not protocolid:
return {
'status': False,
'msg': '供应商同步失败, 未返回provider_orgid或protocolid, %s' % provider_name
}
product_ns = {
'providerid': provider_orgid,
'providerpid': item.get('id'),
'protocolid': protocolid,
'name': item.get('name'),
'description': item.get('description'),
'ptype': item.get('catelogname') or category_list.get('catelogname') or '',
'state': '1',
'product_code': item.get('model'),
'reseller_orgid': sync_orgid,
'salemode': ns.get('salemode') or '0',
'productgroup': item.get('catelog_id') or item.get('catelogid') or category_list.get('catelogid'),
'label': item.get('catelogname') or category_list.get('catelogname'),
'unit': ns.get('unit'),
'discount': ns.get('discount'),
'floorprice': ns.get('floorprice')
}
product_res = await path_call('../product/productAdd.dspy', product_ns)
if not product_res.get('status'):
return {
'status': False,
'msg': '产品同步失败, %s, %s' % (item.get('name'), product_res.get('msg'))
}
sync_products_count += 1
# 查找数据库中是否已经存在,不存在就插入
exist_llm = await sor.R('llm', {'model': item.get('model')})
if exist_llm:
@ -49,13 +122,13 @@ async def sync_model_to_llm(ns={}):
'iconid': item.get('iconid'),
'upappid': item.get('upappid'),
'apiname': item.get('apiname'),
'providerid': item.get('providerid'),
'providerid': provider_orgid,
'ownerid': item.get('ownerid') or '0',
'enabled_date': item.get('enabled_date'),
'expired_date': item.get('expired_date'),
'query_apiname': item.get('query_apiname') or '',
'query_period': item.get('query_period'),
'ppid': item.get('ppid'),
'ppid': protocolid,
}
new_llms_count += 1
new_llms_list.append(new_llms.get('model'))
@ -63,7 +136,7 @@ async def sync_model_to_llm(ns={}):
return {
'status': True,
'msg': f"sync_llm_list同步模型成功共插入{new_llms_count}个模型,模型列表: {new_llms_list}"
'msg': f"sync_llm_list同步模型成功同步{sync_products_count}个产品,共插入{new_llms_count}个模型,模型列表: {new_llms_list}"
}
except Exception as e: