From 4af3ff5000e0dd37f2ee5cad49c8581eac2f6447 Mon Sep 17 00:00:00 2001 From: ping <1017253325@qq.com> Date: Tue, 21 Jul 2026 16:13:44 +0800 Subject: [PATCH] update --- b/cntoai/sync_model_to_llm.dspy | 79 +++++++++++++++++++++++++++++++-- 1 file changed, 76 insertions(+), 3 deletions(-) diff --git a/b/cntoai/sync_model_to_llm.dspy b/b/cntoai/sync_model_to_llm.dspy index ac187af..278d721 100644 --- a/b/cntoai/sync_model_to_llm.dspy +++ b/b/cntoai/sync_model_to_llm.dspy @@ -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: