config.php 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. <?php
  2. return array(
  3. // Default AI Provider
  4. array(
  5. 'name' => 'default_provider',
  6. 'title' => lang('AI Provider'),
  7. 'type' => 'select',
  8. 'content' => array(
  9. 'claude' => lang('Claude (Anthropic)'),
  10. 'openai' => lang('OpenAI (GPT)'),
  11. 'gemini' => lang('Google Gemini'),
  12. 'deepseek' => lang('DeepSeek'),
  13. 'qwen' => lang('Alibaba Qwen'),
  14. 'glm' => lang('Zhipu GLM'),
  15. ),
  16. 'value' => 'claude',
  17. 'rule' => 'required',
  18. 'msg' => '',
  19. 'tip' => lang('Default AI provider for content generation.'),
  20. 'ok' => '',
  21. 'extend' => 'id="ai-provider-select" lay-filter="ai-provider-select"',
  22. ),
  23. // Default Model
  24. array(
  25. 'name' => 'default_model',
  26. 'title' => lang('Model Name'),
  27. 'type' => 'string',
  28. 'content' => array(),
  29. 'value' => 'claude-sonnet-4-6',
  30. 'rule' => 'required',
  31. 'msg' => '',
  32. 'tip' => lang('Claude: claude-sonnet-4-6 | OpenAI: gpt-4o | Gemini: gemini-2.0-flash | DeepSeek: deepseek-chat | Qwen: qwen-turbo | GLM: glm-4'),
  33. 'ok' => '',
  34. 'extend' => '',
  35. ),
  36. // --- API Keys ---
  37. array(
  38. 'name' => 'claude_key',
  39. 'title' => lang('Claude Key'),
  40. 'type' => 'string',
  41. 'content' => array(),
  42. 'value' => '',
  43. 'rule' => '',
  44. 'msg' => '',
  45. 'tip' => lang('Anthropic API key (console.anthropic.com)'),
  46. 'ok' => '',
  47. 'extend' => 'data-provider="claude"',
  48. ),
  49. array(
  50. 'name' => 'openai_key',
  51. 'title' => lang('OpenAI Key'),
  52. 'type' => 'string',
  53. 'content' => array(),
  54. 'value' => '',
  55. 'rule' => '',
  56. 'msg' => '',
  57. 'tip' => lang('OpenAI API key (platform.openai.com)'),
  58. 'ok' => '',
  59. 'extend' => 'data-provider="openai"',
  60. ),
  61. array(
  62. 'name' => 'gemini_key',
  63. 'title' => lang('Gemini Key'),
  64. 'type' => 'string',
  65. 'content' => array(),
  66. 'value' => '',
  67. 'rule' => '',
  68. 'msg' => '',
  69. 'tip' => lang('Google AI Studio API key (aistudio.google.com)'),
  70. 'ok' => '',
  71. 'extend' => 'data-provider="gemini"',
  72. ),
  73. array(
  74. 'name' => 'deepseek_key',
  75. 'title' => lang('DeepSeek Key'),
  76. 'type' => 'string',
  77. 'content' => array(),
  78. 'value' => '',
  79. 'rule' => '',
  80. 'msg' => '',
  81. 'tip' => lang('DeepSeek platform API key (platform.deepseek.com)'),
  82. 'ok' => '',
  83. 'extend' => 'data-provider="deepseek"',
  84. ),
  85. array(
  86. 'name' => 'qwen_key',
  87. 'title' => lang('Qwen Key'),
  88. 'type' => 'string',
  89. 'content' => array(),
  90. 'value' => '',
  91. 'rule' => '',
  92. 'msg' => '',
  93. 'tip' => lang('Alibaba DashScope API key (dashscope.console.aliyun.com)'),
  94. 'ok' => '',
  95. 'extend' => 'data-provider="qwen"',
  96. ),
  97. array(
  98. 'name' => 'glm_key',
  99. 'title' => lang('GLM Key'),
  100. 'type' => 'string',
  101. 'content' => array(),
  102. 'value' => '',
  103. 'rule' => '',
  104. 'msg' => '',
  105. 'tip' => lang('Zhipu AI API key (open.bigmodel.cn)'),
  106. 'ok' => '',
  107. 'extend' => 'data-provider="glm"',
  108. ),
  109. // --- Generation Settings ---
  110. array(
  111. 'name' => 'max_tokens',
  112. 'title' => lang('Max Tokens'),
  113. 'type' => 'string',
  114. 'content' => array(),
  115. 'value' => '1500',
  116. 'rule' => 'required',
  117. 'msg' => '',
  118. 'tip' => lang('Max tokens in AI response. Recommended: 800-2000.'),
  119. 'ok' => '',
  120. 'extend' => '',
  121. ),
  122. array(
  123. 'name' => 'batch_size',
  124. 'title' => lang('Batch Size'),
  125. 'type' => 'string',
  126. 'content' => array(),
  127. 'value' => '10',
  128. 'rule' => 'required',
  129. 'msg' => '',
  130. 'tip' => lang('Items per batch job.'),
  131. 'ok' => '',
  132. 'extend' => '',
  133. ),
  134. array(
  135. 'name' => 'request_timeout',
  136. 'title' => lang('Timeout (s)'),
  137. 'type' => 'string',
  138. 'content' => array(),
  139. 'value' => '30',
  140. 'rule' => 'required',
  141. 'msg' => '',
  142. 'tip' => lang('HTTP timeout in seconds for AI API calls.'),
  143. 'ok' => '',
  144. 'extend' => '',
  145. ),
  146. // --- Output Language ---
  147. array(
  148. 'name' => 'language',
  149. 'title' => lang('Language'),
  150. 'type' => 'select',
  151. 'content' => array(
  152. 'zh-cn' => lang('Chinese Simplified (简体中文)'),
  153. 'zh-tw' => lang('Chinese Traditional (繁體中文)'),
  154. 'en-us' => lang('English'),
  155. 'ko-kr' => lang('Korean (한국어)'),
  156. 'ja-jp' => lang('Japanese (日本語)'),
  157. 'de-de' => lang('German (Deutsch)'),
  158. 'fr-fr' => lang('French (Français)'),
  159. 'es-es' => lang('Spanish (Español)'),
  160. 'pt-pt' => lang('Portuguese (Português)'),
  161. ),
  162. 'value' => 'zh-cn',
  163. 'rule' => 'required',
  164. 'msg' => '',
  165. 'tip' => lang('Language for AI generated content.'),
  166. 'ok' => '',
  167. 'extend' => '',
  168. ),
  169. );