update
This commit is contained in:
parent
35d7fa08ea
commit
4af3ff5000
@ -1,6 +1,12 @@
|
|||||||
async def sync_model_to_llm(ns={}):
|
async def sync_model_to_llm(ns={}):
|
||||||
import aiohttp
|
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
|
# 从数据库读取domain和Bearer token
|
||||||
db = DBPools()
|
db = DBPools()
|
||||||
async with db.sqlorContext('kboss') as sor:
|
async with db.sqlorContext('kboss') as sor:
|
||||||
@ -13,6 +19,12 @@ async def sync_model_to_llm(ns={}):
|
|||||||
}
|
}
|
||||||
domain = domain_li[0]['pvalue']
|
domain = domain_li[0]['pvalue']
|
||||||
bearer_token = user_key[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"
|
url = f"{domain}/llmage/list_llms"
|
||||||
header = {
|
header = {
|
||||||
@ -33,9 +45,70 @@ async def sync_model_to_llm(ns={}):
|
|||||||
db = DBPools()
|
db = DBPools()
|
||||||
async with db.sqlorContext('kboss') as sor:
|
async with db.sqlorContext('kboss') as sor:
|
||||||
new_llms_count = 0
|
new_llms_count = 0
|
||||||
|
sync_products_count = 0
|
||||||
new_llms_list = []
|
new_llms_list = []
|
||||||
for category_list in result:
|
for category_list in result:
|
||||||
for item in category_list.get('llms', []):
|
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')})
|
exist_llm = await sor.R('llm', {'model': item.get('model')})
|
||||||
if exist_llm:
|
if exist_llm:
|
||||||
@ -49,13 +122,13 @@ async def sync_model_to_llm(ns={}):
|
|||||||
'iconid': item.get('iconid'),
|
'iconid': item.get('iconid'),
|
||||||
'upappid': item.get('upappid'),
|
'upappid': item.get('upappid'),
|
||||||
'apiname': item.get('apiname'),
|
'apiname': item.get('apiname'),
|
||||||
'providerid': item.get('providerid'),
|
'providerid': provider_orgid,
|
||||||
'ownerid': item.get('ownerid') or '0',
|
'ownerid': item.get('ownerid') or '0',
|
||||||
'enabled_date': item.get('enabled_date'),
|
'enabled_date': item.get('enabled_date'),
|
||||||
'expired_date': item.get('expired_date'),
|
'expired_date': item.get('expired_date'),
|
||||||
'query_apiname': item.get('query_apiname') or '',
|
'query_apiname': item.get('query_apiname') or '',
|
||||||
'query_period': item.get('query_period'),
|
'query_period': item.get('query_period'),
|
||||||
'ppid': item.get('ppid'),
|
'ppid': protocolid,
|
||||||
}
|
}
|
||||||
new_llms_count += 1
|
new_llms_count += 1
|
||||||
new_llms_list.append(new_llms.get('model'))
|
new_llms_list.append(new_llms.get('model'))
|
||||||
@ -63,7 +136,7 @@ async def sync_model_to_llm(ns={}):
|
|||||||
|
|
||||||
return {
|
return {
|
||||||
'status': True,
|
'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:
|
except Exception as e:
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user