dsh-plugin-image-workbench 1.1.5 → 1.1.6

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 (172) hide show
  1. package/LICENSE +21 -21
  2. package/README.en.md +5 -3
  3. package/README.md +7 -3
  4. package/client.js +241 -241
  5. package/cordis.patch.yml +14 -14
  6. package/host.js +51 -0
  7. package/install.mjs +333 -387
  8. package/package.json +3 -2
  9. package/scripts/fetch-style-images.mjs +104 -0
  10. package/scripts/vendor-snapshot.py +154 -154
  11. package/server/access.py +26 -26
  12. package/server/app.py +1329 -1329
  13. package/server/catalog.py +147 -147
  14. package/server/composer.py +391 -391
  15. package/server/drafts.py +158 -158
  16. package/server/history.py +575 -575
  17. package/server/imaging.py +172 -172
  18. package/server/pool.py +1335 -1335
  19. package/server/pool_admin.py +921 -921
  20. package/server/pool_service.py +1073 -1073
  21. package/server/requirements.txt +6 -6
  22. package/server/smoke_check.py +402 -402
  23. package/server/static/access.html +202 -202
  24. package/vendor/chatgpt2api/source/.env.example +82 -82
  25. package/vendor/chatgpt2api/source/.python-version +1 -1
  26. package/vendor/chatgpt2api/source/LICENSE +21 -21
  27. package/vendor/chatgpt2api/source/README.md +391 -391
  28. package/vendor/chatgpt2api/source/VERSION +1 -1
  29. package/vendor/chatgpt2api/source/api/__init__.py +2 -2
  30. package/vendor/chatgpt2api/source/api/accounts.py +537 -537
  31. package/vendor/chatgpt2api/source/api/ai.py +217 -217
  32. package/vendor/chatgpt2api/source/api/app.py +62 -62
  33. package/vendor/chatgpt2api/source/api/errors.py +46 -46
  34. package/vendor/chatgpt2api/source/api/image_inputs.py +309 -309
  35. package/vendor/chatgpt2api/source/api/image_tasks.py +120 -120
  36. package/vendor/chatgpt2api/source/api/support.py +134 -134
  37. package/vendor/chatgpt2api/source/api/system.py +365 -365
  38. package/vendor/chatgpt2api/source/assets/kunrouai.svg +50 -50
  39. package/vendor/chatgpt2api/source/config.default.json +108 -108
  40. package/vendor/chatgpt2api/source/main.py +9 -9
  41. package/vendor/chatgpt2api/source/pyproject.toml +27 -27
  42. package/vendor/chatgpt2api/source/scripts/init_proxy_config.py +186 -186
  43. package/vendor/chatgpt2api/source/scripts/migrate_storage.py +163 -163
  44. package/vendor/chatgpt2api/source/scripts/privoxy-warp.conf +13 -13
  45. package/vendor/chatgpt2api/source/scripts/test_outlook_token_mailbox.py +385 -385
  46. package/vendor/chatgpt2api/source/scripts/test_storage.py +129 -129
  47. package/vendor/chatgpt2api/source/scripts/verify_oauth_refresh.py +92 -92
  48. package/vendor/chatgpt2api/source/services/account_service.py +1757 -1757
  49. package/vendor/chatgpt2api/source/services/auth_service.py +253 -253
  50. package/vendor/chatgpt2api/source/services/backup_service.py +671 -671
  51. package/vendor/chatgpt2api/source/services/config.py +667 -667
  52. package/vendor/chatgpt2api/source/services/content_filter.py +242 -242
  53. package/vendor/chatgpt2api/source/services/cpa_service.py +315 -315
  54. package/vendor/chatgpt2api/source/services/editable_file_task_service.py +260 -260
  55. package/vendor/chatgpt2api/source/services/image_service.py +376 -376
  56. package/vendor/chatgpt2api/source/services/image_storage_service.py +405 -405
  57. package/vendor/chatgpt2api/source/services/image_tags_service.py +76 -76
  58. package/vendor/chatgpt2api/source/services/image_task_service.py +550 -550
  59. package/vendor/chatgpt2api/source/services/log_service.py +337 -337
  60. package/vendor/chatgpt2api/source/services/model_service.py +182 -182
  61. package/vendor/chatgpt2api/source/services/oauth_login_service.py +267 -267
  62. package/vendor/chatgpt2api/source/services/openai_backend_api.py +2763 -2763
  63. package/vendor/chatgpt2api/source/services/openai_oauth.py +32 -32
  64. package/vendor/chatgpt2api/source/services/protocol/__init__.py +2 -2
  65. package/vendor/chatgpt2api/source/services/protocol/anthropic_v1_messages.py +307 -307
  66. package/vendor/chatgpt2api/source/services/protocol/chat_completion_cache.py +238 -238
  67. package/vendor/chatgpt2api/source/services/protocol/conversation.py +1644 -1644
  68. package/vendor/chatgpt2api/source/services/protocol/error_response.py +124 -124
  69. package/vendor/chatgpt2api/source/services/protocol/openai_search.py +19 -19
  70. package/vendor/chatgpt2api/source/services/protocol/openai_v1_chat_complete.py +316 -316
  71. package/vendor/chatgpt2api/source/services/protocol/openai_v1_image_edit.py +86 -86
  72. package/vendor/chatgpt2api/source/services/protocol/openai_v1_image_generations.py +42 -42
  73. package/vendor/chatgpt2api/source/services/protocol/openai_v1_models.py +53 -53
  74. package/vendor/chatgpt2api/source/services/protocol/openai_v1_response.py +453 -453
  75. package/vendor/chatgpt2api/source/services/protocol/web_search_tool.py +160 -160
  76. package/vendor/chatgpt2api/source/services/proxy_service.py +648 -648
  77. package/vendor/chatgpt2api/source/services/storage/__init__.py +5 -5
  78. package/vendor/chatgpt2api/source/services/storage/base.py +38 -38
  79. package/vendor/chatgpt2api/source/services/storage/database_storage.py +194 -194
  80. package/vendor/chatgpt2api/source/services/storage/factory.py +104 -104
  81. package/vendor/chatgpt2api/source/services/storage/git_storage.py +183 -183
  82. package/vendor/chatgpt2api/source/services/storage/json_storage.py +95 -95
  83. package/vendor/chatgpt2api/source/services/sub2api_service.py +531 -531
  84. package/vendor/chatgpt2api/source/utils/helper.py +469 -469
  85. package/vendor/chatgpt2api/source/utils/image_tokens.py +346 -346
  86. package/vendor/chatgpt2api/source/utils/log.py +110 -110
  87. package/vendor/chatgpt2api/source/utils/pkce.py +19 -19
  88. package/vendor/chatgpt2api/source/utils/pow.py +207 -207
  89. package/vendor/chatgpt2api/source/utils/sentinel.py +159 -159
  90. package/vendor/chatgpt2api/source/utils/turnstile.py +184 -184
  91. package/vendor/chatgpt2api/source/uv.lock +904 -904
  92. package/vendor/chatgpt2api/source/web/bun.lock +1501 -1501
  93. package/vendor/chatgpt2api/source/web/components.json +24 -24
  94. package/vendor/chatgpt2api/source/web/eslint.config.mjs +17 -17
  95. package/vendor/chatgpt2api/source/web/next.config.ts +40 -40
  96. package/vendor/chatgpt2api/source/web/package.json +58 -58
  97. package/vendor/chatgpt2api/source/web/postcss.config.mjs +5 -5
  98. package/vendor/chatgpt2api/source/web/src/app/accounts/components/account-import-dialog.tsx +925 -925
  99. package/vendor/chatgpt2api/source/web/src/app/accounts/page.tsx +1307 -1307
  100. package/vendor/chatgpt2api/source/web/src/app/debug/components/chat-panel.tsx +224 -224
  101. package/vendor/chatgpt2api/source/web/src/app/debug/components/editable-file-panel.tsx +444 -444
  102. package/vendor/chatgpt2api/source/web/src/app/debug/components/ppt-panel.tsx +9 -9
  103. package/vendor/chatgpt2api/source/web/src/app/debug/components/psd-panel.tsx +9 -9
  104. package/vendor/chatgpt2api/source/web/src/app/debug/components/search-panel.tsx +172 -172
  105. package/vendor/chatgpt2api/source/web/src/app/debug/components/skill-panel.tsx +169 -169
  106. package/vendor/chatgpt2api/source/web/src/app/debug/components/types.ts +39 -39
  107. package/vendor/chatgpt2api/source/web/src/app/debug/page.tsx +59 -59
  108. package/vendor/chatgpt2api/source/web/src/app/globals.css +230 -230
  109. package/vendor/chatgpt2api/source/web/src/app/image/components/image-composer.tsx +542 -542
  110. package/vendor/chatgpt2api/source/web/src/app/image/components/image-results.tsx +554 -554
  111. package/vendor/chatgpt2api/source/web/src/app/image/components/image-sidebar.tsx +176 -176
  112. package/vendor/chatgpt2api/source/web/src/app/image/page.tsx +1799 -1799
  113. package/vendor/chatgpt2api/source/web/src/app/image-manager/page.tsx +732 -732
  114. package/vendor/chatgpt2api/source/web/src/app/layout.tsx +50 -50
  115. package/vendor/chatgpt2api/source/web/src/app/login/page.tsx +101 -101
  116. package/vendor/chatgpt2api/source/web/src/app/logs/page.tsx +356 -356
  117. package/vendor/chatgpt2api/source/web/src/app/page.tsx +30 -30
  118. package/vendor/chatgpt2api/source/web/src/app/settings/components/api-docs-card.tsx +341 -341
  119. package/vendor/chatgpt2api/source/web/src/app/settings/components/backup-settings-card.tsx +447 -447
  120. package/vendor/chatgpt2api/source/web/src/app/settings/components/base-url-card.tsx +71 -71
  121. package/vendor/chatgpt2api/source/web/src/app/settings/components/config-card.tsx +491 -491
  122. package/vendor/chatgpt2api/source/web/src/app/settings/components/cpa-pool-dialog.tsx +108 -108
  123. package/vendor/chatgpt2api/source/web/src/app/settings/components/cpa-pools-card.tsx +169 -169
  124. package/vendor/chatgpt2api/source/web/src/app/settings/components/import-browser-dialog.tsx +185 -185
  125. package/vendor/chatgpt2api/source/web/src/app/settings/components/proxy-runtime-card.tsx +379 -379
  126. package/vendor/chatgpt2api/source/web/src/app/settings/components/proxy-settings-card.tsx +127 -127
  127. package/vendor/chatgpt2api/source/web/src/app/settings/components/proxy-settings.tsx +200 -200
  128. package/vendor/chatgpt2api/source/web/src/app/settings/components/settings-header.tsx +12 -12
  129. package/vendor/chatgpt2api/source/web/src/app/settings/components/sub2api-connections.tsx +886 -886
  130. package/vendor/chatgpt2api/source/web/src/app/settings/components/third-party-apps-card.tsx +81 -81
  131. package/vendor/chatgpt2api/source/web/src/app/settings/components/user-keys-card.tsx +422 -422
  132. package/vendor/chatgpt2api/source/web/src/app/settings/page.tsx +135 -135
  133. package/vendor/chatgpt2api/source/web/src/app/settings/store.ts +1069 -1069
  134. package/vendor/chatgpt2api/source/web/src/components/date-range-filter.tsx +49 -49
  135. package/vendor/chatgpt2api/source/web/src/components/header-actions.tsx +24 -24
  136. package/vendor/chatgpt2api/source/web/src/components/image-lightbox.tsx +434 -434
  137. package/vendor/chatgpt2api/source/web/src/components/image-thumbnail.tsx +46 -46
  138. package/vendor/chatgpt2api/source/web/src/components/theme-script.tsx +18 -18
  139. package/vendor/chatgpt2api/source/web/src/components/theme-toggle.tsx +14 -14
  140. package/vendor/chatgpt2api/source/web/src/components/top-nav.tsx +263 -263
  141. package/vendor/chatgpt2api/source/web/src/components/ui/animated-theme-toggler.tsx +256 -256
  142. package/vendor/chatgpt2api/source/web/src/components/ui/badge.tsx +41 -41
  143. package/vendor/chatgpt2api/source/web/src/components/ui/button.tsx +59 -59
  144. package/vendor/chatgpt2api/source/web/src/components/ui/calendar.tsx +46 -46
  145. package/vendor/chatgpt2api/source/web/src/components/ui/card.tsx +61 -61
  146. package/vendor/chatgpt2api/source/web/src/components/ui/checkbox.tsx +27 -27
  147. package/vendor/chatgpt2api/source/web/src/components/ui/dia-text-reveal.tsx +267 -267
  148. package/vendor/chatgpt2api/source/web/src/components/ui/dialog.tsx +132 -132
  149. package/vendor/chatgpt2api/source/web/src/components/ui/field.tsx +13 -13
  150. package/vendor/chatgpt2api/source/web/src/components/ui/input.tsx +19 -19
  151. package/vendor/chatgpt2api/source/web/src/components/ui/label.tsx +24 -24
  152. package/vendor/chatgpt2api/source/web/src/components/ui/morphing-text.tsx +149 -149
  153. package/vendor/chatgpt2api/source/web/src/components/ui/popover.tsx +38 -38
  154. package/vendor/chatgpt2api/source/web/src/components/ui/select.tsx +175 -175
  155. package/vendor/chatgpt2api/source/web/src/components/ui/sheet.tsx +143 -143
  156. package/vendor/chatgpt2api/source/web/src/components/ui/table.tsx +29 -29
  157. package/vendor/chatgpt2api/source/web/src/components/ui/tabs.tsx +91 -91
  158. package/vendor/chatgpt2api/source/web/src/components/ui/text-3d-flip.tsx +269 -269
  159. package/vendor/chatgpt2api/source/web/src/components/ui/textarea.tsx +18 -18
  160. package/vendor/chatgpt2api/source/web/src/components/version-release-dialog.tsx +127 -127
  161. package/vendor/chatgpt2api/source/web/src/constants/common-env.ts +6 -6
  162. package/vendor/chatgpt2api/source/web/src/hooks/use-version-check.ts +85 -85
  163. package/vendor/chatgpt2api/source/web/src/lib/api.ts +926 -926
  164. package/vendor/chatgpt2api/source/web/src/lib/auth-session.ts +26 -26
  165. package/vendor/chatgpt2api/source/web/src/lib/release.ts +25 -25
  166. package/vendor/chatgpt2api/source/web/src/lib/request.ts +93 -93
  167. package/vendor/chatgpt2api/source/web/src/lib/use-auth-guard.ts +89 -89
  168. package/vendor/chatgpt2api/source/web/src/lib/utils.ts +6 -6
  169. package/vendor/chatgpt2api/source/web/src/store/auth.ts +112 -112
  170. package/vendor/chatgpt2api/source/web/src/store/editable-file-history.ts +33 -33
  171. package/vendor/chatgpt2api/source/web/src/store/image-conversations.ts +318 -318
  172. package/vendor/chatgpt2api/source/web/tsconfig.json +42 -42
@@ -1,50 +1,50 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="24 20 378 110" role="img" aria-labelledby="kri-horizontal-title">
2
- <title id="kri-horizontal-title">坤肉AI 横版标志</title>
3
-
4
- <defs>
5
- <linearGradient id="kri-horizontal-upper" gradientUnits="userSpaceOnUse" x1="64" y1="29" x2="78" y2="103">
6
- <stop offset="0" stop-color="#CA47F4"/>
7
- <stop offset=".44" stop-color="#8650FC"/>
8
- <stop offset=".75" stop-color="#5855FF"/>
9
- <stop offset="1" stop-color="#326CFF"/>
10
- </linearGradient>
11
- <linearGradient id="kri-horizontal-shine" gradientUnits="userSpaceOnUse" x1="82" y1="60" x2="139" y2="60">
12
- <stop offset="0" stop-color="#74CEF1" stop-opacity="0"/>
13
- <stop offset="1" stop-color="#74CEF1"/>
14
- </linearGradient>
15
- <linearGradient id="kri-horizontal-lower" gradientUnits="userSpaceOnUse" x1="76" y1="88" x2="119" y2="133">
16
- <stop offset="0" stop-color="#1640C2"/>
17
- <stop offset=".5" stop-color="#176BEA"/>
18
- <stop offset="1" stop-color="#269DF5"/>
19
- </linearGradient>
20
- <linearGradient id="kri-horizontal-back" gradientUnits="userSpaceOnUse" x1="86" y1="57" x2="145" y2="59">
21
- <stop offset="0" stop-color="#9854FC"/>
22
- <stop offset=".6" stop-color="#6FBCF7"/>
23
- <stop offset="1" stop-color="#2DC9EF"/>
24
- </linearGradient>
25
- <linearGradient id="kri-horizontal-orbit" gradientUnits="userSpaceOnUse" x1="45" y1="73" x2="68" y2="118">
26
- <stop offset="0" stop-color="#6849FF"/>
27
- <stop offset=".26" stop-color="#3D7CFF"/>
28
- <stop offset=".59" stop-color="#30C5F5"/>
29
- <stop offset=".8" stop-color="#B2F0FF"/>
30
- </linearGradient>
31
- <linearGradient id="kri-horizontal-star" gradientUnits="userSpaceOnUse" x1="143" y1="24" x2="156" y2="39">
32
- <stop offset="0" stop-color="#348BF2"/>
33
- <stop offset="1" stop-color="#42C4F6"/>
34
- </linearGradient>
35
- <linearGradient id="kri-horizontal-text" gradientUnits="userSpaceOnUse" x1="184" y1="75" x2="398" y2="75">
36
- <stop offset="0" stop-color="#8650FC"/>
37
- <stop offset=".55" stop-color="#326CFF"/>
38
- <stop offset="1" stop-color="#269DF5"/>
39
- </linearGradient>
40
- </defs>
41
-
42
- <path fill="url(#kri-horizontal-back)" d="M85.2 55.2C90.6 53 96.2 50.8 101.7 49.4L97.6 53.4C93.6 55.3 89.4 57.4 85.2 59ZM111.8 44.3C127.9 42.4 141.2 42.5 146.1 49.4C153.3 59.7 132.4 73 119.3 77.4C130.8 68.1 143.2 56.8 136.4 51.6C132.4 48.5 124.2 48.5 115.8 50Z"/>
43
- <path fill="url(#kri-horizontal-lower)" d="M56.4 101.4C74.9 97.1 95.3 89.7 111.5 82.6L146.9 121.8H118.3C115.5 121.8 113.7 120.9 111.8 118.7L90.1 94.2L86.4 98.3C83.3 101.2 82.2 103.8 82.2 107.2V110.8C82.2 121.3 74.3 129.3 64.1 129.3H56.4Z"/>
44
- <path fill="url(#kri-horizontal-upper)" d="M56.4 99.4V47.5C56.4 37.2 63.5 29.5 74.1 29.5H82.2V74.8L109.8 46.5C111.7 44.5 113.1 43.7 116 43.7H137.2L108.4 78.9C91.7 87.1 74.1 94.3 56.4 99.4Z"/>
45
- <path fill="url(#kri-horizontal-shine)" d="M56.4 99.4V47.5C56.4 37.2 63.5 29.5 74.1 29.5H82.2V74.8L109.8 46.5C111.7 44.5 113.1 43.7 116 43.7H137.2L108.4 78.9C91.7 87.1 74.1 94.3 56.4 99.4Z"/>
46
- <path fill="url(#kri-horizontal-orbit)" d="M52.4 70.6C39.3 78.8 24.6 91.5 24.7 98C24.9 112.4 67.4 106.5 110.3 80.6L108.4 78.9C76.7 93.5 43.8 102.9 36.6 96.1C31.1 90.9 44.2 79.7 52.4 75Z"/>
47
- <path fill="url(#kri-horizontal-star)" d="M149.4 20.5C150.5 27.7 153.5 30.5 160.5 31.7C153.5 32.9 150.5 36 149.4 43.1C148.2 36 145.3 32.9 138.3 31.7C145.3 30.5 148.2 27.7 149.4 20.5Z"/>
48
-
49
- <text x="184" y="100" fill="url(#kri-horizontal-text)" font-family="'PingFang SC', 'Microsoft YaHei', sans-serif" font-size="66" font-weight="700" letter-spacing="1">坤肉AI</text>
50
- </svg>
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="24 20 378 110" role="img" aria-labelledby="kri-horizontal-title">
2
+ <title id="kri-horizontal-title">坤肉AI 横版标志</title>
3
+
4
+ <defs>
5
+ <linearGradient id="kri-horizontal-upper" gradientUnits="userSpaceOnUse" x1="64" y1="29" x2="78" y2="103">
6
+ <stop offset="0" stop-color="#CA47F4"/>
7
+ <stop offset=".44" stop-color="#8650FC"/>
8
+ <stop offset=".75" stop-color="#5855FF"/>
9
+ <stop offset="1" stop-color="#326CFF"/>
10
+ </linearGradient>
11
+ <linearGradient id="kri-horizontal-shine" gradientUnits="userSpaceOnUse" x1="82" y1="60" x2="139" y2="60">
12
+ <stop offset="0" stop-color="#74CEF1" stop-opacity="0"/>
13
+ <stop offset="1" stop-color="#74CEF1"/>
14
+ </linearGradient>
15
+ <linearGradient id="kri-horizontal-lower" gradientUnits="userSpaceOnUse" x1="76" y1="88" x2="119" y2="133">
16
+ <stop offset="0" stop-color="#1640C2"/>
17
+ <stop offset=".5" stop-color="#176BEA"/>
18
+ <stop offset="1" stop-color="#269DF5"/>
19
+ </linearGradient>
20
+ <linearGradient id="kri-horizontal-back" gradientUnits="userSpaceOnUse" x1="86" y1="57" x2="145" y2="59">
21
+ <stop offset="0" stop-color="#9854FC"/>
22
+ <stop offset=".6" stop-color="#6FBCF7"/>
23
+ <stop offset="1" stop-color="#2DC9EF"/>
24
+ </linearGradient>
25
+ <linearGradient id="kri-horizontal-orbit" gradientUnits="userSpaceOnUse" x1="45" y1="73" x2="68" y2="118">
26
+ <stop offset="0" stop-color="#6849FF"/>
27
+ <stop offset=".26" stop-color="#3D7CFF"/>
28
+ <stop offset=".59" stop-color="#30C5F5"/>
29
+ <stop offset=".8" stop-color="#B2F0FF"/>
30
+ </linearGradient>
31
+ <linearGradient id="kri-horizontal-star" gradientUnits="userSpaceOnUse" x1="143" y1="24" x2="156" y2="39">
32
+ <stop offset="0" stop-color="#348BF2"/>
33
+ <stop offset="1" stop-color="#42C4F6"/>
34
+ </linearGradient>
35
+ <linearGradient id="kri-horizontal-text" gradientUnits="userSpaceOnUse" x1="184" y1="75" x2="398" y2="75">
36
+ <stop offset="0" stop-color="#8650FC"/>
37
+ <stop offset=".55" stop-color="#326CFF"/>
38
+ <stop offset="1" stop-color="#269DF5"/>
39
+ </linearGradient>
40
+ </defs>
41
+
42
+ <path fill="url(#kri-horizontal-back)" d="M85.2 55.2C90.6 53 96.2 50.8 101.7 49.4L97.6 53.4C93.6 55.3 89.4 57.4 85.2 59ZM111.8 44.3C127.9 42.4 141.2 42.5 146.1 49.4C153.3 59.7 132.4 73 119.3 77.4C130.8 68.1 143.2 56.8 136.4 51.6C132.4 48.5 124.2 48.5 115.8 50Z"/>
43
+ <path fill="url(#kri-horizontal-lower)" d="M56.4 101.4C74.9 97.1 95.3 89.7 111.5 82.6L146.9 121.8H118.3C115.5 121.8 113.7 120.9 111.8 118.7L90.1 94.2L86.4 98.3C83.3 101.2 82.2 103.8 82.2 107.2V110.8C82.2 121.3 74.3 129.3 64.1 129.3H56.4Z"/>
44
+ <path fill="url(#kri-horizontal-upper)" d="M56.4 99.4V47.5C56.4 37.2 63.5 29.5 74.1 29.5H82.2V74.8L109.8 46.5C111.7 44.5 113.1 43.7 116 43.7H137.2L108.4 78.9C91.7 87.1 74.1 94.3 56.4 99.4Z"/>
45
+ <path fill="url(#kri-horizontal-shine)" d="M56.4 99.4V47.5C56.4 37.2 63.5 29.5 74.1 29.5H82.2V74.8L109.8 46.5C111.7 44.5 113.1 43.7 116 43.7H137.2L108.4 78.9C91.7 87.1 74.1 94.3 56.4 99.4Z"/>
46
+ <path fill="url(#kri-horizontal-orbit)" d="M52.4 70.6C39.3 78.8 24.6 91.5 24.7 98C24.9 112.4 67.4 106.5 110.3 80.6L108.4 78.9C76.7 93.5 43.8 102.9 36.6 96.1C31.1 90.9 44.2 79.7 52.4 75Z"/>
47
+ <path fill="url(#kri-horizontal-star)" d="M149.4 20.5C150.5 27.7 153.5 30.5 160.5 31.7C153.5 32.9 150.5 36 149.4 43.1C148.2 36 145.3 32.9 138.3 31.7C145.3 30.5 148.2 27.7 149.4 20.5Z"/>
48
+
49
+ <text x="184" y="100" fill="url(#kri-horizontal-text)" font-family="'PingFang SC', 'Microsoft YaHei', sans-serif" font-size="66" font-weight="700" letter-spacing="1">坤肉AI</text>
50
+ </svg>
@@ -1,108 +1,108 @@
1
- {
2
- "auth-key": "",
3
- "refresh_account_interval_minute": 5,
4
- "image_retention_days": 15,
5
- "image_poll_timeout_secs": 120,
6
- "auto_remove_rate_limited_accounts": false,
7
- "auto_remove_invalid_accounts": false,
8
- "log_levels": [
9
- "debug",
10
- "error",
11
- "info",
12
- "warning"
13
- ],
14
- "proxy": "",
15
- "proxy_runtime": {
16
- "enabled": false,
17
- "egress_mode": "single_proxy",
18
- "proxy_url": "",
19
- "resource_proxy_url": "",
20
- "skip_ssl_verify": false,
21
- "reset_session_status_codes": [
22
- 403
23
- ],
24
- "clearance": {
25
- "enabled": false,
26
- "mode": "flaresolverr",
27
- "cf_cookies": "",
28
- "cf_clearance": "",
29
- "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36",
30
- "browser": "chrome",
31
- "flaresolverr_url": "http://flaresolverr:8191",
32
- "timeout_sec": 60,
33
- "refresh_interval": 3600,
34
- "warm_up_on_start": true
35
- }
36
- },
37
- "base_url": "",
38
- "sensitive_words": [],
39
- "global_system_prompt": "",
40
- "default_upstream_model_name": "gpt-5-5",
41
- "default_thinking_effort": "auto",
42
- "ai_review": {
43
- "enabled": false,
44
- "base_url": "",
45
- "api_key": "",
46
- "model": "",
47
- "prompt": ""
48
- },
49
- "backup": {
50
- "enabled": false,
51
- "provider": "cloudflare_r2",
52
- "account_id": "admin",
53
- "access_key_id": "",
54
- "secret_access_key": "",
55
- "bucket": "",
56
- "prefix": "backups",
57
- "interval_minutes": 1440,
58
- "rotation_keep": 10,
59
- "encrypt": false,
60
- "passphrase": "",
61
- "include": {
62
- "config": true,
63
- "cpa": true,
64
- "sub2api": true,
65
- "logs": true,
66
- "image_tasks": true,
67
- "accounts_snapshot": true,
68
- "auth_keys_snapshot": true,
69
- "images": false
70
- }
71
- },
72
- "image_account_concurrency": 3,
73
- "image_parallel_generation": true,
74
- "image_poll_interval_secs": 10,
75
- "image_poll_initial_wait_secs": 10,
76
- "image_storage": {
77
- "enabled": false,
78
- "mode": "local",
79
- "webdav_url": "",
80
- "webdav_username": "",
81
- "webdav_password": "",
82
- "webdav_root_path": "chatgpt2api/images",
83
- "public_base_url": ""
84
- },
85
- "image_min_free_mb": 500,
86
- "chat_completion_cache": {
87
- "enabled": true,
88
- "ttl_seconds": 60,
89
- "max_entries": 256,
90
- "dedupe_inflight": true,
91
- "stream_cache": true,
92
- "normalize_messages": true,
93
- "drop_adjacent_duplicates": true,
94
- "drop_assistant_history": false
95
- },
96
- "image_settle_enabled": false,
97
- "image_check_before_hit_enabled": false,
98
- "image_settle_secs": 2,
99
- "auto_relogin_after_refresh": false,
100
- "image_timeout_retry_secs": 30,
101
- "third_party_apps": {
102
- "infinite_canvas": {
103
- "enabled": true,
104
- "url": "https://canvas.best"
105
- }
106
- },
107
- "image_remove_conversation_after_result": true
108
- }
1
+ {
2
+ "auth-key": "",
3
+ "refresh_account_interval_minute": 5,
4
+ "image_retention_days": 15,
5
+ "image_poll_timeout_secs": 120,
6
+ "auto_remove_rate_limited_accounts": false,
7
+ "auto_remove_invalid_accounts": false,
8
+ "log_levels": [
9
+ "debug",
10
+ "error",
11
+ "info",
12
+ "warning"
13
+ ],
14
+ "proxy": "",
15
+ "proxy_runtime": {
16
+ "enabled": false,
17
+ "egress_mode": "single_proxy",
18
+ "proxy_url": "",
19
+ "resource_proxy_url": "",
20
+ "skip_ssl_verify": false,
21
+ "reset_session_status_codes": [
22
+ 403
23
+ ],
24
+ "clearance": {
25
+ "enabled": false,
26
+ "mode": "flaresolverr",
27
+ "cf_cookies": "",
28
+ "cf_clearance": "",
29
+ "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36",
30
+ "browser": "chrome",
31
+ "flaresolverr_url": "http://flaresolverr:8191",
32
+ "timeout_sec": 60,
33
+ "refresh_interval": 3600,
34
+ "warm_up_on_start": true
35
+ }
36
+ },
37
+ "base_url": "",
38
+ "sensitive_words": [],
39
+ "global_system_prompt": "",
40
+ "default_upstream_model_name": "gpt-5-5",
41
+ "default_thinking_effort": "auto",
42
+ "ai_review": {
43
+ "enabled": false,
44
+ "base_url": "",
45
+ "api_key": "",
46
+ "model": "",
47
+ "prompt": ""
48
+ },
49
+ "backup": {
50
+ "enabled": false,
51
+ "provider": "cloudflare_r2",
52
+ "account_id": "admin",
53
+ "access_key_id": "",
54
+ "secret_access_key": "",
55
+ "bucket": "",
56
+ "prefix": "backups",
57
+ "interval_minutes": 1440,
58
+ "rotation_keep": 10,
59
+ "encrypt": false,
60
+ "passphrase": "",
61
+ "include": {
62
+ "config": true,
63
+ "cpa": true,
64
+ "sub2api": true,
65
+ "logs": true,
66
+ "image_tasks": true,
67
+ "accounts_snapshot": true,
68
+ "auth_keys_snapshot": true,
69
+ "images": false
70
+ }
71
+ },
72
+ "image_account_concurrency": 3,
73
+ "image_parallel_generation": true,
74
+ "image_poll_interval_secs": 10,
75
+ "image_poll_initial_wait_secs": 10,
76
+ "image_storage": {
77
+ "enabled": false,
78
+ "mode": "local",
79
+ "webdav_url": "",
80
+ "webdav_username": "",
81
+ "webdav_password": "",
82
+ "webdav_root_path": "chatgpt2api/images",
83
+ "public_base_url": ""
84
+ },
85
+ "image_min_free_mb": 500,
86
+ "chat_completion_cache": {
87
+ "enabled": true,
88
+ "ttl_seconds": 60,
89
+ "max_entries": 256,
90
+ "dedupe_inflight": true,
91
+ "stream_cache": true,
92
+ "normalize_messages": true,
93
+ "drop_adjacent_duplicates": true,
94
+ "drop_assistant_history": false
95
+ },
96
+ "image_settle_enabled": false,
97
+ "image_check_before_hit_enabled": false,
98
+ "image_settle_secs": 2,
99
+ "auto_relogin_after_refresh": false,
100
+ "image_timeout_retry_secs": 30,
101
+ "third_party_apps": {
102
+ "infinite_canvas": {
103
+ "enabled": true,
104
+ "url": "https://canvas.best"
105
+ }
106
+ },
107
+ "image_remove_conversation_after_result": true
108
+ }
@@ -1,9 +1,9 @@
1
- from __future__ import annotations
2
-
3
- import uvicorn
4
- from api import create_app
5
-
6
- app = create_app()
7
-
8
- if __name__ == "__main__":
9
- uvicorn.run(app, access_log=False, log_level="info")
1
+ from __future__ import annotations
2
+
3
+ import uvicorn
4
+ from api import create_app
5
+
6
+ app = create_app()
7
+
8
+ if __name__ == "__main__":
9
+ uvicorn.run(app, access_log=False, log_level="info")
@@ -1,27 +1,27 @@
1
- [project]
2
- name = "chatgpt2api"
3
- version = "0.1.0"
4
- description = "Add your description here"
5
- readme = "README.md"
6
- requires-python = ">=3.13"
7
- dependencies = [
8
- "curl-cffi>=0.15.0",
9
- "fastapi>=0.136.0",
10
- "pillow>=12.2.0",
11
- "pybase64>=1.4.3",
12
- "python-multipart>=0.0.26",
13
- "tiktoken>=0.12.0",
14
- "uvicorn>=0.44.0",
15
- "sqlalchemy>=2.0.0",
16
- "psycopg2-binary>=2.9.0",
17
- "gitpython>=3.1.0",
18
- ]
19
-
20
- [dependency-groups]
21
- dev = [
22
- "httpx>=0.28.1",
23
- ]
24
-
25
- [[tool.uv.index]]
26
- url = "https://mirrors.aliyun.com/pypi/simple"
27
- default = true
1
+ [project]
2
+ name = "chatgpt2api"
3
+ version = "0.1.0"
4
+ description = "Add your description here"
5
+ readme = "README.md"
6
+ requires-python = ">=3.13"
7
+ dependencies = [
8
+ "curl-cffi>=0.15.0",
9
+ "fastapi>=0.136.0",
10
+ "pillow>=12.2.0",
11
+ "pybase64>=1.4.3",
12
+ "python-multipart>=0.0.26",
13
+ "tiktoken>=0.12.0",
14
+ "uvicorn>=0.44.0",
15
+ "sqlalchemy>=2.0.0",
16
+ "psycopg2-binary>=2.9.0",
17
+ "gitpython>=3.1.0",
18
+ ]
19
+
20
+ [dependency-groups]
21
+ dev = [
22
+ "httpx>=0.28.1",
23
+ ]
24
+
25
+ [[tool.uv.index]]
26
+ url = "https://mirrors.aliyun.com/pypi/simple"
27
+ default = true