mint.php 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. <?php
  2. return [
  3. 'app' => [
  4. 'icp_code' => env('APP_ICP_CODE', ''),
  5. 'mps_code' => env('APP_MPS_CODE', ''),
  6. 'jwt_secrets_key' => env('JWT_SECRETS_KEY', ''),
  7. /*
  8. |--------------------------------------------------------------------------
  9. | 运维接口令牌(/api/ops/*),通过 Authorization: Bearer <token> 传递
  10. |--------------------------------------------------------------------------
  11. */
  12. 'ops_token' => env('APP_OPS_TOKEN', ''),
  13. ],
  14. 'languages' => [
  15. 'en' => 'English',
  16. 'zh-Hans' => '简体中文',
  17. 'zh-Hant' => '繁體中文',
  18. 'my' => 'မြန်မာဘာသာ',
  19. 'th' => 'ภาษาไทย',
  20. 'si' => 'සිංහල',
  21. 'vi' => 'Tiếng Việt',
  22. 'lo' => 'ພາສາລາວ',
  23. ],
  24. 'default_language' => 'en',
  25. 'library' => [
  26. 'list_min_progress' => env('LIBRARY_LIST_MIN_PROGRESS', 0.5),
  27. ],
  28. 'snowflake' => [
  29. 'data_center_id' => env('SNOWFLAKE_DATA_CENTER_ID', 1),
  30. 'worker_id' => env('SNOWFLAKE_WORKER_ID', 1),
  31. /*
  32. |--------------------------------------------------------------------------
  33. | snowflake id start date don't modify
  34. |--------------------------------------------------------------------------
  35. */
  36. 'start' => '2021-12-22',
  37. ],
  38. 'server' => [
  39. 'rpc' => [
  40. 'grpc' => env('GRPC_WEB_SERVER', 'http://localhost:9999'),
  41. 'morus' => [
  42. 'host' => env('MORUS_GRPC_HOST', 'localhost'),
  43. 'port' => env('MORUS_GRPC_PORT', 9999),
  44. ],
  45. 'lily' => [
  46. 'host' => env('LILY_GRPC_HOST', 'localhost'),
  47. 'port' => env('LILY_GRPC_PORT', 9000),
  48. ],
  49. 'tulip' => [
  50. 'host' => env('TULIP_GRPC_HOST', 'localhost'),
  51. 'port' => env('TULIP_GRPC_PORT', 9990),
  52. ],
  53. ],
  54. 'api' => [
  55. 'default' => env('APP_API', 'http://localhost:8000/api'),
  56. 'bamboo' => env('BAMBOO_API_HOST', env('APP_URL') . '/api'),
  57. ],
  58. 'assets' => env('ASSETS_SERVER', 'localhost:9999'),
  59. 'dashboard_base_path' => env('DASHBOARD_BASE_PATH', 'http://127.0.0.1:4000/pcd-v2026'),
  60. // TODO v4下线后需要修改
  61. 'workspace_base_path' => env('DASHBOARD_BASE_PATH', 'http://127.0.0.1:4000/pcd') . '-v2026/workspace',
  62. 'cdn_urls' => explode(',', env('CDN_URLS', 'https://www.wikipali.cc/downloads')),
  63. ],
  64. 'attachments' => [
  65. 'bucket_name' => [
  66. 'temporary' => env('ATTACHMENTS_TEMPORARY_BUCKET_NAME', 'attachments-staging'),
  67. 'permanent' => env('ATTACHMENTS_PERMANENT_BUCKET_NAME', 'attachments-staging'),
  68. ],
  69. ],
  70. 'cache' => [
  71. // 这个值prod,staging无需设置
  72. 'expire' => env('CACHE_EXPIRE', 36000),
  73. ],
  74. /*
  75. |--------------------------------------------------------------------------
  76. | 另外增添的路径
  77. |--------------------------------------------------------------------------
  78. |
  79. |
  80. */
  81. 'path' => [
  82. 'dependence' => storage_path('depandence'),
  83. 'palitext' => storage_path('resources/pali_html'),
  84. 'palitext_filelist' => storage_path('resources/pali_html/filelist.csv'),
  85. 'palicsv' => storage_path('app/tmp/pali_csv'),
  86. 'pali_title' => storage_path('resources/pali_title'),
  87. 'paliword' => storage_path('resources/pali_word'),
  88. 'paliword_book' => storage_path('resources/pali_word/book'),
  89. 'paliword_index' => storage_path('resources/pali_word/index'),
  90. 'word_statistics' => storage_path('resources/word_statistics/data'),
  91. 'dict_text' => storage_path('resources/dict_text'),
  92. 'corpus' => storage_path('resources/corpus'),
  93. ],
  94. 'admin' => [
  95. 'root_uuid' => '6e12f8ea-ee4d-4e0f-a6b0-472f2d99a814',
  96. 'robot_uuid' => '6e12f8ea-ee4d-4e0f-a6b0-472f2d99a814',
  97. 'cs_channel' => '1e4b926d-54d7-4932-b8a6-7cdc65abd992',
  98. ],
  99. 'dependence' => [
  100. [
  101. 'url' => 'https://www.github.com/iapt-platform/wipali-globle',
  102. 'path' => 'wipali-globle',
  103. ],
  104. ],
  105. 'email' => [
  106. 'ScheduleEmailOutputTo' => env('SCHEDULE_EMAIL_OUTPUTTO', 'kosalla1987@126.com'),
  107. 'ScheduleEmailOutputOnFailure' => env('SCHEDULE_EMAIL_OUTPUTONFAILURE', 'kosalla1987@126.com'),
  108. ],
  109. 'ai' => [
  110. 'proxy' => env('OPENAI_PROXY', 'http://127.0.0.1:4000'),
  111. 'assistant' => 'test161',
  112. 'default' => 'kimi',
  113. 'logo' => [
  114. 'gemini' => 'gemini-color.png',
  115. 'grok' => 'grok.png',
  116. 'Claude' => 'claude-color.png',
  117. 'api.openai.com' => 'openai.png',
  118. 'qwen' => 'qwen-color.png',
  119. 'deepseek' => 'deepseek-color.png',
  120. ],
  121. ],
  122. 'mq' => [
  123. 'loop_limit' => [
  124. 'ai_translate' => env('MQ_LOOP_LIMIT_AI_TRANSLATE', 0),
  125. ],
  126. ],
  127. 'rabbitmq' => [
  128. 'queues' => [
  129. 'task' => ['retry_times' => env('RABBITMQ_AI_RETRY_TIMES', 3)],
  130. 'discussion' => ['retry_times' => env('RABBITMQ_AI_RETRY_TIMES', 3)],
  131. 'export_pali_chapter' => ['retry_times' => env('RABBITMQ_AI_RETRY_TIMES', 3)],
  132. 'export_article' => ['retry_times' => env('RABBITMQ_AI_RETRY_TIMES', 3)],
  133. 'progress' => ['retry_times' => env('RABBITMQ_AI_RETRY_TIMES', 3)],
  134. 'content' => ['retry_times' => env('RABBITMQ_AI_RETRY_TIMES', 3)],
  135. 'suggestion' => ['retry_times' => env('RABBITMQ_AI_RETRY_TIMES', 3)],
  136. 'wbw-analyses' => ['retry_times' => env('RABBITMQ_AI_RETRY_TIMES', 3)],
  137. 'ai_translate_v2' => [
  138. 'retry_times' => env('RABBITMQ_AI_RETRY_TIMES', 3),
  139. 'max_loop_count' => env('RABBITMQ_AI_MAX_LOOP', 10),
  140. 'timeout' => env('RABBITMQ_AI_TIMEOUT', 300),
  141. 'dead_letter_queue' => 'ai_translate_dlq',
  142. 'dead_letter_exchange' => 'ai_translate_dlx',
  143. ],
  144. 'heartbeat_queue' => [
  145. 'ttl' => 86400000, // 24小时 TTL (毫秒)
  146. 'max_length' => 10000,
  147. ],
  148. ],
  149. // 死信队列配置
  150. 'dead_letter_queues' => [
  151. 'ai_translate_dlq' => [
  152. 'ttl' => 86400000, // 24小时 TTL (毫秒)
  153. 'max_length' => 10000,
  154. ],
  155. ],
  156. ],
  157. 'opensearch' => [
  158. 'index' => 'wikipali_20260813',
  159. 'config' => [
  160. 'scheme' => env('OPENSEARCH_SCHEME', 'http'),
  161. 'host' => env('OPENSEARCH_HOST', '127.0.0.1'),
  162. 'port' => env('OPENSEARCH_PORT', 9200),
  163. 'username' => env('OPENSEARCH_USERNAME', ''),
  164. 'password' => env('OPENSEARCH_PASSWORD', ''),
  165. 'ssl_verification' => env('OPENSEARCH_SSL_VERIFICATION', false),
  166. 'synonyms_path' => env('OPENSEARCH_SYNONYMS_PATH', '/opt/opensearch/config/analysis'),
  167. ],
  168. ],
  169. ];