MeUtils 2024.3.4.13.4.45__py3-none-any.whl → 2025.1.16.17.15.52__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (582) hide show
  1. {MeUtils-2024.3.4.13.4.45.dist-info → MeUtils-2025.1.16.17.15.52.dist-info}/METADATA +38 -32
  2. MeUtils-2025.1.16.17.15.52.dist-info/RECORD +864 -0
  3. {MeUtils-2024.3.4.13.4.45.dist-info → MeUtils-2025.1.16.17.15.52.dist-info}/WHEEL +1 -1
  4. {MeUtils-2024.3.4.13.4.45.dist-info → MeUtils-2025.1.16.17.15.52.dist-info}/entry_points.txt +1 -0
  5. apps/spider.py +24 -8
  6. examples/_openaisdk/4v.py +110 -0
  7. examples/_openaisdk/__init__.py +11 -0
  8. examples/_openaisdk/baichuan.py +38 -0
  9. examples/_openaisdk/bpo.py +138 -0
  10. examples/_openaisdk/chat_latex.py +95 -0
  11. examples/_openaisdk/chattts.py +85 -0
  12. examples/_openaisdk/copilot.py +48 -0
  13. examples/_openaisdk/dalle3.py +48 -0
  14. examples/_openaisdk/deeplx.py +31 -0
  15. examples/_openaisdk/demo.py +77 -0
  16. examples/_openaisdk/embeddings.py +34 -0
  17. examples/_openaisdk/gpt4all.py +69 -0
  18. examples/_openaisdk/gpt_fc.py +23 -0
  19. examples/_openaisdk/gr_vl.py +46 -0
  20. examples/_openaisdk/json_mode.py +12 -0
  21. examples/_openaisdk/kimi.py +91 -0
  22. examples/_openaisdk/kimi_qa.py +57 -0
  23. examples/_openaisdk/minimax.py +75 -0
  24. examples/_openaisdk/open_router.py +48 -0
  25. examples/_openaisdk/openai_aiplus.py +54 -0
  26. examples/_openaisdk/openai_audio.py +20 -0
  27. examples/_openaisdk/openai_baichuan.py +59 -0
  28. examples/_openaisdk/openai_cache.py +37 -0
  29. examples/_openaisdk/openai_chatfire.py +228 -0
  30. examples/_openaisdk/openai_chatfire_all.py +166 -0
  31. examples/_openaisdk/openai_deepinfra.py +55 -0
  32. examples/_openaisdk/openai_deepseek.py +29 -0
  33. examples/_openaisdk/openai_doubao.py +43 -0
  34. examples/_openaisdk/openai_embeddings.py +36 -0
  35. examples/_openaisdk/openai_files.py +57 -0
  36. examples/_openaisdk/openai_gitee.py +33 -0
  37. examples/_openaisdk/openai_god.py +45 -0
  38. examples/_openaisdk/openai_groq.py +240 -0
  39. examples/_openaisdk/openai_images.py +203 -0
  40. examples/_openaisdk/openai_json.py +78 -0
  41. examples/_openaisdk/openai_lingyi.py +59 -0
  42. examples/_openaisdk/openai_modelscope.py +54 -0
  43. examples/_openaisdk/openai_moon.py +55 -0
  44. examples/_openaisdk/openai_oi.py +61 -0
  45. examples/_openaisdk/openai_ppu.py +47 -0
  46. examples/_openaisdk/openai_qwen.py +58 -0
  47. examples/_openaisdk/openai_search.py +42 -0
  48. examples/_openaisdk/openai_sensenova.py +81 -0
  49. examples/_openaisdk/openai_siliconflow.py +52 -0
  50. examples/_openaisdk/openai_step.py +45 -0
  51. examples/_openaisdk/openai_test.py +66 -0
  52. examples/_openaisdk/openai_together.py +57 -0
  53. examples/_openaisdk/openai_tune.py +38 -0
  54. examples/_openaisdk/openai_zhipu.py +59 -0
  55. examples/_openaisdk/ppu.py +28 -0
  56. examples/_openaisdk/rag.py +54 -0
  57. examples/_openaisdk/rag_.py +26 -0
  58. examples/_openaisdk/test.py +52 -0
  59. examples/_openaisdk/x.py +32 -0
  60. examples/_openaisdk/xx.py +29 -0
  61. examples/_openaisdk/zhipu_files.py +47 -0
  62. examples/_openaisdk/zhipu_/346/231/272/350/203/275/344/275/223.py +45 -0
  63. examples/_openaisdk//345/205/234/345/272/225/346/265/213/350/257/225.py +50 -0
  64. examples/_openaisdk//345/244/232/346/250/241/346/200/201/346/265/213/350/257/225.py +76 -0
  65. examples/_openaisdk//345/244/232/346/250/241/346/200/201/346/265/213/350/257/225_.py +56 -0
  66. examples/_openaisdk//346/226/207/344/273/266/351/227/256/347/255/224.py +36 -0
  67. examples/_openaisdk//346/226/207/346/241/243/350/247/243/346/236/220.py +34 -0
  68. examples/_openaisdk//346/250/241/345/236/213/346/265/213/350/257/225.py +53 -0
  69. examples/_openaisdk//351/230/277/351/207/214.py +80 -0
  70. {meutils/serving/jina/__demo → examples/ann}/__init__.py +1 -1
  71. examples/ann/main.py +31 -0
  72. examples/apis/kl.py +28 -0
  73. examples/apis/x.py +17 -0
  74. examples/apis/xx.py +17 -0
  75. examples/arq_demo/demo.py +3 -0
  76. examples/backgroundtasks.py +25 -0
  77. examples/bserver.py +513 -21
  78. examples/cache_demo/HermesCache_demo.py +81 -0
  79. examples/cache_demo/acacge.py +26 -0
  80. examples/cache_demo/x.py +31 -0
  81. {meutils/docarray_utils → examples/caches}/__init__.py +1 -1
  82. examples/caches/llmcache.py +18 -0
  83. examples/celery_demo/product_task.py +2 -0
  84. examples/demo.py +17 -1
  85. examples/fastapi_caching.py +59 -0
  86. {meutils/dependencies → examples/gr}/__init__.py +1 -1
  87. examples/gr/d.py +22 -0
  88. examples/gr/demo.py +30 -0
  89. examples/ip2/345/234/260/345/214/272.py +16 -0
  90. examples/jinja2_demo/j2_demo.py +20 -1
  91. examples/json/346/240/207/345/207/206/345/214/226.py +54 -0
  92. examples/md.py +29 -0
  93. {meutils/serving/jina → examples/nesc}/__init__.py +1 -1
  94. examples/nesc/main.py +76 -0
  95. examples/orm/mysql_orm.py +113 -0
  96. examples/orm/sql_creater.py +57 -0
  97. examples/orm/sqlm.py +134 -0
  98. examples/rq_demo/fns.py +18 -0
  99. examples/rq_demo/redis/351/230/237/345/210/227.py +14 -7
  100. examples/rq_demo/redis/351/230/237/345/210/227_add_chatfire.py +30 -0
  101. examples/size_map.py +43 -0
  102. examples/test.py +59 -0
  103. examples/webs/__init__.py +11 -0
  104. examples/webs/main.py +34 -0
  105. examples/x.py +13 -0
  106. examples//345/216/273/346/260/264/345/215/260.py +20 -0
  107. examples//346/226/207/346/241/243/346/231/272/350/203/275/__init__.py +11 -0
  108. meutils/_utils.py +15 -6
  109. meutils/ai_audio/asr/__init__.py +3 -2
  110. meutils/ai_audio/asr/cf_asr.py +53 -0
  111. meutils/ai_audio/asr/de.py +11 -0
  112. meutils/ai_audio/asr/fast_asr.py +15 -7
  113. meutils/ai_audio/asr/openai_asr.py +83 -6
  114. meutils/ai_audio/fast_asr.py +8 -4
  115. meutils/ai_audio/tts/EdgeTTS.py +33 -7
  116. meutils/ai_audio/tts/openai_tts.py +24 -20
  117. meutils/ai_audio/tts/tts_ui.py +1 -0
  118. meutils/ai_audio/utils.py +9 -0
  119. meutils/ai_cv/__init__.py +0 -1
  120. meutils/ai_cv/ocr.py +3 -2
  121. meutils/ai_cv/utils.py +154 -0
  122. meutils/ai_video/avmerge.py +6 -0
  123. meutils/ai_video/video.py +11 -2
  124. meutils/{api → apis}/__init__.py +1 -1
  125. meutils/apis/ali_apis.py +60 -0
  126. meutils/apis/audio/__init__.py +10 -0
  127. meutils/apis/audio/deepinfra.py +59 -0
  128. meutils/apis/audio/fish.py +248 -0
  129. meutils/apis/baidu/__init__.py +9 -0
  130. meutils/apis/baidu/bdaitpzs.py +229 -0
  131. meutils/apis/baidu/test.py +78 -0
  132. meutils/apis/chatglm/__init__.py +11 -0
  133. meutils/apis/chatglm/glm_video.py +273 -0
  134. meutils/apis/chatglm/glm_video_api.py +116 -0
  135. meutils/apis/chatglm/images.py +63 -0
  136. meutils/apis/chatglm/temp.py +259 -0
  137. meutils/apis/chatglm/x.py +31 -0
  138. meutils/{api → apis}/common.py +10 -6
  139. meutils/apis/fal/__init__.py +11 -0
  140. meutils/apis/fal/files.py +53 -0
  141. meutils/apis/fal/images.py +57 -0
  142. meutils/apis/fal/images_.py +72 -0
  143. meutils/apis/fal/videos.py +77 -0
  144. meutils/apis/firecrawl.py +45 -0
  145. meutils/apis/gitee/__init__.py +11 -0
  146. meutils/apis/gitee/images/__init__.py +9 -0
  147. meutils/apis/gitee/images/kolors.py +99 -0
  148. meutils/apis/hailuoai/__init__.py +11 -0
  149. meutils/apis/hailuoai/demo.py +34 -0
  150. meutils/apis/hailuoai/hasha_new.py +248 -0
  151. meutils/apis/hailuoai/music.py +11 -0
  152. meutils/apis/hailuoai/upload.py +116 -0
  153. meutils/apis/hailuoai/videos.py +460 -0
  154. meutils/apis/hailuoai/yy.py +242 -0
  155. meutils/apis/hf/__init__.py +11 -0
  156. meutils/apis/hf/got_ocr.py +64 -0
  157. meutils/apis/hf/gradio.py +34 -0
  158. meutils/apis/hf/hivisionidphotos.py +80 -0
  159. meutils/apis/hf/kolors.py +68 -0
  160. meutils/apis/hf/kolors_virtual_try_on.py +107 -0
  161. meutils/apis/hf/r.py +53 -0
  162. meutils/apis/hf/x.py +26 -0
  163. meutils/apis/hf//350/257/201/344/273/266/347/205/247.py +41 -0
  164. meutils/apis/hunyuan/__init__.py +11 -0
  165. meutils/apis/hunyuan/image_tools.py +84 -0
  166. meutils/apis/images/__init__.py +11 -0
  167. meutils/apis/images/deepinfra.py +92 -0
  168. meutils/apis/images/demo.py +150 -0
  169. meutils/apis/images/eidt.py +36 -0
  170. meutils/apis/images/flux/__init__.py +11 -0
  171. meutils/apis/images/flux/fluxpro.py +108 -0
  172. meutils/apis/images/flux/mystic.py +116 -0
  173. meutils/apis/images/ideogram/__init__.py +10 -0
  174. meutils/apis/images/ideogram/ideogram_images.py +193 -0
  175. meutils/apis/images/prodia/__init__.py +12 -0
  176. meutils/apis/images/prodia/faceswap.py +76 -0
  177. meutils/apis/images/recraft.py +152 -0
  178. meutils/apis/images/virtual_try_on/__init__.py +11 -0
  179. meutils/apis/images/virtual_try_on/images.py +65 -0
  180. meutils/apis/jiema/24mail.py +96 -0
  181. meutils/apis/jiema/__init__.py +11 -0
  182. meutils/apis/jiema/yezi.py +97 -0
  183. meutils/apis/jimeng/__init__.py +11 -0
  184. meutils/apis/jimeng/common.py +328 -0
  185. meutils/apis/jimeng/doubao.py +68 -0
  186. meutils/apis/jimeng/doubao_utils.py +175 -0
  187. meutils/apis/jimeng/files.py +263 -0
  188. meutils/apis/jimeng/images.py +140 -0
  189. meutils/apis/jimeng/lip_sync.py +11 -0
  190. meutils/apis/jina.py +55 -0
  191. meutils/apis/kling/__init__.py +11 -0
  192. meutils/apis/kling/api.py +60 -0
  193. meutils/apis/kling/images.py +174 -0
  194. meutils/apis/kling/kolors_virtual_try_on.py +111 -0
  195. meutils/apis/kling/kolors_virtual_try_on_web.py +126 -0
  196. meutils/apis/kling/videos.py +67 -0
  197. meutils/apis/kling//351/211/264/346/235/203.py +34 -0
  198. meutils/apis/kuaidi.py +32 -0
  199. meutils/apis/kuaishou/__init__.py +10 -0
  200. meutils/apis/kuaishou/klingai.py +523 -0
  201. meutils/apis/kuaishou/klingai_video.py +197 -0
  202. meutils/apis/kuaishou/kolors.py +189 -0
  203. meutils/apis/llm_qa.py +55 -0
  204. meutils/apis/luma/__init__.py +11 -0
  205. meutils/apis/luma/luma.py +123 -0
  206. meutils/apis/minicpm/__init__.py +9 -0
  207. meutils/apis/minicpm/luca.py +137 -0
  208. meutils/apis/monica/__init__.py +11 -0
  209. meutils/apis/monica/llm.py +11 -0
  210. meutils/apis/napkin/__init__.py +11 -0
  211. meutils/apis/napkin/icons.py +42 -0
  212. meutils/apis/niutrans.py +73 -0
  213. meutils/apis/oneapi/__init__.py +11 -0
  214. meutils/apis/oneapi/channel.py +68 -0
  215. meutils/apis/oneapi/common.py +135 -0
  216. meutils/apis/oneapi/log.py +47 -0
  217. meutils/apis/oneapi/token.py +48 -0
  218. meutils/apis/oneapi/token_.py +112 -0
  219. meutils/apis/oneapi/user.py +100 -0
  220. meutils/apis/oneapi/utils.py +47 -0
  221. meutils/apis/pixverse/__init__.py +11 -0
  222. meutils/apis/pixverse/pixverse.py +150 -0
  223. meutils/apis/proxy/__init__.py +11 -0
  224. meutils/apis/proxy/ips.py +178 -0
  225. meutils/apis/remini/__init__.py +11 -0
  226. meutils/apis/remini/remini.py +89 -0
  227. meutils/apis/replicateai/__init__.py +11 -0
  228. meutils/apis/replicateai/images.py +79 -0
  229. meutils/apis/replicateai/raw.py +53 -0
  230. meutils/apis/runwayml/__init__.py +10 -0
  231. meutils/apis/runwayml/gen.py +143 -0
  232. meutils/apis/search/__init__.py +11 -0
  233. meutils/apis/search/baichuan.py +11 -0
  234. meutils/apis/search/metaso.py +218 -0
  235. meutils/apis/search/metaso_.py +77 -0
  236. meutils/apis/search/n.py +99 -0
  237. meutils/apis/search/searxng.py +42 -0
  238. meutils/apis/search_music.py +39 -0
  239. meutils/apis/siliconflow/__init__.py +9 -0
  240. meutils/apis/siliconflow/audio.py +63 -0
  241. meutils/apis/siliconflow/image_to_image.py +116 -0
  242. meutils/apis/siliconflow/images.py +154 -0
  243. meutils/apis/siliconflow/rerankers.py +40 -0
  244. meutils/apis/siliconflow/text_to_image.py +132 -0
  245. meutils/apis/siliconflow/utils.py +66 -0
  246. meutils/apis/siliconflow/videos.py +102 -0
  247. meutils/apis/sunoai/__init__.py +10 -0
  248. meutils/apis/sunoai/haimian.py +135 -0
  249. meutils/apis/sunoai/suno.py +373 -0
  250. meutils/apis/textcard/__init__.py +11 -0
  251. meutils/apis/textcard/demo.py +25 -0
  252. meutils/apis/textcard/hanyuxinjie.py +81 -0
  253. meutils/apis/textin.py +159 -0
  254. meutils/apis/to_image/__init__.py +11 -0
  255. meutils/apis/to_image/html2image.py +29 -0
  256. meutils/apis/to_image/md.py +29 -0
  257. meutils/apis/to_image/url2image.py +41 -0
  258. meutils/apis/together/__init__.py +11 -0
  259. meutils/apis/together/images.py +80 -0
  260. meutils/apis/translator/__init__.py +9 -0
  261. meutils/apis/translator/deeplx.py +55 -0
  262. meutils/apis/tripo3d/__init__.py +11 -0
  263. meutils/apis/tripo3d/images.py +106 -0
  264. meutils/apis/ts.py +60 -0
  265. meutils/apis/uptime_kuma/__init__.py +11 -0
  266. meutils/apis/uptime_kuma/common.py +56 -0
  267. meutils/apis/uptime_kuma//345/233/275/344/272/247/345/210/206/347/273/204.py +68 -0
  268. meutils/apis/utils.py +47 -0
  269. meutils/apis/videos/__init__.py +11 -0
  270. meutils/apis/videos/sora.py +16 -0
  271. meutils/apis/vidu/__init__.py +9 -0
  272. meutils/apis/vidu/vidu_video.py +254 -0
  273. meutils/apis/vidu/x.py +14 -0
  274. meutils/apis/voice_clone/__init__.py +10 -0
  275. meutils/apis/voice_clone/fish.py +236 -0
  276. meutils/apis/voice_clone/fish_api.py +16 -0
  277. meutils/apis/web_search.py +31 -0
  278. meutils/apis/yezi.py +97 -0
  279. meutils/async_task/__init__.py +13 -0
  280. meutils/async_task/celery_config.py +106 -0
  281. meutils/async_task/common.py +37 -0
  282. meutils/async_task/demo_create_tasks.py +73 -0
  283. meutils/async_task/tasks/__init__.py +11 -0
  284. meutils/async_task/tasks/_all.py +20 -0
  285. meutils/async_task/tasks/hailuo.py +24 -0
  286. meutils/async_task/tasks/kling.py +30 -0
  287. meutils/async_task/tasks/replicateai.py +24 -0
  288. meutils/async_task/tasks/test.py +124 -0
  289. meutils/async_task/tasks/vidu.py +28 -0
  290. meutils/async_task/utils.py +191 -0
  291. meutils/async_task//351/200/232/347/224/250/350/256/276/350/256/241.py +119 -0
  292. meutils/async_utils/asyncer_.py +37 -0
  293. meutils/async_utils/background.py +68 -0
  294. meutils/async_utils/common.py +136 -16
  295. meutils/async_utils/test.py +47 -0
  296. meutils/cache_utils.py +29 -23
  297. meutils/caches/__init__.py +9 -0
  298. meutils/caches/acache.py +45 -0
  299. meutils/caches/redis_cache.py +63 -0
  300. meutils/clis/check_api.py +66 -0
  301. meutils/clis/cli.py +1 -1
  302. meutils/common.py +56 -17
  303. meutils/config_utils/__init__.py +11 -0
  304. meutils/config_utils/lark_utils/__init__.py +11 -0
  305. meutils/config_utils/lark_utils/common.py +385 -0
  306. meutils/config_utils/lark_utils/demo.py +13 -0
  307. meutils/config_utils/lark_utils/x.py +50 -0
  308. meutils/config_utils/manager.py +108 -0
  309. meutils/crawlers/__init__.py +11 -0
  310. meutils/data/VERSION +1 -1
  311. meutils/data/cowboy-hat-face.webp +0 -0
  312. meutils/data/oneapi/FOOTER.md +7 -0
  313. meutils/data/oneapi/NOTICE.md +138 -0
  314. meutils/data/oneapi/__init__.py +15 -0
  315. meutils/db/orm.py +179 -0
  316. meutils/db/redis_db.py +87 -0
  317. meutils/decorators/cache.py +1 -1
  318. meutils/decorators/common.py +84 -5
  319. meutils/decorators/contextmanagers.py +17 -6
  320. meutils/decorators/fastapi_decorator.py +77 -3
  321. meutils/decorators/polling.py +46 -0
  322. meutils/decorators/retry.py +150 -26
  323. meutils/fastapi_utils/__init__.py +11 -0
  324. meutils/fastapi_utils/exceptions/http_error.py +72 -0
  325. meutils/fastapi_utils/exceptions/validation_error.py +44 -0
  326. meutils/hash_utils.py +9 -4
  327. meutils/hooks/__init__.py +11 -0
  328. meutils/hooks/hook_test.py +174 -0
  329. meutils/hooks/wechat.py +162 -0
  330. meutils/hooks/wechat_channel.py +303 -0
  331. meutils/init/evn.py +1 -1
  332. meutils/io/files_utils.py +232 -0
  333. meutils/io/image.py +148 -10
  334. meutils/io/x.py +75 -0
  335. meutils/llm/__init__.py +10 -0
  336. meutils/llm/check_api.py +109 -0
  337. meutils/llm/check_utils.py +106 -0
  338. meutils/llm/clients.py +38 -0
  339. meutils/llm/completions/__init__.py +11 -0
  340. meutils/llm/completions/agents/__init__.py +11 -0
  341. meutils/llm/completions/agents/file.py +125 -0
  342. meutils/llm/completions/cp.py +112 -0
  343. meutils/llm/completions/delilegal.py +135 -0
  344. meutils/llm/completions/dify.py +81 -0
  345. meutils/llm/completions/kimi.py +47 -0
  346. meutils/llm/completions/modelscope.py +11 -0
  347. meutils/{fileparser/filetype.py → llm/completions/oi.py} +5 -3
  348. meutils/llm/completions/rag/__init__.py +11 -0
  349. meutils/llm/completions/rag/fire.py +157 -0
  350. meutils/llm/completions/rag/qwen.py +11 -0
  351. meutils/llm/completions/rag/rag.py +41 -0
  352. meutils/llm/completions/rag.py +38 -0
  353. meutils/llm/completions/tryblend.py +201 -0
  354. meutils/llm/completions/tune.py +284 -0
  355. meutils/llm/completions/x.py +26 -0
  356. meutils/llm/completions/xx.py +61 -0
  357. meutils/llm/completions/yuanbao.py +176 -0
  358. meutils/llm/demo.py +114 -0
  359. meutils/llm/functions/__init__.py +11 -0
  360. meutils/llm/mappers.py +15 -0
  361. meutils/llm/openai_utils/__init__.py +11 -0
  362. meutils/llm/openai_utils/common.py +284 -0
  363. meutils/llm/openai_utils/tool_outputs.py +45 -0
  364. meutils/llm/output_parsers/__init__.py +80 -0
  365. meutils/llm/prompts/__init__.py +244 -0
  366. meutils/llm/prompts/demo.py +155 -0
  367. meutils/llm/prompts/html2image_test.py +19 -0
  368. meutils/llm/utils.py +133 -0
  369. meutils/llm/x.py +75 -0
  370. meutils/notice/feishu.py +40 -9
  371. meutils/notice/wechat.py +23 -21
  372. meutils/np_utils.py +10 -1
  373. meutils/office_automation/pdf.py +6 -1
  374. meutils/oss/__init__.py +20 -0
  375. meutils/oss/minio_oss.py +184 -0
  376. meutils/oss/minio_utils.py +48 -0
  377. meutils/other/__demo.py +6 -4
  378. meutils/pandas_utils/__init__.py +1 -0
  379. meutils/pandas_utils/common.py +31 -0
  380. meutils/pandas_utils/pd_utils.py +10 -6
  381. meutils/parsers/__init__.py +10 -0
  382. meutils/parsers/file_parsers.py +110 -0
  383. meutils/parsers/fileparser/demo.py +41 -0
  384. meutils/parsers/fileparser/filetype.py +41 -0
  385. meutils/pay.py +37 -0
  386. meutils/pipe.py +37 -4
  387. meutils/playwright_utils/common.py +20 -12
  388. meutils/plots/common.py +35 -34
  389. meutils/queues/demo.py +56 -0
  390. meutils/queues/smooth_queue.py +120 -0
  391. meutils/queues/uniform_queue.py +3 -1
  392. meutils/request_utils/__init__.py +26 -2
  393. meutils/request_utils/ark.py +47 -0
  394. meutils/request_utils/crawler.py +34 -5
  395. meutils/request_utils/jwt_utils/__init__.py +11 -0
  396. meutils/request_utils/jwt_utils/common.py +42 -0
  397. meutils/request_utils/volc.py +160 -0
  398. meutils/schemas/__init__.py +0 -1
  399. meutils/schemas/baidu_types.py +70 -0
  400. meutils/schemas/batch_types.py +450 -0
  401. meutils/schemas/celery_types.py +64 -0
  402. meutils/schemas/chatfire_types.py +15 -0
  403. meutils/schemas/chatglm_types.py +197 -0
  404. meutils/schemas/db/__init__.py +11 -0
  405. meutils/schemas/db/oneapi_types.py +117 -0
  406. meutils/schemas/dify_types.py +40 -0
  407. meutils/schemas/embedding.py +31 -0
  408. meutils/schemas/fal_types.py +13 -0
  409. meutils/schemas/fish_types.py +11 -0
  410. meutils/schemas/hailuo_types.py +208 -0
  411. meutils/schemas/haimian_types.py +51 -0
  412. meutils/schemas/idphoto_types.py +43 -0
  413. meutils/schemas/image_types.py +476 -0
  414. meutils/schemas/jimeng_types.py +28 -0
  415. meutils/schemas/jina_types.py +67 -0
  416. meutils/schemas/kimi_types.py +86 -0
  417. meutils/schemas/kling_types.py +235 -0
  418. meutils/schemas/kuaishou_types.py +328 -0
  419. meutils/schemas/luma_types.py +59 -0
  420. meutils/schemas/message_types.py +165 -0
  421. meutils/schemas/message_types_.py +219 -0
  422. meutils/schemas/metaso_types.py +64 -0
  423. meutils/schemas/napkin_types.py +85 -0
  424. meutils/schemas/ocr_types.py +37 -0
  425. meutils/schemas/oneapi/__init__.py +11 -0
  426. meutils/schemas/oneapi/_types.py +49 -0
  427. meutils/schemas/oneapi/common.py +883 -0
  428. meutils/schemas/oneapi/icons.py +30 -0
  429. meutils/schemas/oneapi/model_group_info.py +48 -0
  430. meutils/schemas/oneapi/model_info.py +34 -0
  431. meutils/schemas/oneapi/models.py +26 -0
  432. meutils/schemas/oneapi/x.py +26 -0
  433. meutils/schemas/oneapi//351/207/215/345/256/232/345/220/221.py +132 -0
  434. meutils/schemas/openai_api_protocol.py +411 -0
  435. meutils/schemas/openai_types.py +366 -0
  436. meutils/schemas/pixverse_types.py +88 -0
  437. meutils/schemas/playwright_types.py +57 -0
  438. meutils/schemas/prodia_types.py +19 -0
  439. meutils/schemas/replicate_types.py +112 -0
  440. meutils/schemas/request_types.py +20 -0
  441. meutils/schemas/runwayml_types.py +190 -0
  442. meutils/schemas/siliconflow_types.py +80 -0
  443. meutils/schemas/step_types.py +19 -0
  444. meutils/schemas/suno_types.py +319 -0
  445. meutils/schemas/task_types.py +192 -0
  446. meutils/schemas/translator_types.py +29 -0
  447. meutils/schemas/tripo3d_types.py +57 -0
  448. meutils/schemas/tryblend_types.py +51 -0
  449. meutils/schemas/video_types.py +62 -0
  450. meutils/schemas/vidu_types.py +350 -0
  451. meutils/schemas/wechat_types.py +316 -0
  452. meutils/schemas/yuanbao_types.py +260 -0
  453. meutils/serving/celery/__init__.py +8 -0
  454. meutils/serving/celery/config.py +115 -0
  455. meutils/serving/celery/router.py +4 -6
  456. meutils/serving/celery/tasks.py +6 -4
  457. meutils/serving/celery//351/200/232/347/224/250/350/256/276/350/256/241.py +119 -0
  458. meutils/serving/fastapi/common.py +27 -31
  459. meutils/serving/fastapi/dependencies/__init__.py +0 -1
  460. meutils/serving/fastapi/dependencies/auth.py +55 -2
  461. meutils/serving/fastapi/exceptions/http_error.py +67 -2
  462. meutils/serving/fastapi/exceptions/validation_error.py +18 -2
  463. meutils/serving/fastapi/lifespans.py +73 -0
  464. meutils/serving/fastapi/routers/scheduler.py +12 -0
  465. meutils/serving/fastapi/routers/screenshot.py +47 -0
  466. meutils/serving/fastapi/routers/spider.py +8 -3
  467. meutils/serving/fastapi/routers/task.py +48 -0
  468. meutils/serving/fastapi/utils.py +48 -1
  469. meutils/serving/streamlit/common.py +1 -1
  470. meutils/smooth_utils.py +3 -0
  471. meutils/str_utils/__init__.py +22 -3
  472. meutils/str_utils/json_utils.py +7 -0
  473. meutils/str_utils/regular_expression.py +102 -10
  474. meutils/templates/xx.html +21 -0
  475. meutils/templates/xxx.html +117 -0
  476. meutils/todo.py +12 -0
  477. meutils/tools/token_monitor.py +33 -0
  478. MeUtils-2024.3.4.13.4.45.dist-info/RECORD +0 -540
  479. meutils/ai_audio/asr/subtitle.srt +0 -40
  480. meutils/ai_audio/demo.ipynb +0 -1215
  481. meutils/ai_audio/example.srt +0 -348
  482. meutils/ai_audio/new.srt +0 -179
  483. meutils/ai_audio/subtitles.srt +0 -696
  484. meutils/ai_audio/tts/new.srt +0 -179
  485. meutils/ai_audio//350/247/206/351/242/221/345/220/210/345/271/266.sh +0 -32
  486. meutils/ai_cv/1.jpg +0 -0
  487. meutils/ai_cv/197.jpg +0 -0
  488. meutils/ai_cv/2.jpg +0 -0
  489. meutils/ai_cv/img.png +0 -0
  490. meutils/ai_cv/invoice.jpg +0 -0
  491. meutils/ai_cv/tbl.png +0 -0
  492. meutils/ai_cv/test.png +0 -0
  493. meutils/ann/README.md +0 -33
  494. meutils/ann/README_gensim.md +0 -47
  495. meutils/ann/examples/client.py +0 -59
  496. meutils/ann/examples/demo.py +0 -24
  497. meutils/api/deeplx.py +0 -29
  498. meutils/api/qr.png +0 -0
  499. meutils/clis/README.md +0 -29
  500. meutils/clis/__test.sh +0 -17
  501. meutils/clis/deepseek.txt +0 -8
  502. meutils/clis/deepseek_13003330042.json +0 -1
  503. meutils/clis/deepseek_13003872192.json +0 -1
  504. meutils/clis/deepseek_13852263862.json +0 -1
  505. meutils/clis/deepseek_13913898681.json +0 -1
  506. meutils/clis/deepseek_13962978617.json +0 -1
  507. meutils/clis/deepseek_15251801790.json +0 -1
  508. meutils/clis/deepseek_15720826383.json +0 -1
  509. meutils/clis/deepseek_18395563611.json +0 -1
  510. meutils/clis/deepseek_313303303@qq.com.json +0 -1
  511. meutils/clis/kimi_state.json +0 -1
  512. meutils/cmds/README.md +0 -55
  513. meutils/coding/__init__.py +0 -11
  514. meutils/coding/find132.py +0 -40
  515. meutils/db/README.md +0 -51
  516. meutils/decorators/README.md +0 -17
  517. meutils/docarray_utils/demo_es.py +0 -34
  518. meutils/docarray_utils/demo_hnsw.py +0 -55
  519. meutils/docarray_utils/in_memory.py +0 -38
  520. meutils/docarray_utils//346/224/271/351/200/240/344/270/213hnsw.py +0 -43
  521. meutils/io/file.py +0 -20
  522. meutils/io/img.png +0 -0
  523. meutils/io/x.yml +0 -1
  524. meutils/notice/img.png +0 -0
  525. meutils/notice/todo.md +0 -10
  526. meutils/office_automation//346/212/225/350/265/204/347/256/241/347/220/206/347/263/273/347/273/237O3.2_/344/272/244/346/230/223/347/273/204.pdm +0 -22469
  527. meutils/playwright_utils/__test.sh +0 -2
  528. meutils/playwright_utils/kimi1_cookies.json +0 -1
  529. meutils/playwright_utils/kimi2_cookies.json +0 -1
  530. meutils/playwright_utils/kimi_cookies.json +0 -93
  531. meutils/serving/README.md +0 -1
  532. meutils/serving/celery/_run.sh +0 -10
  533. meutils/serving/gui/run.sh +0 -9
  534. meutils/serving/jina/__demo/client.py +0 -42
  535. meutils/serving/jina/__demo/flow.svg +0 -1
  536. meutils/serving/jina/__demo/s.py +0 -34
  537. meutils/serving/jina/__demo/s2.py +0 -37
  538. meutils/serving/jina/__demo/server.py +0 -83
  539. meutils/serving/jina/__demo/test.py +0 -40
  540. meutils/serving/jina/executors/SentenceEncoder.py +0 -62
  541. meutils/serving/jina/executors/SentenceEncoder_.py +0 -63
  542. meutils/serving/jina/executors/__init__.py +0 -46
  543. meutils/serving/jina/executors/base.py +0 -40
  544. meutils/serving/jina/nlp_serving/__init__.py +0 -11
  545. meutils/serving/jina/nlp_serving/word_segmentation.py +0 -40
  546. meutils/serving/streamlit/conf.yaml +0 -5
  547. meutils/serving/streamlit/ocr.png +0 -0
  548. meutils/serving/streamlit/run.sh +0 -17
  549. meutils/serving/webui/.streamlit/_config.toml +0 -186
  550. meutils/serving/webui/.streamlit/config.toml +0 -26
  551. meutils/serving/webui/pages/_1_/345/210/206/350/257/215.py +0 -56
  552. meutils/serving/webui/pages/_2_/350/257/215/346/200/247/346/240/207/346/263/250/344/270/216/345/256/236/344/275/223/350/257/206/345/210/253.py +0 -54
  553. meutils/serving/webui/pages/_3_/346/226/207/346/234/254/345/214/271/351/205/215.py +0 -64
  554. meutils/serving/webui/run.sh +0 -9
  555. meutils/spark/__init__.py +0 -26
  556. meutils/tools/monitor.yml +0 -29
  557. {MeUtils-2024.3.4.13.4.45.dist-info → MeUtils-2025.1.16.17.15.52.dist-info}/LICENSE +0 -0
  558. {MeUtils-2024.3.4.13.4.45.dist-info → MeUtils-2025.1.16.17.15.52.dist-info}/top_level.txt +0 -0
  559. {meutils → examples}/comp_utils/__init__.py +0 -0
  560. {meutils → examples}/comp_utils/reverse_metric.py +0 -0
  561. /meutils/{fileparser/README.md → fastapi_utils/exceptions/__init__.py} +0 -0
  562. /meutils/{fileparser → parsers/fileparser}/PDF/346/212/275/345/217/226.py" +0 -0
  563. /meutils/{fileparser → parsers/fileparser}/__init__.py +0 -0
  564. /meutils/{fileparser → parsers/fileparser}/common.py +0 -0
  565. /meutils/{fileparser → parsers/fileparser}/filetype/__init__.py +0 -0
  566. /meutils/{fileparser → parsers/fileparser}/filetype/__main__.py +0 -0
  567. /meutils/{fileparser → parsers/fileparser}/filetype/filetype.py +0 -0
  568. /meutils/{fileparser → parsers/fileparser}/filetype/helpers.py +0 -0
  569. /meutils/{fileparser → parsers/fileparser}/filetype/match.py +0 -0
  570. /meutils/{fileparser → parsers/fileparser}/filetype/types/__init__.py +0 -0
  571. /meutils/{fileparser → parsers/fileparser}/filetype/types/application.py +0 -0
  572. /meutils/{fileparser → parsers/fileparser}/filetype/types/archive.py +0 -0
  573. /meutils/{fileparser → parsers/fileparser}/filetype/types/audio.py +0 -0
  574. /meutils/{fileparser → parsers/fileparser}/filetype/types/base.py +0 -0
  575. /meutils/{fileparser → parsers/fileparser}/filetype/types/document.py +0 -0
  576. /meutils/{fileparser → parsers/fileparser}/filetype/types/font.py +0 -0
  577. /meutils/{fileparser → parsers/fileparser}/filetype/types/image.py +0 -0
  578. /meutils/{fileparser → parsers/fileparser}/filetype/types/isobmff.py +0 -0
  579. /meutils/{fileparser → parsers/fileparser}/filetype/types/video.py +0 -0
  580. /meutils/{fileparser → parsers/fileparser}/filetype/utils.py +0 -0
  581. /meutils/{fileparser → parsers/fileparser}/pdf.py +0 -0
  582. /meutils/{fileparser → parsers/fileparser}//350/241/250/346/240/274/346/212/275/345/217/226.py" +0 -0
@@ -0,0 +1,37 @@
1
+ #!/usr/bin/env python
2
+ # -*- coding: utf-8 -*-
3
+ # @Project : AI. @by PyCharm
4
+ # @File : openai_cache
5
+ # @Time : 2024/2/28 13:23
6
+ # @Author : betterme
7
+ # @WeChat : meutils
8
+ # @Software : PyCharm
9
+ # @Description :
10
+ import time
11
+
12
+ from meutils.pipe import *
13
+ from openai import OpenAI, AsyncOpenAI
14
+
15
+ client = OpenAI()
16
+
17
+
18
+ @timer()
19
+ @lru_cache
20
+ def create(client, arg=None):
21
+
22
+ data = {
23
+ 'model': 'gpt-3.5-turbo',
24
+
25
+ 'messages': [
26
+ {'role': 'system', 'content': 'You are a helpful assistant.'},
27
+ {'role': 'user', 'content': 'hi'}
28
+ ],
29
+ 'stream': True,
30
+
31
+ }
32
+
33
+ return client.chat.completions.create(**data)
34
+
35
+
36
+ if __name__ == '__main__':
37
+ create(client)
@@ -0,0 +1,228 @@
1
+ #!/usr/bin/env python
2
+ # -*- coding: utf-8 -*-
3
+ # @Project : AI. @by PyCharm
4
+ # @File : openai_chatfire
5
+ # @Time : 2024/6/27 17:41
6
+ # @Author : betterme
7
+ # @WeChat : meutils
8
+ # @Software : PyCharm
9
+ # @Description :
10
+ import os
11
+
12
+ from meutils.pipe import *
13
+
14
+ from openai import OpenAI, ChatCompletion
15
+
16
+ model = "moonshot-v1-8k"
17
+
18
+ from meutils.llm.openai_utils import to_openai_completion_params
19
+
20
+
21
+ # data = {'model': 'glm-4-9b-chat', 'messages': [{'role': 'user', 'content': '请你担任资深产品经理和资深DBA。\n为“芜湖佳羽信息科技有限公司”,设计名为《智能控制系统安全保护与防护软件》的后台管理系统。请你根据这个课题,设计该系统的模块功能。只需要你输出模块名称。\n - 至少输出12个模块, 所有模块都需要与该课题的业务紧密相关\n - 不需要用户管理, 角色管理, 菜单管理, 权限管理, 字典管理, 通知管理, 系统配置管理,登录模块,登录日志,操作日志等模块。'}, {'role': 'assistant', 'content': '\n1. 安全策略配置模块\n2. 防火墙设置模块\n3. 入侵检测系统管理模块\n4. 数据库安全模块\n5. 访问控制管理模块\n6. 定制化防护规则模块\n7. 安全事件响应与处理模块\n8. 安全漏洞扫描与修复模块\n9. 审计日志分析模块\n10. 用户行为分析模块\n11. 安全漏洞库管理模块\n12. 安全防护仪表盘模块'}, {'role': 'user', 'content': '请根据上述的模块, 设计使用MySQL实现数据库建表语句\n- 要求数据库建表语句有描述信息,对每个字段加上Comment注释,对每个表加上Comment注释;\n- 不需要除主键外的任何索引,请帮我移除索引和外键关系等约束;\n- 需要把关联其它表的信息,除了关联的ID还需要增加name的冗余字段方便我展示,每张表都需要\n- 枚举类型的字段,需要使用varchar类型代替,枚举值需要使用注释进行说明\n- 主键需要进行自增;\n- 所有的表名都需要有统一前缀tb_\n- 表名和字段名都需要小写,并且用下划线进行分割\n- 请给每张表都加上,创建人、创建时间、修改人、修改时间字段, 放在最后。\n- 数据表的字段根据业务,尽量多,尽量丰富些\n不要说别的信息,只需要给我提供MYSQL建表(CREATE TABLE)语句即可,\n因为篇幅的原因,需要你分批输出,每次输出5张表。继续输出的表,不要和前面输出的重复了。不需要用户表, 角色表, 菜单表, 权限表, 字典表, 通知表, 系统配置表,登录相关的表,日志相关的表等数据表。'}, {'role': 'assistant', 'content': "\n以下是第一组5张数据库建表语句:\n\nsql\n-- 表:tb_firewall_settings\nCREATE TABLE tb_firewall_settings (\n id int NOT NULL AUTO_INCREMENT COMMENT '主键',\n name varchar(255) NOT NULL COMMENT '防火墙策略名称',\n description varchar(500) COMMENT '描述',\n action varchar(50) NOT NULL COMMENT '动作:允许或拒绝',\n port_range varchar(255) COMMENT '端口号范围',\n protocol varchar(50) COMMENT '协议:TCP, UDP等',\n enable boolean NOT NULL COMMENT '是否启用',\n create_by varchar(255) COMMENT '创建人',\n create_time datetime COMMENT '创建时间',\n update_by varchar(255) COMMENT '修改人',\n update_time datetime COMMENT '修改时间',\n PRIMARY KEY (id)\n) COMMENT='防火墙策略设置表';\n\n-- 表:tb_intrusion_detection_system\nCREATE TABLE tb_intrusion_detection_system (\n id int NOT NULL AUTO_INCREMENT COMMENT '主键',\n name varchar(255) NOT NULL COMMENT '入侵检测系统名称',\n type varchar(100) NOT NULL COMMENT '类型:网络型,系统型等',\n description varchar(500) COMMENT '描述',\n status varchar(50) COMMENT '状态:启用,禁用等',\n last_scanned datetime COMMENT '最后扫描时间',\n create_by varchar(255) COMMENT '创建人',\n create_time datetime COMMENT '创建时间',\n update_by varchar(255) COMMENT '修改人',\n update_time datetime COMMENT '修改时间',\n PRIMARY KEY (id)\n) COMMENT='入侵检测系统信息表';\n\n-- 表:tb_database_security\nCREATE TABLE tb_database_security (\n id int NOT NULL AUTO_INCREMENT COMMENT '主键',\n database_name varchar(255) NOT NULL COMMENT '数据库名称',\n username varchar(255) NOT NULL COMMENT '用户名',\n password_hash varchar(255) NOT NULL COMMENT '密码哈希',\n last_login datetime COMMENT '最后登录时间',\n access_level varchar(100) COMMENT '访问级别:读,写,读写等',\n block_status boolean NOT NULL COMMENT '是否被阻止',\n create_by varchar(255) COMMENT '创建人',\n create_time datetime COMMENT '创建时间',\n update_by varchar(255) COMMENT '修改人',\n update_time datetime COMMENT '修改时间',\n PRIMARY KEY (id)\n) COMMENT='数据库安全信息表';\n\n-- 表:tb_access_control_rules\nCREATE TABLE tb_access_control_rules (\n id int NOT NULL AUTO_INCREMENT COMMENT '主键',\n resource_name varchar(255) NOT NULL COMMENT '资源名称',\n action varchar(50) NOT NULL COMMENT '动作:查看,修改等',\n allowed_users varchar(500) COMMENT '允许的用户列表',\n denied_users varchar(500) COMMENT '拒绝的用户列表',\n create_by varchar(255) COMMENT '创建人',\n create_time datetime COMMENT '创建时间',\n update_by varchar(255) COMMENT '修改人',\n update_time datetime COMMENT '修改时间',\n PRIMARY KEY (id)\n) COMMENT='访问控制规则表';\n\n-- 表:tb_custom_protection_rules\nCREATE TABLE tb_custom_protection_rules (\n id int NOT NULL AUTO_INCREMENT COMMENT '主键',\n rule_name varchar(255) NOT NULL COMMENT '规则名称',\n conditions TEXT COMMENT '规则条件',\n actions TEXT COMMENT '规则动作',\n enabled boolean NOT NULL COMMENT '是否启用',\n create_by varchar(255) COMMENT '创建人',\n create_time datetime COMMENT '创建时间',\n update_by varchar(255) COMMENT '修改人',\n update_time datetime COMMENT '修改时间',\n PRIMARY KEY (id)\n) COMMENT='自定义防护规则表';\n\n\n继续输出下一组5张表:\n\nsql\n-- 表:tb_security_incident_response\nCREATE TABLE tb_security_incident_response (\n id int NOT NULL AUTO_INCREMENT COMMENT '主键',\n incident_id varchar(255) NOT NULL COMMENT '事件ID',\n event_time datetime NOT NULL COMMENT '事件时间',\n response_time datetime COMMENT '响应时间',\n action_taken TEXT COMMENT '采取的行动',\n notes TEXT COMMENT '备注',\n create_by varchar(255) COMMENT '创建人',\n create_time datetime COMMENT '创建时间',\n update_by varchar(255) COMMENT '修改人',\n update_time datetime COMMENT '修改时间',\n PRIMARY KEY (id)\n) COMMENT='安全事件响应与处理记录表';\n\n-- 表:tb_vulnerability_scanning_and_fix\nCREATE TABLE tb_vulnerability_scanning_and_fix (\n id int NOT NULL AUTO_INCREMENT COMMENT '主键',\n scan_id varchar(255) NOT NULL COMMENT '扫描ID',\n scan_time datetime NOT NULL COMMENT '扫描时间',\n vulnerability_id varchar(255) NOT NULL COMMENT '漏洞ID',\n severity_level varchar(50) NOT NULL COMMENT '严重程度:高,中,低等',\n description TEXT COMMENT '漏洞描述',\n fix_status varchar(50) COMMENT '修复状态:待修复,已修复等',\n create_by varchar(255) COMMENT '创建人',\n create_time datetime COMMENT '创建时间',\n update_by varchar(255) COMMENT '修改人',\n update_time datetime COMMENT '修改时间',\n PRIMARY KEY (id)\n) COMMENT='漏洞扫描与修复记录表';\n\n-- 表:tb_audit_log_analysis\nCREATE TABLE tb_audit_log_analysis (\n id int NOT NULL AUTO_INCREMENT COMMENT '主键',\n log_id varchar(255) NOT NULL COMMENT '日志ID',\n user_id varchar(255) NOT NULL COMMENT '用户ID',\n action_time datetime NOT NULL COMMENT '操作时间',\n resource_name varchar(255) COMMENT '资源名称',\n action_type varchar(100) COMMENT '动作类型:登录,退出等',\n result varchar(50) COMMENT '结果:成功,失败等',\n create_by varchar(255) COMMENT '创建人',\n create_time datetime COMMENT '创建时间',\n update_by varchar(255) COMMENT '修改人',\n update_time datetime COMMENT '修改时间',\n PRIMARY KEY (id)\n) COMMENT='审计日志分析表';\n\n-- 表:tb_user_behavior_analysis\nCREATE TABLE tb_user_behavior_analysis (\n id int NOT NULL AUTO_INCREMENT COMMENT '主键',\n user_id varchar(255) NOT NULL COMMENT '用户ID',\n behavior_type varchar(100) NOT NULL COMMENT '行为类型:登录异常,操作异常等',\n behavior_detail TEXT COMMENT '行为详情',\n detected_time datetime NOT NULL COMMENT '检测时间',\n create_by varchar(255) COMMENT '创建人',\n create_time datetime COMMENT '创建时间',\n update_by varchar(255) COMMENT '修改人',\n update_time datetime COMMENT '修改时间',\n PRIMARY KEY (id)\n) COMMENT='用户行为分析表';\n\n-- 表:tb_vulnerability_library\nCREATE TABLE tb_vulnerability_library (\n id int NOT NULL AUTO_INCREMENT COMMENT '主键',\n vulnerability_id varchar(255) NOT NULL COMMENT '漏洞ID',\n category varchar(100) COMMENT '类别:SQL注入,跨站脚本等',\n description TEXT COMMENT '漏洞描述',\n severity_level varchar(50) COMMENT '严重程度:高,中,低等',\n fix_document TEXT COMMENT '修复文档',\n create_by varchar(255) COMMENT '创建人',\n create_time datetime COMMENT '创建时间',\n update_by varchar(255) COMMENT '修改人',\n update_time datetime COMMENT '修改时间',\n PRIMARY KEY (id)\n) COMMENT='安全漏洞库管理表';\n\n\n继续输出下一组5张表:\n\n```sql\n-- 表:tb_security_dashboard\nCREATE TABLE tb_security_dashboard (\n id int NOT NULL AUTO_INCREMENT COMMENT '主键',\n dashboard_name varchar(255) NOT NULL COMMENT '仪表盘名称',\n summary_report TEXT COMMENT '总结报告',\n metrics_data TEXT COMMENT '指标数据',\n create_by varchar(255) COMMENT '创建人',\n create_time datetime COMMENT '创建时间',\n update_by varchar(255) COMMENT '修改人',\n update_time datetime COMMENT '修改时间',\n PRIMARY KEY (id)\n) COMMENT='安全防护仪表盘表';\n\n-- 表:tb_security_policy\nCREATE TABLE tb_security_policy (\n id int NOT NULL AUTO_INCREMENT COMMENT '主键',\n policy_name varchar(255) NOT NULL COMMENT '策略名称',\n policy_content TEXT COMMENT '策略内容',\n target_systems TEXT COMMENT '目标系统',\n apply_method varchar(100) COMMENT '应用方法:自动,手动等',\n status varchar(50) COMMENT '状态:启用,禁用等',\n create_by varchar(255) COMMENT '创建人',\n create_time datetime COMMENT '创建时间',\n update_by varchar(255) COMMENT '修改人',\n update_time datetime COMMENT '修改时间',\n PRIMARY KEY (id)\n) COMMENT='安全策略表';\n\n-- 表:tb_network_packet_analysis\nCREATE TABLE tb_network_packet_analysis (\n id int NOT NULL AUTO_INCREMENT COMMENT '主键',\n packet_id varchar(255) NOT NULL COMMENT '数据包ID',\n source_ip varchar(255) NOT NULL COMMENT '源IP地址',\n destination_ip varchar(255) NOT NULL COMMENT '目的IP地址',\n protocol varchar(50) NOT NULL COMMENT '协议:TCP, UDP, ICMP等',\n packet_size int NOT NULL COMMENT '数据包大小',\n packet_capture_time datetime NOT NULL COMMENT '捕获时间',\n create_by varchar(255) COMMENT '创建人',\n create_time datetime COMMENT '创建时间',\n update_by varchar(255) COMMENT '修改人',\n update_time datetime COMMENT '修改时间',\n PRIMARY KEY (id)\n) COMMENT='网络数据包分析表';\n\n-- 表:tb_device_management\nCREATE TABLE tb_device_management (\n id int NOT NULL AUTO_INCREMENT COMMENT '主键',\n device_id varchar(255) NOT NULL COMMENT '设备ID',\n device_name varchar(255)"}, {'role': 'user', 'content': '继续'}], 'temperature': 0.99, 'top_p': 0.99, 'n': 1, 'max_tokens': 2048, 'stop': None, 'stream': False, 'presence_penalty': 0.0, 'frequency_penalty': 0.0, 'user': None, 'response_format': None, 'function_call': None, 'last_content': '继续', 'payload': {}, 'return_raw_response': None, 'additional_kwargs': {}, 'refs': [], 'file_ids': [], 'search': None, 'use_search': None, 'assistant_id': '65940acff94777010aa6b796', 'conversation_id': ''}
22
+ def check_models(models, api_key=os.getenv("OPENAI_API_KEY_GUOCHAN")):
23
+ messages = [
24
+ {"role": "user", "content": "1+1"},
25
+ {"role": "assistant", "content": "好的"},
26
+
27
+ # {"role": "system", "content": "你是个机器人"},
28
+ {"role": "user", "content": "你是谁"},
29
+ ]
30
+
31
+ for model in models:
32
+ print(f"""\n\n{"-" * 32}{model}{"-" * 32}\n\n""")
33
+ try:
34
+
35
+ completion = OpenAI(
36
+ api_key=api_key,
37
+ base_url="https://api.chatfire.cn/v1"
38
+ # base_url="https://api.chatfire.cc/v1"
39
+ # base_url="https://rix.chatfire.cn/v1"
40
+
41
+ ).chat.completions.create(
42
+ model=model,
43
+ messages=messages,
44
+ stream=False,
45
+ temperature=1,
46
+ # top_p=0.9,
47
+ top_p=1,
48
+ max_tokens=100,
49
+
50
+ # **to_openai_completion_params(data)
51
+
52
+ )
53
+ print(f"""\n\n{"-" * 32}非流{"-" * 32}\n\n""")
54
+ print(completion)
55
+
56
+ completion = OpenAI(
57
+ api_key=api_key
58
+ ).chat.completions.create(
59
+ model=model,
60
+ messages=messages,
61
+ stream=True,
62
+ temperature=0,
63
+ top_p=0,
64
+ max_tokens=100,
65
+
66
+ )
67
+ print(f"""\n\n{"-" * 32}流{"-" * 32}\n\n""")
68
+
69
+ for chunk in completion:
70
+ print(chunk)
71
+
72
+ except Exception as e:
73
+ logger.debug(e)
74
+ logger.error(model)
75
+
76
+
77
+ if __name__ == '__main__':
78
+ # models = """
79
+ # yi-large
80
+ # yi-large-rag
81
+ # yi-large-turbo
82
+ # yi-medium
83
+ # yi-medium-200k
84
+ # """
85
+
86
+ # models = """
87
+ # qwen-long
88
+ # qwen-plus
89
+ # qwen-max
90
+ # qwen-max-longcontext
91
+ # farui-plus
92
+ # """.split()
93
+
94
+ # models = """
95
+ # deepseek-coder
96
+ # deepseek-chat
97
+ # """
98
+ #
99
+ # models ="""
100
+ # moonshot-v1-8k
101
+ # moonshot-v1-32k
102
+ # moonshot-v1-128k
103
+ # """
104
+
105
+ # models = """
106
+ # qwen-turbo,qwen2-1.5b-instruct,qwen2-7b-instruct,qwen2-72b-instruct,qwen2-57b-a14b-instruct,qwen1.5-7b-chat,qwen1.5-14b-chat,qwen1.5-32b-chat,qwen1.5-110b-chat
107
+ # """.strip().split(',')
108
+
109
+ # models = ['glm-4']
110
+ models = {
111
+ # "SenseChat-Turbo": 1,
112
+ # "SenseChat": 6,
113
+ # "SenseChat-32K": 18, # 不支持
114
+ # "SenseChat-128K": 30, # 不支持
115
+ # "SenseChat-5": 20, # 最新版本
116
+ #
117
+ # "SenseChat-Vision": 50, # 图生文 待调整参数
118
+ # "SenseChat-Character": 6, # 不支持
119
+ # "SenseChat-Character-Pro": 7.5, # 不支持
120
+
121
+ "SenseChat-5-Cantonese": 13.5, # 粤语大模型
122
+ }
123
+ # models = list(models.keys())
124
+ # models = ['gemini-1.5-pro-latest']
125
+ # check_models(models)
126
+ # models = [
127
+ # # 'spark-lite',
128
+ # # 'spark-pro',
129
+ # 'spark-max',
130
+ # 'spark-ultra',
131
+ #
132
+ # ]
133
+ # models = ['gemma2-27b-it', "gemini-1.5-pro-latest"]
134
+ # models = ['farui-plus'] # qwen-max-longcontext
135
+ # models = [
136
+ # # 'llama-3.1-405b-reasoning',
137
+ # 'llama-3.1-70b-versatile', 'llama-3.1-8b-instant']
138
+ # models = ['llama-3.1-70b-versatile']
139
+ models = [
140
+ 'ERNIE-Speed-8K',
141
+ 'ERNIE-Speed-128K'
142
+
143
+ ]
144
+
145
+ models = [
146
+ "claude-3-haiku-20240307",
147
+ "gemini-pro"]
148
+ # check_models(models)
149
+ models = [
150
+ "claude-3-5-sonnet-20240620"
151
+ ]
152
+
153
+ # check_models(models, api_key=os.getenv("OPENAI_API_KEY") + '-403')
154
+ # check_models(models, api_key=os.getenv("OPENAI_API_KEY"))
155
+
156
+ models = [
157
+ # "gpt-3.5-turbo",
158
+ # "gpt-4o"
159
+ "deepseek-chat"
160
+ ]
161
+
162
+ # check_models(models, api_key=os.getenv("OPENAI_API_KEY_35"))
163
+ # check_models(models, api_key=os.getenv("OPENAI_API_KEY"))
164
+
165
+ models = [
166
+ 'o1-mini'
167
+ ]
168
+ # check_models(models, api_key=os.getenv("OPENAI_API_KEY_OPENAI"))
169
+
170
+ models = [
171
+ "claude-3-5-sonnet-20240620"
172
+ ]
173
+
174
+ models = [
175
+ # "gpt-4o-mini",
176
+ "gpt-3.5-turbo"
177
+ # "openai/gpt-4o-mini-2024-07-18",
178
+ # "openai/gpt-3.5-turbo-0613"
179
+ ]
180
+
181
+ models = [
182
+ "gemini-1.5-flash-002",
183
+ # "google/gemini-flash-1.5-8b-exp"
184
+ # "google/gemini-flash-1.5-exp"
185
+ ]
186
+
187
+ # check_models(models, api_key=os.getenv("OPENAI_API_KEY")+"-451")
188
+ # check_models(models, api_key=os.getenv("OPENAI_API_KEY") + "-461")
189
+ # check_models(models, api_key=os.getenv("OPENAI_API_KEY") + "-442")
190
+
191
+ # models = [
192
+ # 'gpt-4o'
193
+ # ]
194
+ # check_models(models, api_key=os.getenv("OPENAI_API_KEY_SSVIP"))
195
+
196
+ models = [
197
+ # 'doubao-pro-128k',
198
+ # "ai-search-pro:scholar",
199
+ "o1"
200
+ ]
201
+
202
+ models = [
203
+ # 'doubao-pro-128k',
204
+ # "ai-search-pro:scholar",
205
+ # "gpt-4o-2024-11-20"
206
+ # "grok-2-1212"
207
+ 'o1-mini',
208
+ # 'gpt-4o',
209
+ # 'gemini-2.0-flash-exp',
210
+ # 'gpt-4-turbo',
211
+ # 'gemini-2.0-flash-thinking-exp',
212
+ # 'claude-3-5-haiku-20241022'
213
+
214
+ ]
215
+ # check_models(models, api_key=os.getenv("OPENAI_API_KEY"))
216
+ # check_models(models, api_key=os.getenv("OPENAI_API_KEY_OPENAI"))
217
+ # check_models(models, api_key=os.getenv("OPENAI_API_KEY"))
218
+ # check_models(models, api_key=os.getenv("OPENAI_API_KEY_35"))
219
+ # check_models(models, api_key=os.getenv("OPENAI_API_KEY_GUOCHAN"))
220
+
221
+
222
+ # check_models(models, api_key=os.getenv("OPENAI_API_KEY_FREE"))
223
+
224
+ check_models(models, api_key=os.getenv("OPENAI_API_KEY_35"))
225
+
226
+ #
227
+ # for i in range(5):
228
+ # check_models(models, api_key=os.getenv("OPENAI_API_KEY_GUOCHAN") + "-302")
@@ -0,0 +1,166 @@
1
+ #!/usr/bin/env python
2
+ # -*- coding: utf-8 -*-
3
+ # @Project : AI. @by PyCharm
4
+ # @File : openai_chatfire_all
5
+ # @Time : 2024/7/23 19:44
6
+ # @Author : betterme
7
+ # @WeChat : meutils
8
+ # @Software : PyCharm
9
+ # @Description :
10
+ import os
11
+
12
+ from openai.types.chat import ChatCompletionToolParam
13
+
14
+ from meutils.pipe import *
15
+ from meutils.schemas.openai_types import TOOLS
16
+
17
+ from zhipuai import ZhipuAI
18
+ from openai import OpenAI
19
+
20
+ client = OpenAI(
21
+ # api_key=os.getenv("ZHIPU_API_KEY"),
22
+ # base_url=os.getenv("ZHIPU_BASE_URL")
23
+ # api_key=os.getenv("OPENAI_API_KEY"),
24
+ # base_url=os.getenv("OPENAI_BASE_URL"),
25
+ ) # 请填写您自己的APIKey
26
+
27
+ # messages = [
28
+ # # {
29
+ # # "role": "system",
30
+ # # "content": "牢记,你的名字叫火宝,由Chatfire AI 开发",
31
+ # # },
32
+ #
33
+ # {
34
+ # "role": "user",
35
+ # # "content": "画画,帮我画一条狗画条狗",
36
+ # "content": [
37
+ # {
38
+ # "type": "text",
39
+ # "text": "画画,帮我画一条狗画条狗"
40
+ # }
41
+ # ]
42
+ # }
43
+ # ]
44
+
45
+ messages = [
46
+ {
47
+ "role": "system",
48
+ "content": "你叫火宝,由Chatfire AI 开发"
49
+ },
50
+ {
51
+ "role": "system",
52
+ "content": "你叫火宝,由Chatfire AI 开发"
53
+ },
54
+ {
55
+ "role": "user",
56
+ "content": [
57
+ {
58
+ "type": "text",
59
+ # "text": "帮我查询南京07/05至07/15的日平均气温。并用日平均气温数列绘出折线图显示趋势。",
60
+ # "text": "用python写个冒泡排序并且执行结果",
61
+
62
+ "text": "画条可爱的狗",
63
+
64
+ }
65
+ ]
66
+ },
67
+ # {
68
+ # "role": "assistant",
69
+ # "content": "arguments='{city\":\"慕尼黑\", \"from_day\":\"07/05\",\" to_day\":\"07/15\"}', name='get_average_temperature_data_by_date'"
70
+ # },
71
+ # {
72
+ # "role": "tool",
73
+ # "content": "[21.7, 16.6, 29.2, 25.0, 22.2, 25.9, 18.8, 22.2, 26.2, 26.1, 19.6]"
74
+ # }
75
+ ]
76
+ tools: List[ChatCompletionToolParam] = [
77
+
78
+ {
79
+ "type": "web_browser", # 联网搜索
80
+ "function": None
81
+ },
82
+
83
+ # {'id': '', 'type': 'web_browser', 'function': {'name': 'web_browser', 'parameters': 'web_browser'}}
84
+ {
85
+ "type": "code_interpreter", # 联网搜索
86
+ # "function": {"name": '空'}
87
+ },
88
+ {
89
+ "type": "drawing_tool", # 联网搜索
90
+ "function": None
91
+ },
92
+
93
+ ]
94
+
95
+ # tools[0].function.parameters:不能为空
96
+ response = client.chat.completions.create(
97
+ model="glm-4-alltools", # 填写需要调用的模型名称
98
+ # model="chatfire-test", # 填写需要调用的模型名称
99
+
100
+ stream=True,
101
+ messages=messages,
102
+ tools=TOOLS,
103
+ )
104
+ import jsonpath
105
+
106
+ # for trunk in response:
107
+ # delta = trunk.choices[0].delta
108
+ # # print(trunk)
109
+ # #
110
+ # # print(delta)
111
+ # if delta.content is not None or delta.tool_calls is not None:
112
+ # # # print(trunk.choices[0].delta.content, end="")
113
+ # # # print(trunk.choices[0].delta.content, end="")
114
+ # # # print(trunk.choices[0].delta)
115
+ # # print(trunk.choices[0].tool_calls)
116
+ # # print(delta)
117
+ # tool_info = jsonpath.jsonpath(delta.model_dump(), '$..[input,outputs]')
118
+ # tool_context = []
119
+ # if tool_info:
120
+ # # print(f"{tool_info}\n\n")
121
+ # for info in tool_info: # 触发其他画画工具
122
+ # print(info, end=" ")
123
+ # if delta.content:
124
+ # print(delta.content, end="")
125
+ # # break
126
+ #
127
+ # # if delta.tool_calls:
128
+ # # print(delta.tool_calls[0].model_dump())
129
+
130
+ tool_name = ""
131
+ tool_outputs = []
132
+ for trunk in response:
133
+ print(trunk)
134
+ delta = trunk.choices[0].delta
135
+ # print(delta)
136
+ if delta.tool_calls:
137
+ tool_delta = delta.tool_calls[0]
138
+ tool_type = tool_delta.type
139
+ if tool_name != tool_type:
140
+ tool_name = tool_type
141
+ print(tool_name)
142
+ if tool_name == "drawing_tool":
143
+ print(f"""```inputs\n""", end='')
144
+ if tool_name == "web_browser":
145
+ print(f"""```inputs\n""", end='')
146
+ if tool_name == "code_interpreter":
147
+ print(f"""```inputs\n""", end='')
148
+ # print(tool_delta)
149
+
150
+ # print(f"TOOL_TYPE: {tool_type}")
151
+ tool_input = tool_delta.__getattr__(tool_type).get('input') # {'input': 'A'}
152
+ if tool_input:
153
+ print(tool_input, end="")
154
+ if tool_input == "":
155
+ print("\n```\n\n")
156
+
157
+ tool_outputs = tool_delta.__getattr__(tool_type).get('outputs') # {'input': 'A'}
158
+ if tool_outputs:
159
+ print(tool_outputs)
160
+
161
+ # print(tool_input, end="")
162
+ # print(tool_outputs, end="")
163
+
164
+ # print(delta)
165
+ if delta.content:
166
+ print(delta.content, end="")
@@ -0,0 +1,55 @@
1
+ #!/usr/bin/env python
2
+ # -*- coding: utf-8 -*-
3
+ # @Project : AI. @by PyCharm
4
+ # @File : openai_siliconflow
5
+ # @Time : 2024/6/26 10:42
6
+ # @Author : betterme
7
+ # @WeChat : meutils
8
+ # @Software : PyCharm
9
+ # @Description :
10
+ import os
11
+
12
+ from meutils.pipe import *
13
+ from openai import OpenAI
14
+ from openai import OpenAI, APIStatusError
15
+
16
+ os.getenv("ZHIPUAI_API_KEY")
17
+
18
+ client = OpenAI(
19
+ api_key=os.getenv("DEEPINFRA_API_KEY"),
20
+ base_url=os.getenv("DEEPINFRA_BASE_URL")
21
+ )
22
+
23
+
24
+
25
+ try:
26
+ completion = client.chat.completions.create(
27
+ model="deepseek-ai/DeepSeek-V3",
28
+ # model="xxxxxxxxxxxxx",
29
+ messages=[
30
+ {"role": "user", "content": "你是deepseek什么版本"}
31
+ ],
32
+ # # top_p=0.7,
33
+ # top_p=None,
34
+ # temperature=None,
35
+ stream=True,
36
+ max_tokens=100
37
+ )
38
+ except APIStatusError as e:
39
+ print(e.status_code)
40
+
41
+ print(e.response)
42
+ print(e.message)
43
+ print(e.code)
44
+
45
+ for chunk in completion:
46
+ print(chunk.choices[0].delta.content)
47
+
48
+ # r = client.images.generate(
49
+ # model="cogview-3-plus",
50
+ # prompt="a white siamese cat",
51
+ # size="1024x1024",
52
+ # quality="hd",
53
+ # n=1,
54
+ # )
55
+
@@ -0,0 +1,29 @@
1
+ #!/usr/bin/env python
2
+ # -*- coding: utf-8 -*-
3
+ # @Project : AI. @by PyCharm
4
+ # @File : openai_moon
5
+ # @Time : 2024/6/14 17:27
6
+ # @Author : betterme
7
+ # @WeChat : meutils
8
+ # @Software : PyCharm
9
+ # @Description : https://api.moonshot.cn/v1/users/me/balance get查余额
10
+
11
+
12
+ from meutils.pipe import *
13
+ from openai import OpenAI
14
+
15
+ base_url = os.getenv('DEEPSEEK_BASE_URL')
16
+ api_key = os.getenv('DEEPSEEK_API_KEY')
17
+ client = OpenAI(
18
+ api_key=api_key,
19
+ base_url=base_url,
20
+ )
21
+
22
+ completion = client.chat.completions.create(
23
+ model="deepseek-chat",
24
+ messages=[
25
+ {"role": "user", "content": "1+1"},
26
+ ],
27
+ )
28
+
29
+ print(completion)
@@ -0,0 +1,43 @@
1
+ #!/usr/bin/env python
2
+ # -*- coding: utf-8 -*-
3
+ # @Project : AI. @by PyCharm
4
+ # @File : openai_siliconflow
5
+ # @Time : 2024/6/26 10:42
6
+ # @Author : betterme
7
+ # @WeChat : meutils
8
+ # @Software : PyCharm
9
+ # @Description :
10
+ import os
11
+
12
+ from meutils.pipe import *
13
+ from openai import OpenAI
14
+ from openai import OpenAI, APIStatusError
15
+
16
+ client = OpenAI(
17
+ api_key="c3de8e16-cba7-4c60-a2f6-a2c9dfc95540",
18
+ base_url="https://ark.cn-beijing.volces.com/api/v3", # /chat/completions
19
+ )
20
+
21
+ try:
22
+ completion = client.chat.completions.create(
23
+ model="ep-20240515073409-dlpqp",
24
+ messages=[
25
+ {"role": "user", "content": "画条狗出来 返回图片"}
26
+ ],
27
+ # top_p=0.7,
28
+ top_p=None,
29
+ temperature=None,
30
+ stream=False,
31
+ stream_options={"include_usage": True},
32
+ max_tokens=6000
33
+ )
34
+ except APIStatusError as e:
35
+ print(e.status_code)
36
+
37
+ print(e.response)
38
+ print(e.message)
39
+ print(e.code)
40
+
41
+ for chunk in completion:
42
+ print(chunk.choices[0].delta.content)
43
+
@@ -0,0 +1,36 @@
1
+ #!/usr/bin/env python
2
+ # -*- coding: utf-8 -*-
3
+ # @Project : AI. @by PyCharm
4
+ # @File : openai_siliconflow
5
+ # @Time : 2024/6/26 10:42
6
+ # @Author : betterme
7
+ # @WeChat : meutils
8
+ # @Software : PyCharm
9
+ # @Description :
10
+ import os
11
+
12
+ from meutils.pipe import *
13
+ from openai import OpenAI
14
+
15
+ client = OpenAI(
16
+
17
+ api_key=os.getenv("OPENAI_API_KEY_OPENAI"),
18
+ # api_key=os.getenv("SILICONFLOW_API_KEY"),
19
+ # # api_key="sk-gcxjtocodgggxwnhqqsaqznpkpxndktwlgmgkmzljyajjsfp",
20
+ # base_url="https://api.siliconflow.cn/v1",
21
+
22
+ # base_url="https://api.bltcy.ai/v1"
23
+ )
24
+
25
+ model = "BAAI/bge-large-zh-v1.5"
26
+ model = "bge-large-zh-v1.5"
27
+ model = "text-embedding-3-small"
28
+ model = "text-embedding-ada-002"
29
+ #
30
+ # model = "BAAI/bge-m3"
31
+
32
+ with timer("bs1"):
33
+ response = client.embeddings.create(
34
+ input=["查" * 1000] * 1,
35
+ model=model
36
+ )
@@ -0,0 +1,57 @@
1
+ #!/usr/bin/env python
2
+ # -*- coding: utf-8 -*-
3
+ # @Project : AI. @by PyCharm
4
+ # @File : openai_files
5
+ # @Time : 2023/12/29 14:07
6
+ # @Author : betterme
7
+ # @WeChat : meutils
8
+ # @Software : PyCharm
9
+ # @Description :
10
+
11
+ from meutils.pipe import *
12
+
13
+ from openai import OpenAI, AsyncOpenAI
14
+
15
+ # base_url = os.getenv('OPENAI_BASE_URL')
16
+ # base_url = "https://api-dev.chatfire.cn/v1"
17
+
18
+ # base_url = "http://0.0.0.0:9000/v1"
19
+ # base_url = "http://154.3.0.117:39010/v1"
20
+ # base_url = "http://jupyter.skyman.cloud:37777/v0"
21
+ # base_url = "http://111.173.117.175:37777/files-extraction/v1"
22
+ openai = OpenAI(
23
+ # base_url=base_url,
24
+ )
25
+
26
+ openai = OpenAI(
27
+ api_key=os.getenv("MOONSHOT_API_KEY"),
28
+ base_url=os.getenv("MOONSHOT_BASE_URL")
29
+ )
30
+ # 上传文件
31
+ # _ = files.create(file=open('bpo.py', 'rb'), purpose="assistants", extra_body={'a': 1}) # extra_body在fomdata
32
+ file_object = openai.files.create(
33
+ file=Path("招标文件备案表(第二次).pdf"),
34
+ purpose="file-extract"
35
+ )
36
+ print(file_object)
37
+ # # 查文件
38
+ # print(files.retrieve(file_id=file_object.id))
39
+ #
40
+ # # 参照kimi
41
+ # file_id = "3MvAKgEoBrBdPgWsQSdTB8.pdf"
42
+ # file_id = file_object.id
43
+ # file_content = files.content(file_id=file_id).text
44
+ # print(file_content)
45
+ # print(type(file_content))
46
+
47
+ # print(files.retrieve(file_id))
48
+
49
+ # 二进制
50
+ # files.content(file_id).stream_to_file('xx.pdf')
51
+
52
+
53
+ # file_list = files.list()
54
+ #
55
+ # for file in file_list.data:
56
+ # print(file)
57
+ # print(files.delete(file_id=file.id)) # 删除文件