promptsetpurpose.html.php 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250
  1. <?php
  2. namespace zin;
  3. jsVar('promptID', $promptID);
  4. jsVar('currentFields', array_values($currentFields));
  5. jsVar('knowledgeLibs', array_values($knowledgeLibs));
  6. jsVar('currentPrompt', $currentPrompt);
  7. jsVar('deleteTip', $lang->ai->miniPrograms->deleteFieldTip);
  8. jsVar('fieldAdd', $lang->ai->miniPrograms->field->add);
  9. jsVar('fieldAddTip', $lang->ai->miniPrograms->field->addTip);
  10. jsVar('knowledgeLibAdd', $lang->ai->miniPrograms->knowledgeLibAdd);
  11. jsVar('knowledgeLibAddTip', $lang->ai->miniPrograms->knowledgeLibAddTip);
  12. jsVar('unpublished', $lang->ai->knowledgeLibs->unpublished);
  13. jsVar('deleted', $lang->ai->knowledgeLibs->deleted);
  14. jsVar('confirmDelete', $lang->confirmDelete);
  15. jsVar('fieldEdit', $lang->ai->miniPrograms->field->edit);
  16. jsVar('fieldName', $lang->ai->miniPrograms->field->name);
  17. jsVar('fieldOption', $lang->ai->miniPrograms->field->option);
  18. jsVar('pleaseInput', $lang->ai->miniPrograms->placeholder->input);
  19. jsVar('fieldPlaceholder', $lang->ai->miniPrograms->placeholder->input);
  20. jsVar('emptyWarning', $lang->ai->miniPrograms->field->emptyNameWarning);
  21. jsVar('duplicatedWarning', $lang->ai->miniPrograms->field->duplicatedNameWarning);
  22. jsVar('emptyOptionWarning', $lang->ai->miniPrograms->field->emptyOptionWarning);
  23. jsVar('saveFailed', $lang->ai->saveFail);
  24. jsVar('promptPlaceholder', $lang->ai->miniPrograms->placeholder->prompt);
  25. include './promptnav.html.php';
  26. /* 构建预览列表 */
  27. function buildPreviewList($lang, $prompt, $dataPreview, $knowledgeLibs)
  28. {
  29. $knowledgeLibNames = [];
  30. foreach($knowledgeLibs as $knowledgeLib)
  31. {
  32. $available = $knowledgeLib->published === '1' && $knowledgeLib->deleted === '0';
  33. if(!$available) continue;
  34. $knowledgeLibNames[] = $knowledgeLib->name;
  35. }
  36. return ul(
  37. setClass('preview-list'),
  38. li(
  39. h5($lang->ai->prompts->dataPreview),
  40. p(
  41. setClass('pre'),
  42. $dataPreview
  43. )
  44. ),
  45. li(
  46. h5($lang->ai->prompts->rolePreview),
  47. p(
  48. setClass('whitespace-pre-wrap'),
  49. $prompt->role
  50. ),
  51. p(
  52. setClass('whitespace-pre-wrap'),
  53. $prompt->characterization
  54. )
  55. ),
  56. li(
  57. h5($lang->ai->miniPrograms->field->prompterPreview),
  58. div(
  59. setID('prompt-preview')
  60. )
  61. ),
  62. li(
  63. h5($lang->ai->miniPrograms->field->knowledgeLibs),
  64. p(
  65. setID('knowledgelib-names'),
  66. setClass('whitespace-pre-wrap'),
  67. implode(', ', $knowledgeLibNames)
  68. )
  69. )
  70. );
  71. }
  72. div(
  73. setClass('prompt-set-purpose'),
  74. div(
  75. setClass('panels'),
  76. div(
  77. setClass('form-panel'),
  78. div(
  79. setClass('section-content'),
  80. div(
  81. setClass('panel-area'),
  82. h3(
  83. setClass('text-md'),
  84. $lang->ai->miniPrograms->field->fields
  85. ),
  86. ol(
  87. setID('field-list'),
  88. setClass('field-list sortable')
  89. )
  90. ),
  91. div(
  92. setClass('panel-area'),
  93. h3(
  94. setClass('text-md field-required'),
  95. $lang->ai->miniPrograms->field->prompt,
  96. icon('help'),
  97. small(
  98. set::title($lang->ai->miniPrograms->field->prompterDesignTip),
  99. setClass('text-ellipsis'),
  100. $lang->ai->miniPrograms->field->prompterDesignTip
  101. )
  102. ),
  103. div(setID('prompt-editor'))
  104. ),
  105. div(
  106. setClass('panel-area'),
  107. h3(
  108. setClass('text-md'),
  109. $lang->ai->miniPrograms->field->knowledgeLibs
  110. ),
  111. ol(
  112. setID('knowledge-libs'),
  113. setClass('field-list')
  114. )
  115. )
  116. )
  117. ),
  118. div(
  119. setClass('preview-panel'),
  120. div(
  121. setClass('section-header'),
  122. h2(
  123. setClass('text-md'),
  124. $lang->ai->prompts->inputPreview
  125. )
  126. ),
  127. div(
  128. setClass('section-content'),
  129. buildPreviewList($lang, $prompt, $dataPreview, $knowledgeLibs)
  130. )
  131. )
  132. ),
  133. div
  134. (
  135. setClass('actions'),
  136. btn
  137. (
  138. setID('btn-save'),
  139. set::type('primary'),
  140. $lang->ai->nextStep
  141. )
  142. )
  143. );
  144. div(
  145. setClass('modal fade'),
  146. setData('backdrop', 'static'),
  147. setID('field-modal'),
  148. div(
  149. setClass('modal-dialog shadow size-sm bd-none'),
  150. div(
  151. setClass('modal-content'),
  152. div(setClass('modal-header items-center'), span
  153. (
  154. setStyle(array(
  155. 'font-size' => '20px',
  156. 'font-weight' => 'bold',
  157. )),
  158. $lang->ai->miniPrograms->field->add
  159. )),
  160. div
  161. (
  162. setClass('modal-actions'),
  163. button
  164. (
  165. setClass('btn square ghost'),
  166. setData('dismiss', 'modal'),
  167. span
  168. (
  169. setClass('close')
  170. )
  171. )
  172. ),
  173. div(
  174. setClass('modal-body form form-horz'),
  175. formGroup
  176. (
  177. set::label($lang->ai->miniPrograms->field->name),
  178. set::required(true),
  179. input
  180. (
  181. set::name('field-name'),
  182. set::maxlength('16'),
  183. set::required(true)
  184. )
  185. ),
  186. formGroup
  187. (
  188. set::label($lang->ai->miniPrograms->field->type),
  189. select
  190. (
  191. set::name('field-type'),
  192. set::items(array(
  193. 'text' => $lang->ai->miniPrograms->field->typeList['text'],
  194. 'textarea' => $lang->ai->miniPrograms->field->typeList['textarea'],
  195. 'radio' => $lang->ai->miniPrograms->field->typeList['radio'],
  196. 'checkbox' => $lang->ai->miniPrograms->field->typeList['checkbox']
  197. )),
  198. set::value('text'),
  199. set::required(true)
  200. )
  201. ),
  202. formGroup
  203. (
  204. setID('field-placeholder'),
  205. set::label($lang->ai->miniPrograms->field->placeholder),
  206. input
  207. (
  208. set::name('field-placeholder'),
  209. set::placeholder($lang->ai->miniPrograms->placeholder->default)
  210. )
  211. ),
  212. formGroup
  213. (
  214. setID('field-options'),
  215. setClass('field-options hidden'),
  216. set::label('')
  217. ),
  218. formGroup
  219. (
  220. set::label($lang->ai->miniPrograms->field->required),
  221. radioList
  222. (
  223. set::name('field-required'),
  224. set::items(array(
  225. '1' => $lang->ai->miniPrograms->field->requiredOptions[1],
  226. '0' => $lang->ai->miniPrograms->field->requiredOptions[0]
  227. )),
  228. set::value('1'),
  229. set::inline(true)
  230. )
  231. )
  232. ),
  233. div(
  234. setClass('modal-footer flex items-center justify-center'),
  235. btn(
  236. setID('field-modal-save'),
  237. setClass('btn btn-wide primary'),
  238. $lang->save
  239. )
  240. )
  241. )
  242. )
  243. );