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,50 @@
1
+ import lark_oapi as lark
2
+ from lark_oapi.api.sheets.v3 import *
3
+
4
+
5
+ # SDK 使用说明: https://github.com/larksuite/oapi-sdk-python#readme
6
+ def main():
7
+ # 创建client
8
+ # 使用 user_access_token 需开启 token 配置, 并在 request_option 中配置 token
9
+ client = lark.Client.builder() \
10
+ .enable_set_token(True) \
11
+ .log_level(lark.LogLevel.DEBUG) \
12
+ .build()
13
+
14
+
15
+
16
+ # 构造请求对象
17
+ request: FindSpreadsheetSheetRequest = FindSpreadsheetSheetRequest.builder() \
18
+ .spreadsheet_token("APMRsoxW4hkIzwt693Bc9kWtnSd") \
19
+ .sheet_id("95c9b1") \
20
+ .request_body(Find.builder()
21
+ .find_condition(FindCondition.builder()
22
+ .range("PNIfrm!A1:C5")
23
+ .match_case(True)
24
+ .match_entire_cell(False)
25
+ .search_by_regex(False)
26
+ .include_formulas(False)
27
+ .build())
28
+ .find("hello")
29
+ .build()) \
30
+ .build()
31
+
32
+ # 发起请求
33
+ option = lark.RequestOption.builder().user_access_token("u-cyzn34LK53b8WEt6sihwnB1kiLCg1gDHra0011o00adz").build()
34
+ response: FindSpreadsheetSheetResponse = client.sheets.v3.spreadsheet_sheet.find(request, option)
35
+
36
+ # 处理失败返回
37
+ if not response.success():
38
+ lark.logger.error(
39
+ f"client.sheets.v3.spreadsheet_sheet.find failed, code: {response.code}, msg: {response.msg}, log_id: {response.get_log_id()}")
40
+ return
41
+
42
+ # 处理业务结果
43
+ lark.logger.info(lark.JSON.marshal(response.data, indent=4))
44
+
45
+
46
+ if __name__ == "__main__":
47
+ main()
48
+
49
+ # curl --location --request GET 'https://open.feishu.cn/open-apis/sheets/v2/spreadsheets/APMRsoxW4hkIzwt693Bc9kWtnSd/values/8DkMAI?valueRenderOption=ToString&dateTimeRenderOption=FormattedString' \
50
+ # --header 'Authorization: Bearer t-ce3540c5f02ac074535f1f14d64fa90fa49621c0'
@@ -0,0 +1,108 @@
1
+ #!/usr/bin/env python
2
+ # -*- coding: utf-8 -*-
3
+ # @Project : AI. @by PyCharm
4
+ # @File : config_manager
5
+ # @Time : 2024/12/4 12:07
6
+ # @Author : betterme
7
+ # @WeChat : meutils
8
+ # @Software : PyCharm
9
+ # @Description :
10
+
11
+ import nacos
12
+ from meutils.pipe import *
13
+
14
+
15
+ class ConfigManager(object):
16
+ _instance = None
17
+ _config: str = ""
18
+
19
+ def __new__(cls, *args):
20
+ if cls._instance is None:
21
+ cls._instance = super().__new__(cls)
22
+ return cls._instance
23
+
24
+ def __init__(self, namespace: str, data_id: str, group: str = "DEFAULT_GROUP", ):
25
+ self.data_id = data_id
26
+ self.group = group
27
+
28
+ NACOS_URL = os.getenv("NACOS_URL")
29
+ if NACOS_URL:
30
+ server_addresses = NACOS_URL.split('@')[1]
31
+ username, password = NACOS_URL.split('@')[0].split(":")
32
+
33
+ # Nacos客户端配置
34
+ self.client = nacos.NacosClient(
35
+ server_addresses=server_addresses, # Nacos服务器地址
36
+ namespace=namespace, # 命名空间
37
+ username=username, # 用户名
38
+ password=password # 密码
39
+ )
40
+
41
+ def init_config(self):
42
+ """初始化配置并添加监听器"""
43
+ # 获取初始配置
44
+ config = self.client.get_config(self.data_id, self.group)
45
+ logger.info(f"初始配置\n{config}")
46
+ if config:
47
+ self._config = config
48
+
49
+ # 添加配置变更监听器
50
+ self.client.add_config_watcher(self.data_id, self.group, self._config_changed_callback)
51
+
52
+ def _config_changed_callback(self, args):
53
+ """配置变更回调函数"""
54
+ logger.debug(f"配置发生变更: {json.dumps(args, indent=4)}")
55
+ # {'data_id': 'testdata', 'group': 'DEFAULT_GROUP', 'namespace': 'test', 'raw_content': 'sk-\nsk-',
56
+ # 'content': 'sk-\nsk-'}
57
+ self._config = args['content']
58
+
59
+ @property
60
+ def text(self) -> str:
61
+ """获取当前配置: 原始内容"""
62
+ return self._config or self.client.get_config(self.data_id, self.group)
63
+
64
+ @property
65
+ def json(self) -> Dict[str, Any]:
66
+ text = self._config
67
+ try:
68
+ return json.loads(text)
69
+ except json.decoder.JSONDecodeError as e:
70
+ logger.warning(f"标准json 配置加载失败: {e}")
71
+
72
+ logger.debug(f"尝试用json_repair解析")
73
+ return json_repair.repair_json(text, return_objects=True)
74
+
75
+ @property
76
+ def yaml(self) -> Dict[str, Any]:
77
+ text = self._config
78
+
79
+ try:
80
+ return yaml.safe_load(text)
81
+ except Exception as e:
82
+ logger.error(f"yaml 配置加载失败: {e}")
83
+
84
+ @property
85
+ def xml(self):
86
+ return self._config
87
+
88
+ @property
89
+ def html(self):
90
+ return self._config
91
+
92
+ @property
93
+ def properties(self):
94
+ return self._config
95
+
96
+
97
+ if __name__ == '__main__':
98
+ # 初始化配置管理器
99
+ namespace = 'test'
100
+ data_id = "testdata"
101
+
102
+ namespace = 'prd'
103
+ data_id = "siliconflow-api"
104
+
105
+ manager = ConfigManager(namespace, data_id)
106
+ # manager_ = Manager(namespace, data_id, group)
107
+
108
+ print(manager.text)
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env python
2
+ # -*- coding: utf-8 -*-
3
+ # @Project : AI. @by PyCharm
4
+ # @File : __init__.py
5
+ # @Time : 2024/4/19 13:42
6
+ # @Author : betterme
7
+ # @WeChat : meutils
8
+ # @Software : PyCharm
9
+ # @Description :
10
+
11
+ from meutils.pipe import *
meutils/data/VERSION CHANGED
@@ -1 +1 @@
1
- 2024.03.04.13.04.45
1
+ 2025.01.16.17.15.52
Binary file
@@ -0,0 +1,7 @@
1
+ <div class="custom-footer">@2024 <a href="https://api.chatfire.cn">🔥ChatfireAPI</a> 由火宝AI出品
2
+ | <a href="https://api.chatfire.cn" target="_blank">支持对公&发票</a>
3
+ | <a href="https://api.chatfire.cn" target="_blank">提供模型定制化服务</a>
4
+ | <a href="https://api.chatfire.cn" target="_blank">个性化智能体</a>
5
+ | 🛎<a href="https://api.chatfire.cn/about" target="_blank">企微客服,咨询更多</a>
6
+
7
+ </div>
@@ -0,0 +1,138 @@
1
+ <h1 align = "center">🔥公告🚀</h1>
2
+
3
+ ---
4
+ <details markdown="1">
5
+ <summary><b>🔥业务经营范围</b></summary>
6
+
7
+ - api服务(没有的找企微客服增加)
8
+ - 提供主流大模型服务,gpt/claude/gemini/llama/国产大模型等等
9
+ - 提供多模态模型服务,文件解析/图片解析/语音解析/视频解析等等
10
+ - 提供垂类智能体服务,文件问答/联网问答/学术搜索等等
11
+ - 提供语音克隆&语音合成服务,hailuo/fish/chattts等等
12
+ - 提供embedding服务,bge/jina/openai等等
13
+ - 提供图片生成服务,kling/flux/ideogram/recraft/虚拟换衣/换头等等
14
+ - 提供视频生成服务,kling/cogviewx/hailuo/hunyuan/vidu/sora等等
15
+ - 提供图片编辑服务,变清晰、去水印、抠图等等
16
+ - 提供文档智能服务,ocr/pdf-to-markdown/url-to-markdown等等
17
+ - 提供对象存储服务
18
+
19
+ - 账号服务(市面上有的都可以)
20
+ - gpt-plus/claude-pro
21
+ - api-key
22
+
23
+ - 个性化服务
24
+ - 定制同款api聚合站点,一键对接货源
25
+ - 定制企业智能体,类似gpt-4-all/kimi
26
+ - 定制知识库智能问答(RAG)
27
+ - 定制AI类网站/小程序等等
28
+ - 承接数据标注/数据跑批任务
29
+ - 承接大模型微调,定制化大模型(可端到端)
30
+ - 承接其他项目,算法模型等等
31
+
32
+ </details>
33
+
34
+ <details markdown="1">
35
+ <summary><b>大额充值优惠</b></summary>
36
+
37
+ - 充值1000-2000 增送10%
38
+
39
+ </details>
40
+
41
+ ## 2025-01-04
42
+ - 增加模型配额 gemini-2.0-flash-exp、gemini-2.0-flash-thinking-exp-1219
43
+
44
+ ## 2024-12-31
45
+
46
+ - 上线新模型
47
+ - `glm-zero/glm-zero-preview`:GLM-Zero-Preview 专注于增强模型推理能力,擅长处理数理逻辑、代码和需要深度推理的复杂问题。同基座模型相比,GLM-Zero-Preview
48
+ 在不显著降低通用任务能力的情况下,在专家任务能力方面表现大幅提升。其在 AIME 2024、MATH500 和 LiveCodeBench 评测中,效果与
49
+ OpenAI-o1-Preview 相当。
50
+ - 兼容SparkAI客户端,文件问答&图片问答:baseurl改为`https://api.chatfire.cn/sparkai/v1`
51
+
52
+ ## 2024-12-27
53
+
54
+ - 上线新模型
55
+ - deepseek-v3
56
+ - deepseek-r1:deepseek-v3的思考模型
57
+ - deepseek-search:deepseek-v3的联网模型
58
+
59
+ ## 2024-12-24
60
+
61
+ - 上线新模型
62
+ - doubao-pro-256k:相比Doubao-pro-128k/240628,长文任务效果显著提升10%以上,要点提取、字数遵循、多轮对话上文记忆等能力大幅提升
63
+ - [qvq-72b-preview](https://mp.weixin.qq.com/s/WzL7tbFUZOgE2IFMeHT-sQ):Qwen开源视觉推理模型QVQ,更睿智地看世界!
64
+
65
+ - 增加gemini-2.0配额,支持多模型,默认分组可用
66
+ - "gemini-2.0-flash"
67
+ - "gemini-2.0-flash-exp"
68
+
69
+ ## 2024-12-20
70
+
71
+ - 修复SunoV4无水印版本
72
+ - [异步任务接口文档](https://api.chatfire.cn/docs/api-246593467)
73
+ - [增加视频解析模型](https://api.chatfire.cn/docs/api-246688638)
74
+ - 增加高并发mj-fast
75
+
76
+ ## 2024-12-19
77
+
78
+ - 新增生图模型 SeedEdit(文生图&图生图/图片编辑): 一句话编辑你的世界:字节跳动推出革命性图片编辑工具SeedEdit
79
+ - [Chat模式接口文档](https://api.chatfire.cn/docs/api-214415540)
80
+ - [Images接口文档](https://api.chatfire.cn/docs/api-246137616)
81
+ - [异步任务接口文档](https://api.chatfire.cn/docs/api-246120232)
82
+ - 新增视觉模型
83
+ - deepseek-ai/deepseek-vl2
84
+ - doubao-vision-pro-32k
85
+ - doubao-vision-lite-32k
86
+ - 新增视频模型 Sora
87
+ - Chat模式:`sora-1:1-480p-5s`
88
+ - 异步任务接口在路上
89
+
90
+ ---
91
+
92
+ <details markdown="1">
93
+ <summary><b>历史更新</b></summary>
94
+
95
+ ## 2024-12-13
96
+
97
+ - 新增模型 混元视频(支持高并发,非逆向可商用,限时特价1毛)[接口文档](https://api.chatfire.cn/docs/api-244309840)
98
+ HunyuanVideo 是腾讯推出的开源视频生成基础模型,拥有超过 130
99
+ 亿参数,是目前最大的开源视频生成模型。该模型采用统一的图像和视频生成架构,集成了数据整理、图像-视频联合模型训练和高效基础设施等关键技术。模型使用多模态大语言模型作为文本编码器,通过
100
+ 3D VAE 进行空间-时间压缩,并提供提示词重写功能。根据专业人工评估结果,HunyuanVideo 在文本对齐、运动质量和视觉质量等方面的表现优于现有最先进的模型
101
+
102
+ ## 2024-12-09
103
+
104
+ - 新增模型
105
+ - meta-llama/Llama-3.3-70B-Instruct: Llama 3.3 是 Llama 系列最先进的多语言开源大型语言模型,以极低成本体验媲美 405B
106
+ 模型的性能。基于 Transformer
107
+ 结构,并通过监督微调(SFT)和人类反馈强化学习(RLHF)提升有用性和安全性。其指令调优版本专为多语言对话优化,在多项行业基准上表现优于众多开源和封闭聊天模型。知识截止日期为
108
+ 2023 年 12 月。
109
+ - jimeng-v2.1:豆包画图,支持即梦超强图像生成能力,兼容chat/dalle-image调用方式。
110
+ - 海螺最新的I2V-01-live图生视频模型:特别针对二次元图生视频效果,进行了优化,动作流畅又生动,让2D二次元角色像复活一样。
111
+
112
+ ## 2024-12-06
113
+
114
+ - 新增模型
115
+ - o1-plus: (官网 plus 版本 `逆向工程`,有思考过程显示)o1 是OpenAI针对复杂任务的新推理模型,该任务需要广泛的常识。该模型具有
116
+ 200k 上下文,目前全球最强模型,支持图片识别
117
+ - o1-pro: (官网 200刀 plus 版本 `逆向工程`,有思考过程显示)o1-pro 是OpenAI针对复杂任务的新推理模型,该任务需要广泛的常识。该模型具有
118
+ 200k 上下文,目前全球最强模型,支持图片识别
119
+
120
+ ## 2024-12-05
121
+
122
+ - 新增模型gpt-4-plus/gpt-4o-plus按倍率计算
123
+ > OpenAI-plus会员 逆向工程
124
+
125
+ ## 2024-11-29
126
+
127
+ - 新增推理模型
128
+ - Qwen/QwQ-32B-Preview
129
+ > 强大的数学问题解决能力,在AIME、MATH-500数学评测上,超过了OpenAI o1-preview优秀的编码能力,LiveCodeBench接近OpenAI
130
+ o1-preview
131
+
132
+ ## 2024-11-25
133
+
134
+ - 新增虚拟换衣接口
135
+ - [可灵官方api格式](https://api.chatfire.cn/docs/api-237182295) 0.8/次
136
+ - [老接口格式](https://api.chatfire.cn/docs/api-226983436) 0.1/次
137
+
138
+ </details>
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/env python
2
+ # -*- coding: utf-8 -*-
3
+ # @Project : AI. @by PyCharm
4
+ # @File : __init__.py
5
+ # @Time : 2024/11/11 10:26
6
+ # @Author : betterme
7
+ # @WeChat : meutils
8
+ # @Software : PyCharm
9
+ # @Description :
10
+
11
+ from meutils.pipe import *
12
+
13
+ NOTICE = get_resolve_path('./NOTICE.md', __file__).read_text()
14
+
15
+ FOOTER = get_resolve_path('./FOOTER.md', __file__).read_text()
meutils/db/orm.py ADDED
@@ -0,0 +1,179 @@
1
+ #!/usr/bin/env python
2
+ # -*- coding: utf-8 -*-
3
+ # @Project : AI. @by PyCharm
4
+ # @File : database
5
+ # @Time : 2024/11/20 10:25
6
+ # @Author : betterme
7
+ # @WeChat : meutils
8
+ # @Software : PyCharm
9
+ # @Description : 基础操作 https://mp.weixin.qq.com/s/nbYhmkN05eqnvjGFvzMbXQ
10
+
11
+ from meutils.pipe import *
12
+
13
+ from sqlalchemy.ext.asyncio import create_async_engine
14
+ from sqlmodel.ext.asyncio.session import AsyncSession
15
+ from sqlmodel import Field, Session, SQLModel, create_engine, select, insert, update
16
+
17
+ engine = create_async_engine(
18
+ os.getenv("MYSQL_URL"),
19
+ future=True,
20
+ pool_size=16,
21
+ max_overflow=16,
22
+ pool_recycle=3600,
23
+ echo=True,
24
+ )
25
+
26
+
27
+ async def create_db_and_tables() -> None:
28
+ meta = SQLModel.metadata
29
+
30
+ async with engine.begin() as conn:
31
+ # await conn.run_sync(meta.drop_all) # 清空 慎用
32
+ await conn.run_sync(meta.create_all)
33
+
34
+
35
+ async def get_session():
36
+ async with AsyncSession(engine) as session:
37
+ yield session
38
+
39
+
40
+ async def get_db():
41
+ async with AsyncSession(engine) as session:
42
+ yield session
43
+
44
+
45
+ async def update_or_insert(entity, filter_kwargs: Optional[dict] = None, update_fn: Optional[Callable] = None,
46
+ n: int = 1):
47
+ """
48
+
49
+ :param entity: TASK 类
50
+ :param filter_kwargs: 查询条件 字典 元组 第一个值是id
51
+ :param update_fn:
52
+
53
+ def update_fn(data):
54
+ data.age = 100
55
+
56
+ :param n: 轮询次数
57
+ :return:
58
+ """
59
+ if n > 1: # 一般轮询任务放后台
60
+ for i in range(1, n):
61
+ await asyncio.sleep(n / i, 1)
62
+
63
+ logger.debug(f"UPDATE_OR_INSERT: {entity.__name__}-{i}")
64
+ update_flag = await update_or_insert(entity, filter_kwargs, update_fn)
65
+ if update_flag is False:
66
+ logger.debug("提前跳出轮询")
67
+ break
68
+
69
+ filter_kwargs = filter_kwargs or {}
70
+ async with AsyncSession(engine) as session:
71
+ statement = select(entity).filter_by(**filter_kwargs)
72
+ result = await session.exec(statement)
73
+ data = result.first() # result.all()
74
+
75
+ if data: # 主键id查询
76
+ if update_fn:
77
+ logger.debug(f"UPDATE: {data}")
78
+
79
+ if inspect.iscoroutinefunction(update_fn):
80
+ update_flag = await update_fn(data)
81
+ else:
82
+ update_flag = update_fn(data)
83
+
84
+ if update_flag is False: return False # 跳出轮询
85
+
86
+ await session.commit()
87
+ await session.refresh(data)
88
+ return data
89
+ else:
90
+ data = entity(**filter_kwargs)
91
+ logger.debug(f"INSERT: {data}")
92
+
93
+ session.add(data)
94
+
95
+ await session.commit()
96
+ await session.refresh(data)
97
+ return data
98
+
99
+
100
+ async def select_first(entity, filter_kwargs: Optional[dict] = None):
101
+ async with AsyncSession(engine) as session:
102
+ statement = select(entity).filter_by(**filter_kwargs)
103
+
104
+ if result := await session.exec(statement):
105
+ _ = result.first()
106
+ logger.debug(_)
107
+ return _
108
+
109
+
110
+ if __name__ == '__main__':
111
+ pass
112
+
113
+ # class Hero(SQLModel, table=True):
114
+ # id: Optional[int] = Field(default=None, primary_key=True)
115
+ # name: str
116
+ # secret_name: str
117
+ # age: Optional[int] = None
118
+ #
119
+ #
120
+ # hero_1 = Hero(name="Deadpond", secret_name="Dive Wilson")
121
+ # hero_2 = Hero(name="Spider-Boy", secret_name="Pedro Parqueador")
122
+ # hero_3 = Hero(name="Rusty-Man", secret_name="Tommy Sharp", age=48)
123
+ #
124
+ #
125
+ # async def main():
126
+ # async with AsyncSession(engine) as session:
127
+ # session.add(hero_1)
128
+ # session.add(hero_2)
129
+ # session.add(hero_3)
130
+ # await session.commit()
131
+ #
132
+ #
133
+ # # arun(main())
134
+ #
135
+ # arun(create_db_and_tables())
136
+
137
+ from meutils.schemas.db.oneapi_types import OneapiTask, OneapiUser, OneapiToken
138
+
139
+ # filter_kwargs = {
140
+ # "task_id": "888",
141
+ # }
142
+ #
143
+ #
144
+ # async def main():
145
+ # async with AsyncSession(engine) as session:
146
+ # statement = select(OneapiTask).filter_by(**filter_kwargs)
147
+ # result = await session.exec(statement)
148
+ # logger.debug(result)
149
+ # if result:
150
+ # logger.debug(result.first())
151
+ # # await session.commit()
152
+ #
153
+ #
154
+ # arun(update_or_insert(OneapiTask, filter_kwargs))
155
+
156
+ filter_kwargs = {
157
+ "id": "1",
158
+ }
159
+
160
+
161
+ async def main():
162
+ async with AsyncSession(engine) as session:
163
+ # filter_kwargs = {
164
+ # "id": "1",
165
+ # }
166
+ # statement = select(OneapiUser).filter_by(**filter_kwargs)
167
+
168
+ filter_kwargs = {
169
+ "key": "gpoH1z3G6nHovD8MY40i6xx5tsC1vbh7B3Aao2jmejYNoKhv",
170
+ }
171
+ statement = select(OneapiToken).filter_by(**filter_kwargs)
172
+
173
+ result = await session.exec(statement)
174
+ if result:
175
+ logger.debug(result.first())
176
+ # await session.commit()
177
+
178
+
179
+ arun(main())
meutils/db/redis_db.py ADDED
@@ -0,0 +1,87 @@
1
+ #!/usr/bin/env python
2
+ # -*- coding: utf-8 -*-
3
+ # @Project : AI. @by PyCharm
4
+ # @File : redis
5
+ # @Time : 2024/3/26 11:21
6
+ # @Author : betterme
7
+ # @WeChat : meutils
8
+ # @Software : PyCharm
9
+ # @Description :
10
+ # from meutils.pipe import *
11
+
12
+ import os
13
+ from redis import Redis, ConnectionPool
14
+ from redis.asyncio import Redis as AsyncRedis, ConnectionPool as AsyncConnectionPool
15
+
16
+ kwargs = {
17
+ "retry_on_timeout": True,
18
+ # "db": 6
19
+ }
20
+ if REDIS_URL := os.getenv("REDIS_URL"):
21
+ # logger.debug(REDIS_URL)
22
+
23
+ pool = ConnectionPool.from_url(REDIS_URL, **kwargs)
24
+ redis_client = Redis.from_pool(pool)
25
+
26
+ async_pool = AsyncConnectionPool.from_url(REDIS_URL, **kwargs)
27
+ redis_aclient = AsyncRedis.from_pool(async_pool)
28
+ # redis_client = Redis.from_url(REDIS_URL, **kwargs)
29
+ # redis_aclient = AsyncRedis.from_url(REDIS_URL, **kwargs)
30
+
31
+ else:
32
+ redis_client = Redis(**kwargs) # decode_responses=True
33
+ redis_aclient = AsyncRedis(**kwargs)
34
+
35
+ if __name__ == '__main__':
36
+ from meutils.pipe import *
37
+
38
+ # print(arun(redis_aclient.get("")))
39
+ # print(redis_client.lrange("https://api.moonshot.cn/v1",0, -1))
40
+
41
+ # print(redis_client.lrange("https://api.deepseek.com/v1",0, -1))
42
+ # print(redis_client.exists("https://api.deepseek.com/v1"))
43
+
44
+ # print(type(redis_aclient.get("test")))
45
+
46
+ # print(redis_client.delete("https://api.deepseek.com/v1"))
47
+ feishu_url = "https://xchatllm.feishu.cn/sheets/Bmjtst2f6hfMqFttbhLcdfRJnNf?sheet=79272d"
48
+ feishu_url = "https://xchatllm.feishu.cn/sheets/GYCHsvI4qhnDPNtI4VPcdw2knEd?sheet=EYgZ8c"
49
+
50
+ # with timer():
51
+ # print(feishu_url in redis_client)
52
+ #
53
+ # with timer():
54
+ # redis_client.exists(feishu_url)
55
+ # with timer():
56
+ # print(redis_client.llen(feishu_url))
57
+
58
+ # print(redis_client.set('a', 'xx21212'))
59
+ # print(redis_client.set('b', b'xx21212'))
60
+ #
61
+ # print(redis_client.get('a'))
62
+ # print(redis_client.get('b'))
63
+
64
+ #
65
+ # print(redis_client.type(feishu))
66
+ # _ = redis_client.lrange(feishu, 0, -1)
67
+ # print(len(eval(_)))
68
+
69
+ task_id = "celery-task-meta-ca94c602-a2cc-4db5-afe4-763f30df8a18"
70
+
71
+
72
+ # arun(redis_aclient.get('celery-task-meta-72d59447-1f88-4727-8067-8244c2268faa'))
73
+ #
74
+ # arun(redis_aclient.select(1))
75
+
76
+ # async def main():
77
+ # r = await redis_aclient.select(1)
78
+ # return await redis_aclient.get(task_id)
79
+ #
80
+ #
81
+ # arun(main())
82
+
83
+ async def main():
84
+ return await redis_aclient.lpop("redis_key")
85
+
86
+
87
+ arun(main())
@@ -6,7 +6,7 @@
6
6
  # @Author : betterme
7
7
  # @WeChat : meutils
8
8
  # @Software : PyCharm
9
- # @Description : 通用缓存
9
+ # @Description : 通用缓存, todo: redis缓存
10
10
 
11
11
  from meutils.pipe import *
12
12
  from cachetools import cached, cachedmethod, LRUCache, RRCache, TTLCache