Files
param-hub-python/modules/routes/__pycache__/api_models.cpython-310.pyc
T

55 lines
6.2 KiB
Plaintext
Raw Normal View History

2026-07-10 23:59:53 +08:00
o
[1QjÏã@s(dZddlZddlZddlmZddlmZmZmZmZddl m
2026-07-10 23:59:53 +08:00
Z
ddl m Z m
Z
mZmZedeƒZdd „Ze d
2026-07-10 23:59:53 +08:00
¡d dƒZe d ¡d
2026-07-11 00:34:47 +08:00
dƒZejd
dgdddƒZejd dgdddƒZejd dgdddƒZejddgdddƒZejddgdddƒZejd ddgdd!d"„ƒZdS)#u
AI模型 CRUD API
éN)Údatetime)Ú BlueprintÚrequestÚjsonifyÚResponse)Ú MODELS_FILE)Ú load_dataÚ save_dataÚparse_date_to_timestampÚ
2026-07-10 23:59:53 +08:00
safe_sort_keyÚ
api_modelscCs$z ddl}t|ddƒWSYdS)u检查是å¦éœ€è¦å®¡æ ¸rREQUIRE_REVIEWF)ÚappÚgetattr)Ú
app_module©rú3works/param-hub-python/modules/routes/api_models.pyÚis_review_requireds
rz /api/modelscttƒ}tj dd¡dk}|rdd|Dƒ}tj dd¡ ¡ ¡ˆr,‡fdd|Dƒ}tj dd ¡tj d
d ¡d k}ˆd krLt|d d
d}t|ƒSˆdvr[t|fdd
2026-07-10 23:59:53 +08:00
|d}t|ƒS)allÚ0cSsg|]
}| dd¡r|qS)ÚvisibleT)Úget©Ú.0ÚmrrrÚ
<listcomp>ózapi_models.<locals>.<listcomp>Úcs8g|]}ˆ| dd¡ ¡vsˆ| dd¡ ¡vr|qS)ÚnamerÚ organization)rÚlowerr)ÚkeywordrrrsÿÚsortÚdefaultÚorderÚdesccSs4| dd¡ t| dd¡ƒpt| dd¡ƒpd fS)NÚ is_pinnedFÚ publish_daterÚ
created_atr)rr
©ÚxrrrÚ<lambda>$s ÿÿþzapi_models.<locals>.<lambda>)Úkey)rÚ
parametersÚcontext_lengthÚmmlur)r(ÚviewsÚ
updated_atcs
t|ˆƒS)N)r r*)Úsort_byrrr,+s
)r-Úreverse) rrrÚargsrÚstripr!Úsortedr)ÚmodelsÚ hide_hiddenr4r)r"r3rr sýz/api/models/<model_id>cs<ttƒ}tfdd|Dƒdƒ}|stddiƒdfSt|ƒS)Nc3ó |] }|dˆkr|VqdS©ÚidNrr©Úmodel_idrrÚ <genexpr>2óz#api_model_detail.<locals>.<genexpr>ÚerrorúModel not foundé”)rrÚnextr©r>r8Úmodelrr=rÚapi_model_detail/s
2026-07-10 23:59:53 +08:00
rGÚPOST)ÚmethodscCst ¡}tƒr<ddlm}ddlm}|d|dd}| dd¡}|d d
|d d d
|dddœdtdd|ddœƒSt t
2026-07-10 23:59:53 +08:00
ƒ}t   ¡j
dd|d<t ¡ d¡|d<| dd¡|d<| dd¡|d<| dd¡|d<| dd¡|d<| |¡tt
|ƒt|ƒS)Nr)Úsubmit_for_review)Úcreate_notificationz ai-modelsÚweb)Úsourceru未知u新产å“待审核u有新的AI模型"u
"待审核ÚwarningÚreviewr<)Ú review_idÚcategory)ÚtitleÚmessageÚlevelrQÚdataTu*å·²æäº¤å®¡æ ¸ï¼Œè¯·ç­‰å¾…管ç†å‘˜ç¡®è®¤)ÚsuccessrSrPé ú%Y-%m-%d %H:%M:%Sr)rr(rr1r'F)rÚget_jsonrÚmodules.routes.api_reviewsrJÚ modules.routes.api_notificationsrKrrrrÚuuidÚuuid4ÚhexrÚnowÚstrftimeÚappendr )rUrJrKrOÚ product_namer8rrrÚapi_create_model8s0   
 û
2026-07-11 00:34:47 +08:00

rcÚPUTcsjt ¡}ttƒ}tfdd|Dƒdƒ}|stddiƒdfS| |¡t ¡  d¡|d<t
t|ƒt|ƒS)Nc3r:r;rrr=rrr?]r@z#api_update_model.<locals>.<genexpr>rArBrCrXr2) rrYrrrDrÚupdaterr_r`r )r>rUr8rFrr=rÚapi_update_modelYs
2026-07-11 00:34:47 +08:00

rfÚDELETEcs0ttƒ}fdd|Dƒ}tt|ƒtddiƒS)Ncsg|]
}|dˆkr|qS)r<rrr=rrrirz$api_delete_model.<locals>.<listcomp>rVT)rrr r)r>r8rr=rÚapi_delete_modelfs
 rhz/api/models/<model_id>/visiblecsbttƒ}tfdd|Dƒdƒ}|stddiƒdfS| dd¡ |d<tt|ƒtd|ddœƒS) Nc3r:r;rrr=rrr?qr@z+api_toggle_model_visible.<locals>.<genexpr>rArBrCrT)rVr)rrrDrrr rErr=rÚapi_toggle_model_visiblens
2026-07-11 00:34:47 +08:00
riz/api/models/exportÚGETc
Cz0ttƒ}d|t|ƒt ¡ d¡ddœ}tj|ddd}t|dd d
t ¡ d ¡d id
}|WSt yL}zt
dt |ƒiƒdfWYd}~Sd}~ww)u导出所有模型数æ®r8rXz1.0)ÚtypeÚitemsÚcountÚ export_timeÚversionFé)Ú ensure_asciiÚindentzapplication/jsonzContent-Dispositionz#attachment; filename=models-export-z %Y%m%d%H%M%Sz.json)ÚmimetypeÚheadersrAéôN) rrÚlenrr_r`ÚjsonÚdumpsrÚ ExceptionrÚstr)r8Ú export_dataÚjson_strÚresponseÚerrrÚapi_export_models{s& ûý ÿrú/api/models/importc
s8ztjdkrtddddidœƒWSt ¡}|rd|vr$tdd iƒd
fWStj dd ¡}ttƒ}|d}d d
2026-07-10 23:59:53 +08:00
d
gdœ}|D]9‰tfdd|Dƒdƒ}|rh|dkr^|  ˆ¡|dd7<q<|d 
ˆd¡q<| 
2026-07-10 23:59:53 +08:00
ˆ¡|dd7<q<t t|ƒt|ƒWSt y}ztdt
2026-07-11 00:34:47 +08:00
|ƒiƒdfWYd}~Sd}~ww)u导入模型数æ®rjr€rHÚmodeumerge 或 replace)ÚendpointÚmethodÚparamsrlrAu缺少 items 字段iÚmergeTr)rVÚimportedÚupdatedÚskippedc3s$|]
}|dˆdkr|VqdSr;rr©Úitemrrr?¤s€"z$api_import_models.<locals>.<genexpr>NÚreplacer‡érˆr<r†ru)rrrYr5rrrrDrerar ryrz)Ú import_datarr8Úimported_itemsÚresultÚexistingr~rr‰rÚapi_import_modelss2