@elgap/edukaai 0.1.0

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 (306) hide show
  1. package/.output/nitro.json +15 -0
  2. package/.output/public/_nuxt/BHDzAs85.js +1 -0
  3. package/.output/public/_nuxt/BJzbfdL_.js +1 -0
  4. package/.output/public/_nuxt/BKGLlKXk.js +6 -0
  5. package/.output/public/_nuxt/BLuXzJk3.js +1 -0
  6. package/.output/public/_nuxt/BNOzzLI3.js +1 -0
  7. package/.output/public/_nuxt/BO5GMwXh.js +1 -0
  8. package/.output/public/_nuxt/BQRbsFGy.js +1 -0
  9. package/.output/public/_nuxt/Be4MVdOg.js +1 -0
  10. package/.output/public/_nuxt/Bu4d3Z1T.js +1 -0
  11. package/.output/public/_nuxt/BwpBBNv4.js +1 -0
  12. package/.output/public/_nuxt/C1Og9-6n.js +97 -0
  13. package/.output/public/_nuxt/C3CjAhtj.js +1 -0
  14. package/.output/public/_nuxt/C6E3Ty3z.js +1 -0
  15. package/.output/public/_nuxt/COct4B42.js +1 -0
  16. package/.output/public/_nuxt/CQ6g2dtj.js +1 -0
  17. package/.output/public/_nuxt/CURSW5TV.js +246 -0
  18. package/.output/public/_nuxt/CW57JW4s.js +1 -0
  19. package/.output/public/_nuxt/Cg2fM61o.js +18 -0
  20. package/.output/public/_nuxt/CgGOeWta.js +1 -0
  21. package/.output/public/_nuxt/CoyYbT7u.js +1 -0
  22. package/.output/public/_nuxt/D11MHbGc.js +133 -0
  23. package/.output/public/_nuxt/D24dz0S8.js +1 -0
  24. package/.output/public/_nuxt/D3EFPr8x.js +1 -0
  25. package/.output/public/_nuxt/Dvt4ZHil.js +1 -0
  26. package/.output/public/_nuxt/builds/latest.json +1 -0
  27. package/.output/public/_nuxt/builds/meta/ab87ba0e-6d0d-4466-8b12-00d44f8fb9d3.json +1 -0
  28. package/.output/public/_nuxt/default.C1K1-g4D.css +1 -0
  29. package/.output/public/_nuxt/entry.CH8k-Mga.css +1 -0
  30. package/.output/public/_nuxt/error-404.C-Ezrlz-.css +1 -0
  31. package/.output/public/_nuxt/error-500.DBWf9FGj.css +1 -0
  32. package/.output/public/_nuxt/first-training.wFDD65zm.css +1 -0
  33. package/.output/public/_nuxt/import.cUKYdCrq.css +1 -0
  34. package/.output/public/_nuxt/index.D-2VHyHA.css +1 -0
  35. package/.output/public/_nuxt/index.D4J_vHmL.css +1 -0
  36. package/.output/public/_nuxt/mPJeLIz7.js +1 -0
  37. package/.output/server/chunks/_/error-500.mjs +19 -0
  38. package/.output/server/chunks/_/error-500.mjs.map +1 -0
  39. package/.output/server/chunks/build/ExampleCard-styles.BUOJhEg0.mjs +8 -0
  40. package/.output/server/chunks/build/ExampleCard-styles.BUOJhEg0.mjs.map +1 -0
  41. package/.output/server/chunks/build/ExampleForm-Bcpl0CfL.mjs +238 -0
  42. package/.output/server/chunks/build/ExampleForm-Bcpl0CfL.mjs.map +1 -0
  43. package/.output/server/chunks/build/ImportPreview-styles.CFmMl5Ok.mjs +8 -0
  44. package/.output/server/chunks/build/ImportPreview-styles.CFmMl5Ok.mjs.map +1 -0
  45. package/.output/server/chunks/build/_id_-BUSGcL-H.mjs +113 -0
  46. package/.output/server/chunks/build/_id_-BUSGcL-H.mjs.map +1 -0
  47. package/.output/server/chunks/build/axolotl-C-EXGgM8.mjs +112 -0
  48. package/.output/server/chunks/build/axolotl-C-EXGgM8.mjs.map +1 -0
  49. package/.output/server/chunks/build/best-practices-DsadorHb.mjs +38 -0
  50. package/.output/server/chunks/build/best-practices-DsadorHb.mjs.map +1 -0
  51. package/.output/server/chunks/build/client.precomputed.mjs +4 -0
  52. package/.output/server/chunks/build/client.precomputed.mjs.map +1 -0
  53. package/.output/server/chunks/build/default-DPkqqHOE.mjs +354 -0
  54. package/.output/server/chunks/build/default-DPkqqHOE.mjs.map +1 -0
  55. package/.output/server/chunks/build/default-styles.DsqVVS7k.mjs +8 -0
  56. package/.output/server/chunks/build/default-styles.DsqVVS7k.mjs.map +1 -0
  57. package/.output/server/chunks/build/error-404-K4UfZNck.mjs +97 -0
  58. package/.output/server/chunks/build/error-404-K4UfZNck.mjs.map +1 -0
  59. package/.output/server/chunks/build/error-404-styles.DuDrf-v0.mjs +8 -0
  60. package/.output/server/chunks/build/error-404-styles.DuDrf-v0.mjs.map +1 -0
  61. package/.output/server/chunks/build/error-500-CA7TEPNg.mjs +79 -0
  62. package/.output/server/chunks/build/error-500-CA7TEPNg.mjs.map +1 -0
  63. package/.output/server/chunks/build/error-500-styles.8IYEHzz6.mjs +8 -0
  64. package/.output/server/chunks/build/error-500-styles.8IYEHzz6.mjs.map +1 -0
  65. package/.output/server/chunks/build/examples-BHK8MDrs.mjs +134 -0
  66. package/.output/server/chunks/build/examples-BHK8MDrs.mjs.map +1 -0
  67. package/.output/server/chunks/build/export-BzxFqqfP.mjs +233 -0
  68. package/.output/server/chunks/build/export-BzxFqqfP.mjs.map +1 -0
  69. package/.output/server/chunks/build/faq-DKch73dS.mjs +112 -0
  70. package/.output/server/chunks/build/faq-DKch73dS.mjs.map +1 -0
  71. package/.output/server/chunks/build/field-guide-qbukT8F0.mjs +38 -0
  72. package/.output/server/chunks/build/field-guide-qbukT8F0.mjs.map +1 -0
  73. package/.output/server/chunks/build/first-training-BbEOBcEW.mjs +343 -0
  74. package/.output/server/chunks/build/first-training-BbEOBcEW.mjs.map +1 -0
  75. package/.output/server/chunks/build/first-training-styles.BzOa_KRD.mjs +8 -0
  76. package/.output/server/chunks/build/first-training-styles.BzOa_KRD.mjs.map +1 -0
  77. package/.output/server/chunks/build/glossary-CxSGCJoH.mjs +397 -0
  78. package/.output/server/chunks/build/glossary-CxSGCJoH.mjs.map +1 -0
  79. package/.output/server/chunks/build/huggingface-TSmyUzZU.mjs +128 -0
  80. package/.output/server/chunks/build/huggingface-TSmyUzZU.mjs.map +1 -0
  81. package/.output/server/chunks/build/import-C0kYhRv9.mjs +247 -0
  82. package/.output/server/chunks/build/import-C0kYhRv9.mjs.map +1 -0
  83. package/.output/server/chunks/build/index-C1ntBEWd.mjs +235 -0
  84. package/.output/server/chunks/build/index-C1ntBEWd.mjs.map +1 -0
  85. package/.output/server/chunks/build/index-D3CxihcX.mjs +320 -0
  86. package/.output/server/chunks/build/index-D3CxihcX.mjs.map +1 -0
  87. package/.output/server/chunks/build/index-DgKa1cy0.mjs +360 -0
  88. package/.output/server/chunks/build/index-DgKa1cy0.mjs.map +1 -0
  89. package/.output/server/chunks/build/index-cG54gaKX.mjs +513 -0
  90. package/.output/server/chunks/build/index-cG54gaKX.mjs.map +1 -0
  91. package/.output/server/chunks/build/index-styles.BX2SZiiS.mjs +8 -0
  92. package/.output/server/chunks/build/index-styles.BX2SZiiS.mjs.map +1 -0
  93. package/.output/server/chunks/build/llm-training-DIqc0eiM.mjs +91 -0
  94. package/.output/server/chunks/build/llm-training-DIqc0eiM.mjs.map +1 -0
  95. package/.output/server/chunks/build/new-b3338aLF.mjs +92 -0
  96. package/.output/server/chunks/build/new-b3338aLF.mjs.map +1 -0
  97. package/.output/server/chunks/build/nuxt-link-Ceyd90PQ.mjs +290 -0
  98. package/.output/server/chunks/build/nuxt-link-Ceyd90PQ.mjs.map +1 -0
  99. package/.output/server/chunks/build/sample-datasets-CVLWMQUA.mjs +45 -0
  100. package/.output/server/chunks/build/sample-datasets-CVLWMQUA.mjs.map +1 -0
  101. package/.output/server/chunks/build/server.mjs +1979 -0
  102. package/.output/server/chunks/build/server.mjs.map +1 -0
  103. package/.output/server/chunks/build/styles.mjs +20 -0
  104. package/.output/server/chunks/build/styles.mjs.map +1 -0
  105. package/.output/server/chunks/build/test-router-BYM6Cpst.mjs +105 -0
  106. package/.output/server/chunks/build/test-router-BYM6Cpst.mjs.map +1 -0
  107. package/.output/server/chunks/nitro/nitro.mjs +5800 -0
  108. package/.output/server/chunks/nitro/nitro.mjs.map +1 -0
  109. package/.output/server/chunks/routes/renderer.mjs +481 -0
  110. package/.output/server/chunks/routes/renderer.mjs.map +1 -0
  111. package/.output/server/chunks/virtual/_virtual_spa-template.mjs +4 -0
  112. package/.output/server/chunks/virtual/_virtual_spa-template.mjs.map +1 -0
  113. package/.output/server/index.mjs +12 -0
  114. package/.output/server/index.mjs.map +1 -0
  115. package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/api/api.js +2 -0
  116. package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/api/app.js +2 -0
  117. package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/api/component.js +2 -0
  118. package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/api/context.js +2 -0
  119. package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/api/hooks.js +2 -0
  120. package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/api/index.js +22 -0
  121. package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/api/util.js +2 -0
  122. package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/const.js +5 -0
  123. package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/env.js +17 -0
  124. package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/index.js +45 -0
  125. package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/plugin.js +2 -0
  126. package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/proxy.js +111 -0
  127. package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/time.js +28 -0
  128. package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/package.json +37 -0
  129. package/.output/server/node_modules/.nitro/@vue/devtools-api@7.7.9/dist/index.cjs +42 -0
  130. package/.output/server/node_modules/.nitro/@vue/devtools-api@7.7.9/package.json +32 -0
  131. package/.output/server/node_modules/.nitro/hookable@5.5.3/dist/index.cjs +299 -0
  132. package/.output/server/node_modules/.nitro/hookable@5.5.3/package.json +49 -0
  133. package/.output/server/node_modules/.nitro/hookable@6.0.1/dist/index.mjs +266 -0
  134. package/.output/server/node_modules/.nitro/hookable@6.0.1/package.json +52 -0
  135. package/.output/server/node_modules/.nitro/perfect-debounce@1.0.0/dist/index.cjs +59 -0
  136. package/.output/server/node_modules/.nitro/perfect-debounce@1.0.0/package.json +44 -0
  137. package/.output/server/node_modules/.nitro/perfect-debounce@2.1.0/dist/index.mjs +89 -0
  138. package/.output/server/node_modules/.nitro/perfect-debounce@2.1.0/package.json +41 -0
  139. package/.output/server/node_modules/@babel/parser/lib/index.js +14582 -0
  140. package/.output/server/node_modules/@babel/parser/package.json +50 -0
  141. package/.output/server/node_modules/@iconify/utils/lib/colors/index.js +292 -0
  142. package/.output/server/node_modules/@iconify/utils/lib/colors/keywords.js +702 -0
  143. package/.output/server/node_modules/@iconify/utils/lib/css/common.js +76 -0
  144. package/.output/server/node_modules/@iconify/utils/lib/css/format.js +40 -0
  145. package/.output/server/node_modules/@iconify/utils/lib/css/icon.js +52 -0
  146. package/.output/server/node_modules/@iconify/utils/lib/css/icons.js +133 -0
  147. package/.output/server/node_modules/@iconify/utils/lib/customisations/bool.js +20 -0
  148. package/.output/server/node_modules/@iconify/utils/lib/customisations/defaults.js +15 -0
  149. package/.output/server/node_modules/@iconify/utils/lib/customisations/flip.js +18 -0
  150. package/.output/server/node_modules/@iconify/utils/lib/customisations/merge.js +18 -0
  151. package/.output/server/node_modules/@iconify/utils/lib/customisations/rotate.js +31 -0
  152. package/.output/server/node_modules/@iconify/utils/lib/emoji/cleanup.js +80 -0
  153. package/.output/server/node_modules/@iconify/utils/lib/emoji/convert.js +102 -0
  154. package/.output/server/node_modules/@iconify/utils/lib/emoji/data.js +29 -0
  155. package/.output/server/node_modules/@iconify/utils/lib/emoji/format.js +60 -0
  156. package/.output/server/node_modules/@iconify/utils/lib/emoji/parse.js +50 -0
  157. package/.output/server/node_modules/@iconify/utils/lib/emoji/regex/base.js +204 -0
  158. package/.output/server/node_modules/@iconify/utils/lib/emoji/regex/create.js +35 -0
  159. package/.output/server/node_modules/@iconify/utils/lib/emoji/regex/numbers.js +134 -0
  160. package/.output/server/node_modules/@iconify/utils/lib/emoji/regex/similar.js +167 -0
  161. package/.output/server/node_modules/@iconify/utils/lib/emoji/regex/tree.js +81 -0
  162. package/.output/server/node_modules/@iconify/utils/lib/emoji/replace/find.js +94 -0
  163. package/.output/server/node_modules/@iconify/utils/lib/emoji/replace/replace.js +28 -0
  164. package/.output/server/node_modules/@iconify/utils/lib/emoji/test/components.js +78 -0
  165. package/.output/server/node_modules/@iconify/utils/lib/emoji/test/missing.js +68 -0
  166. package/.output/server/node_modules/@iconify/utils/lib/emoji/test/name.js +47 -0
  167. package/.output/server/node_modules/@iconify/utils/lib/emoji/test/parse.js +105 -0
  168. package/.output/server/node_modules/@iconify/utils/lib/emoji/test/similar.js +38 -0
  169. package/.output/server/node_modules/@iconify/utils/lib/emoji/test/tree.js +94 -0
  170. package/.output/server/node_modules/@iconify/utils/lib/emoji/test/variations.js +64 -0
  171. package/.output/server/node_modules/@iconify/utils/lib/icon/defaults.js +26 -0
  172. package/.output/server/node_modules/@iconify/utils/lib/icon/merge.js +18 -0
  173. package/.output/server/node_modules/@iconify/utils/lib/icon/name.js +58 -0
  174. package/.output/server/node_modules/@iconify/utils/lib/icon/square.js +34 -0
  175. package/.output/server/node_modules/@iconify/utils/lib/icon/transformations.js +13 -0
  176. package/.output/server/node_modules/@iconify/utils/lib/icon-set/convert-info.js +126 -0
  177. package/.output/server/node_modules/@iconify/utils/lib/icon-set/expand.js +21 -0
  178. package/.output/server/node_modules/@iconify/utils/lib/icon-set/get-icon.js +27 -0
  179. package/.output/server/node_modules/@iconify/utils/lib/icon-set/get-icons.js +38 -0
  180. package/.output/server/node_modules/@iconify/utils/lib/icon-set/minify.js +93 -0
  181. package/.output/server/node_modules/@iconify/utils/lib/icon-set/parse.js +48 -0
  182. package/.output/server/node_modules/@iconify/utils/lib/icon-set/tree.js +24 -0
  183. package/.output/server/node_modules/@iconify/utils/lib/icon-set/validate-basic.js +44 -0
  184. package/.output/server/node_modules/@iconify/utils/lib/icon-set/validate.js +125 -0
  185. package/.output/server/node_modules/@iconify/utils/lib/index.js +53 -0
  186. package/.output/server/node_modules/@iconify/utils/lib/loader/custom.js +32 -0
  187. package/.output/server/node_modules/@iconify/utils/lib/loader/loader.js +28 -0
  188. package/.output/server/node_modules/@iconify/utils/lib/loader/modern.js +42 -0
  189. package/.output/server/node_modules/@iconify/utils/lib/loader/utils.js +63 -0
  190. package/.output/server/node_modules/@iconify/utils/lib/misc/objects.js +27 -0
  191. package/.output/server/node_modules/@iconify/utils/lib/misc/strings.js +27 -0
  192. package/.output/server/node_modules/@iconify/utils/lib/misc/title.js +10 -0
  193. package/.output/server/node_modules/@iconify/utils/lib/svg/build.js +115 -0
  194. package/.output/server/node_modules/@iconify/utils/lib/svg/defs.js +32 -0
  195. package/.output/server/node_modules/@iconify/utils/lib/svg/encode-svg-for-css.js +15 -0
  196. package/.output/server/node_modules/@iconify/utils/lib/svg/html.js +10 -0
  197. package/.output/server/node_modules/@iconify/utils/lib/svg/id.js +42 -0
  198. package/.output/server/node_modules/@iconify/utils/lib/svg/inner-html.js +23 -0
  199. package/.output/server/node_modules/@iconify/utils/lib/svg/parse.js +69 -0
  200. package/.output/server/node_modules/@iconify/utils/lib/svg/pretty.js +55 -0
  201. package/.output/server/node_modules/@iconify/utils/lib/svg/size.js +28 -0
  202. package/.output/server/node_modules/@iconify/utils/lib/svg/trim.js +8 -0
  203. package/.output/server/node_modules/@iconify/utils/lib/svg/url.js +23 -0
  204. package/.output/server/node_modules/@iconify/utils/lib/svg/viewbox.js +9 -0
  205. package/.output/server/node_modules/@iconify/utils/package.json +118 -0
  206. package/.output/server/node_modules/@iconify/vue/dist/iconify.mjs +1893 -0
  207. package/.output/server/node_modules/@iconify/vue/package.json +64 -0
  208. package/.output/server/node_modules/@vue/compiler-core/dist/compiler-core.cjs.prod.js +6763 -0
  209. package/.output/server/node_modules/@vue/compiler-core/package.json +58 -0
  210. package/.output/server/node_modules/@vue/compiler-dom/dist/compiler-dom.cjs.prod.js +689 -0
  211. package/.output/server/node_modules/@vue/compiler-dom/package.json +57 -0
  212. package/.output/server/node_modules/@vue/compiler-ssr/dist/compiler-ssr.cjs.js +1413 -0
  213. package/.output/server/node_modules/@vue/compiler-ssr/package.json +34 -0
  214. package/.output/server/node_modules/@vue/devtools-kit/dist/index.cjs +6850 -0
  215. package/.output/server/node_modules/@vue/devtools-kit/package.json +44 -0
  216. package/.output/server/node_modules/@vue/devtools-shared/dist/index.cjs +378 -0
  217. package/.output/server/node_modules/@vue/devtools-shared/package.json +34 -0
  218. package/.output/server/node_modules/@vue/reactivity/dist/reactivity.cjs.prod.js +1870 -0
  219. package/.output/server/node_modules/@vue/reactivity/package.json +55 -0
  220. package/.output/server/node_modules/@vue/runtime-core/dist/runtime-core.cjs.prod.js +6810 -0
  221. package/.output/server/node_modules/@vue/runtime-core/package.json +52 -0
  222. package/.output/server/node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.prod.js +1750 -0
  223. package/.output/server/node_modules/@vue/runtime-dom/package.json +60 -0
  224. package/.output/server/node_modules/@vue/server-renderer/dist/server-renderer.cjs.prod.js +883 -0
  225. package/.output/server/node_modules/@vue/server-renderer/package.json +55 -0
  226. package/.output/server/node_modules/@vue/shared/dist/shared.cjs.prod.js +604 -0
  227. package/.output/server/node_modules/@vue/shared/package.json +47 -0
  228. package/.output/server/node_modules/birpc/dist/index.cjs +296 -0
  229. package/.output/server/node_modules/birpc/package.json +57 -0
  230. package/.output/server/node_modules/consola/dist/chunks/prompt.mjs +280 -0
  231. package/.output/server/node_modules/consola/dist/core.mjs +512 -0
  232. package/.output/server/node_modules/consola/dist/index.mjs +651 -0
  233. package/.output/server/node_modules/consola/dist/shared/consola.DRwqZj3T.mjs +72 -0
  234. package/.output/server/node_modules/consola/dist/shared/consola.DXBYu-KD.mjs +288 -0
  235. package/.output/server/node_modules/consola/package.json +136 -0
  236. package/.output/server/node_modules/devalue/index.js +4 -0
  237. package/.output/server/node_modules/devalue/package.json +37 -0
  238. package/.output/server/node_modules/devalue/src/base64.js +110 -0
  239. package/.output/server/node_modules/devalue/src/constants.js +7 -0
  240. package/.output/server/node_modules/devalue/src/parse.js +246 -0
  241. package/.output/server/node_modules/devalue/src/stringify.js +350 -0
  242. package/.output/server/node_modules/devalue/src/uneval.js +490 -0
  243. package/.output/server/node_modules/devalue/src/utils.js +148 -0
  244. package/.output/server/node_modules/entities/dist/commonjs/decode-codepoint.js +77 -0
  245. package/.output/server/node_modules/entities/dist/commonjs/decode.js +568 -0
  246. package/.output/server/node_modules/entities/dist/commonjs/generated/decode-data-html.js +7 -0
  247. package/.output/server/node_modules/entities/dist/commonjs/generated/decode-data-xml.js +7 -0
  248. package/.output/server/node_modules/entities/dist/commonjs/internal/bin-trie-flags.js +21 -0
  249. package/.output/server/node_modules/entities/dist/commonjs/internal/decode-shared.js +31 -0
  250. package/.output/server/node_modules/entities/dist/commonjs/package.json +3 -0
  251. package/.output/server/node_modules/entities/package.json +120 -0
  252. package/.output/server/node_modules/estree-walker/dist/umd/estree-walker.js +344 -0
  253. package/.output/server/node_modules/estree-walker/package.json +37 -0
  254. package/.output/server/node_modules/pinia/dist/pinia.prod.cjs +719 -0
  255. package/.output/server/node_modules/pinia/package.json +94 -0
  256. package/.output/server/node_modules/source-map-js/lib/array-set.js +121 -0
  257. package/.output/server/node_modules/source-map-js/lib/base64-vlq.js +140 -0
  258. package/.output/server/node_modules/source-map-js/lib/base64.js +67 -0
  259. package/.output/server/node_modules/source-map-js/lib/binary-search.js +111 -0
  260. package/.output/server/node_modules/source-map-js/lib/mapping-list.js +79 -0
  261. package/.output/server/node_modules/source-map-js/lib/quick-sort.js +132 -0
  262. package/.output/server/node_modules/source-map-js/lib/source-map-consumer.js +1188 -0
  263. package/.output/server/node_modules/source-map-js/lib/source-map-generator.js +444 -0
  264. package/.output/server/node_modules/source-map-js/lib/source-node.js +413 -0
  265. package/.output/server/node_modules/source-map-js/lib/util.js +594 -0
  266. package/.output/server/node_modules/source-map-js/package.json +71 -0
  267. package/.output/server/node_modules/source-map-js/source-map.js +8 -0
  268. package/.output/server/node_modules/tailwindcss/dist/chunk-X4GG3EDV.mjs +1 -0
  269. package/.output/server/node_modules/tailwindcss/dist/colors.mjs +1 -0
  270. package/.output/server/node_modules/tailwindcss/package.json +89 -0
  271. package/.output/server/node_modules/ufo/dist/index.mjs +645 -0
  272. package/.output/server/node_modules/ufo/package.json +48 -0
  273. package/.output/server/node_modules/unhead/dist/index.mjs +9 -0
  274. package/.output/server/node_modules/unhead/dist/parser.mjs +508 -0
  275. package/.output/server/node_modules/unhead/dist/plugins.mjs +101 -0
  276. package/.output/server/node_modules/unhead/dist/scripts.mjs +30 -0
  277. package/.output/server/node_modules/unhead/dist/server.mjs +180 -0
  278. package/.output/server/node_modules/unhead/dist/shared/unhead.BPM0-cfG.mjs +44 -0
  279. package/.output/server/node_modules/unhead/dist/shared/unhead.BYvz9V1x.mjs +43 -0
  280. package/.output/server/node_modules/unhead/dist/shared/unhead.BnoAbrHA.mjs +269 -0
  281. package/.output/server/node_modules/unhead/dist/shared/unhead.CApf5sj3.mjs +148 -0
  282. package/.output/server/node_modules/unhead/dist/shared/unhead.CbpEuj3y.mjs +71 -0
  283. package/.output/server/node_modules/unhead/dist/shared/unhead.DQc16pHI.mjs +196 -0
  284. package/.output/server/node_modules/unhead/dist/shared/unhead.D_nrZZPH.mjs +182 -0
  285. package/.output/server/node_modules/unhead/dist/shared/unhead.ckV6dpEQ.mjs +166 -0
  286. package/.output/server/node_modules/unhead/dist/shared/unhead.fVVqDC1O.mjs +203 -0
  287. package/.output/server/node_modules/unhead/dist/shared/unhead.yem5I2v_.mjs +38 -0
  288. package/.output/server/node_modules/unhead/dist/utils.mjs +5 -0
  289. package/.output/server/node_modules/unhead/package.json +105 -0
  290. package/.output/server/node_modules/vue/dist/vue.cjs.js +80 -0
  291. package/.output/server/node_modules/vue/dist/vue.cjs.prod.js +66 -0
  292. package/.output/server/node_modules/vue/index.js +7 -0
  293. package/.output/server/node_modules/vue/index.mjs +1 -0
  294. package/.output/server/node_modules/vue/package.json +112 -0
  295. package/.output/server/node_modules/vue/server-renderer/index.mjs +1 -0
  296. package/.output/server/node_modules/vue-bundle-renderer/dist/runtime.mjs +301 -0
  297. package/.output/server/node_modules/vue-bundle-renderer/package.json +55 -0
  298. package/.output/server/node_modules/vue-router/dist/devtools-EWN81iOl.mjs +1220 -0
  299. package/.output/server/node_modules/vue-router/dist/vue-router.mjs +1557 -0
  300. package/.output/server/node_modules/vue-router/package.json +153 -0
  301. package/.output/server/node_modules/vue-router/vue-router.node.mjs +2 -0
  302. package/.output/server/package.json +37 -0
  303. package/LICENSE +21 -0
  304. package/README.md +132 -0
  305. package/bin/cli.js +75 -0
  306. package/package.json +71 -0
@@ -0,0 +1 @@
1
+ import{_ as r}from"./C6E3Ty3z.js";import{c as n,a as t,b as l,w as a,m as i,o as d,d as o}from"./Cg2fM61o.js";const c={class:"max-w-4xl mx-auto"},g={class:"mb-8"},m={class:"flex items-center gap-3 mb-4"},p={class:"card mb-6"},x={class:"space-y-3"},u={class:"card bg-gradient-to-r from-green-600 to-emerald-600 text-white"},f={class:"flex flex-col sm:flex-row gap-3"},w={__name:"axolotl",setup(b){return(v,e)=>{const s=r;return d(),n("div",c,[t("div",g,[t("div",m,[l(s,{to:"/export",class:"text-blue-600 hover:text-blue-800"},{default:a(()=>[...e[0]||(e[0]=[o(" ← Back to Export ",-1)])]),_:1})]),e[1]||(e[1]=t("h1",{class:"text-3xl font-bold mb-4"},"🦎 What is Axolotl?",-1)),e[2]||(e[2]=t("p",{class:"text-xl text-gray-600"},' A simplified tool that makes fine-tuning large language models easy - "The Easy Button for LLM Training" ',-1))]),e[11]||(e[11]=i('<div class="card mb-6"><h2 class="text-xl font-semibold mb-4">In Simple Terms</h2><div class="space-y-4 text-gray-700"><p><strong>Axolotl</strong> is a tool that makes fine-tuning AI models incredibly simple. While Hugging Face gives you all the building blocks, Axolotl puts them together in a way that&#39;s much easier to use. </p><div class="p-4 bg-gradient-to-r from-green-50 to-emerald-50 rounded-lg border border-green-200 my-6"><p class="text-center text-lg"><strong>🎯 The Goal:</strong> Go from dataset to trained model with just a YAML file and one command </p></div><p> Imagine you want to build a house: </p><div class="grid grid-cols-1 md:grid-cols-2 gap-4 my-4"><div class="p-4 border border-gray-200 rounded-lg"><h3 class="font-semibold text-gray-500 mb-2">Using Hugging Face Directly</h3><ul class="text-sm text-gray-600 space-y-1"><li>• Write Python code to load models</li><li>• Configure training parameters manually</li><li>• Handle data preprocessing yourself</li><li>• Debug training loops</li><li>• 100+ lines of code</li></ul></div><div class="p-4 border-2 border-green-500 bg-green-50 rounded-lg"><h3 class="font-semibold text-green-700 mb-2">Using Axolotl</h3><ul class="text-sm text-gray-700 space-y-1"><li>• Create a YAML config file</li><li>• Run: <code>axolotl train config.yaml</code></li><li>• Done!</li><li>• ~20 lines of configuration</li></ul></div></div></div></div><div class="card mb-6"><h2 class="text-xl font-semibold mb-4">Why Beginners Love Axolotl</h2><div class="space-y-4"><div class="flex gap-4 items-start"><div class="w-10 h-10 bg-green-100 rounded-full flex items-center justify-center flex-shrink-0"><span class="text-xl">📝</span></div><div><h3 class="font-semibold mb-1">Configuration, Not Code</h3><p class="text-gray-600"> Instead of writing Python scripts, you just edit a YAML file. It&#39;s like filling out a form rather than programming from scratch. </p></div></div><div class="flex gap-4 items-start"><div class="w-10 h-10 bg-blue-100 rounded-full flex items-center justify-center flex-shrink-0"><span class="text-xl">🔧</span></div><div><h3 class="font-semibold mb-1">Sensible Defaults</h3><p class="text-gray-600"> Axolotl comes with pre-tested configurations. You don&#39;t need to guess learning rates, batch sizes, or other hyperparameters. </p></div></div><div class="flex gap-4 items-start"><div class="w-10 h-10 bg-purple-100 rounded-full flex items-center justify-center flex-shrink-0"><span class="text-xl">⚡</span></div><div><h3 class="font-semibold mb-1">One Command Training</h3><p class="text-gray-600"> After setting up your config, training is literally one command. No complex scripts to run. </p></div></div><div class="flex gap-4 items-start"><div class="w-10 h-10 bg-yellow-100 rounded-full flex items-center justify-center flex-shrink-0"><span class="text-xl">🎓</span></div><div><h3 class="font-semibold mb-1">Built on Hugging Face</h3><p class="text-gray-600"> Axolotl uses Hugging Face under the hood, so you get all the power with none of the complexity. Your trained models are fully compatible. </p></div></div></div></div><div class="card mb-6"><h2 class="text-xl font-semibold mb-4">How Axolotl Works</h2><div class="space-y-6"><p class="text-gray-700"> Here&#39;s what a typical Axolotl workflow looks like: </p><div class="relative"><div class="flex gap-4 mb-6"><div class="w-12 h-12 bg-blue-600 text-white rounded-full flex items-center justify-center font-bold text-xl flex-shrink-0"> 1 </div><div class="flex-1"><h3 class="font-semibold text-lg mb-2">Prepare Your Dataset</h3><p class="text-gray-600 mb-3"> Export your edukaAI dataset in Alpaca or JSONL format. This is the data your model will learn from. </p><div class="bg-gray-100 p-3 rounded text-sm font-mono"> dataset: <br>  path: my_dataset.jsonl <br>  type: alpaca </div></div></div><div class="flex gap-4 mb-6"><div class="w-12 h-12 bg-blue-600 text-white rounded-full flex items-center justify-center font-bold text-xl flex-shrink-0"> 2 </div><div class="flex-1"><h3 class="font-semibold text-lg mb-2">Choose a Base Model</h3><p class="text-gray-600 mb-3"> Select which pre-trained model to start from. Popular choices: </p><ul class="text-sm text-gray-600 space-y-1 mb-3 ml-4"><li>• <code>mistralai/Mistral-7B</code> - Good general performance</li><li>• <code>meta-llama/Llama-2-7b</code> - Meta&#39;s open model</li><li>• <code>TinyLlama/TinyLlama-1.1B</code> - Fast for testing</li></ul><div class="bg-gray-100 p-3 rounded text-sm font-mono"> base_model: mistralai/Mistral-7B-v0.1 </div></div></div><div class="flex gap-4 mb-6"><div class="w-12 h-12 bg-blue-600 text-white rounded-full flex items-center justify-center font-bold text-xl flex-shrink-0"> 3 </div><div class="flex-1"><h3 class="font-semibold text-lg mb-2">Configure Training</h3><p class="text-gray-600 mb-3"> Set training parameters. Axolotl has sensible defaults, but you can customize: </p><div class="bg-gray-100 p-3 rounded text-sm font-mono"> num_epochs: 3 <br>micro_batch_size: 2 <br>learning_rate: 0.0002 <br>output_dir: ./trained-model </div></div></div><div class="flex gap-4"><div class="w-12 h-12 bg-green-600 text-white rounded-full flex items-center justify-center font-bold text-xl flex-shrink-0"> 4 </div><div class="flex-1"><h3 class="font-semibold text-lg mb-2">Train!</h3><p class="text-gray-600 mb-3"> Run one command and watch your model learn from your data: </p><div class="bg-gray-800 text-green-400 p-3 rounded text-sm font-mono"> $ axolotl train config.yaml <br><br># Or accelerate train for multi-GPU: <br>$ accelerate launch -m axolotl.cli.train config.yaml </div></div></div></div></div></div><div class="card mb-6"><h2 class="text-xl font-semibold mb-4">Example Configuration</h2><p class="text-gray-600 mb-4"> Here&#39;s what a complete Axolotl config file looks like. This is all you need to fine-tune a model: </p><div class="bg-gray-900 text-gray-300 p-4 rounded-lg overflow-x-auto text-sm font-mono"><div class="text-green-400"># Base model from Hugging Face</div><div>base_model: mistralai/Mistral-7B-v0.1</div><div class="mt-2 text-green-400"># Your edukaAI dataset</div><div>datasets:</div><div>  - path: ./my_dataset.jsonl</div><div>    type: alpaca</div><div class="mt-2 text-green-400"># Training settings</div><div>num_epochs: 3</div><div>micro_batch_size: 1</div><div>gradient_accumulation_steps: 4</div><div>learning_rate: 0.0002</div><div class="mt-2 text-green-400"># Where to save the result</div><div>output_dir: ./my-trained-model</div><div class="mt-2 text-green-400"># Use less memory (for consumer GPUs)</div><div>load_in_8bit: true</div></div><p class="text-gray-600 mt-4 text-sm"> That&#39;s it! About 15 lines of configuration replaces hundreds of lines of Python code. </p></div><div class="card mb-6"><h2 class="text-xl font-semibold mb-4">What You Need to Get Started</h2><div class="grid grid-cols-1 md:grid-cols-2 gap-4"><div class="p-4 border border-green-200 bg-green-50 rounded-lg"><h3 class="font-semibold text-green-700 mb-3">✅ Required</h3><ul class="space-y-2 text-sm"><li class="flex items-center gap-2"><span>☑️</span><span>Python 3.9+ installed</span></li><li class="flex items-center gap-2"><span>☑️</span><span>Your edukaAI dataset</span></li><li class="flex items-center gap-2"><span>☑️</span><span>GPU (or cloud service)</span></li><li class="flex items-center gap-2"><span>☑️</span><span>Basic command line knowledge</span></li></ul></div><div class="p-4 border border-gray-200 rounded-lg"><h3 class="font-semibold text-gray-700 mb-3">⚡ Nice to Have</h3><ul class="space-y-2 text-sm text-gray-600"><li class="flex items-center gap-2"><span>○</span><span>Modern NVIDIA GPU (8GB+ VRAM)</span></li><li class="flex items-center gap-2"><span>○</span><span>CUDA toolkit installed</span></li><li class="flex items-center gap-2"><span>○</span><span>Some Python experience</span></li><li class="flex items-center gap-2"><span>○</span><span>Patience for training time</span></li></ul></div></div><div class="mt-4 p-4 bg-yellow-50 border border-yellow-200 rounded-lg"><p class="text-sm text-yellow-800"><strong>💡 No GPU?</strong> You can use cloud services like Google Colab, RunPod, or Lambda Labs which provide GPUs you can rent by the hour. Axolotl works great on these platforms! </p></div></div><div class="card mb-6"><h2 class="text-xl font-semibold mb-4">Axolotl vs Direct Hugging Face</h2><table class="w-full text-sm"><thead><tr class="border-b"><th class="text-left py-2">Aspect</th><th class="text-left py-2">Direct Hugging Face</th><th class="text-left py-2 text-green-600">Axolotl</th></tr></thead><tbody class="text-gray-600"><tr class="border-b border-gray-100"><td class="py-3">Setup</td><td>Write training scripts</td><td class="text-green-600 font-medium">YAML config file</td></tr><tr class="border-b border-gray-100"><td class="py-3">Code Required</td><td>100+ lines</td><td class="text-green-600 font-medium">~15 lines YAML</td></tr><tr class="border-b border-gray-100"><td class="py-3">Learning Curve</td><td>Steep (Python + ML knowledge)</td><td class="text-green-600 font-medium">Gentle (config-based)</td></tr><tr class="border-b border-gray-100"><td class="py-3">Flexibility</td><td class="text-blue-600 font-medium">Maximum control</td><td>High (covers 95% of use cases)</td></tr><tr class="border-b border-gray-100"><td class="py-3">Best For</td><td>Researchers, complex needs</td><td class="text-green-600 font-medium">Beginners, quick experiments</td></tr></tbody></table><p class="mt-4 text-sm text-gray-600"><strong>Bottom line:</strong> Start with Axolotl. If you outgrow it, you can always switch to direct Hugging Face later - the models and datasets are fully compatible. </p></div>',6)),t("div",p,[e[5]||(e[5]=t("h2",{class:"text-xl font-semibold mb-4"},"Helpful Resources",-1)),t("div",x,[e[4]||(e[4]=i('<a href="https://github.com/axolotl-ai-cloud/axolotl" target="_blank" class="flex items-center gap-3 p-3 bg-gray-800 text-white rounded-lg hover:bg-gray-700 transition-colors"><span class="text-2xl">🐙</span><div class="flex-1"><h3 class="font-semibold">Axolotl GitHub Repository</h3><p class="text-sm text-gray-300">Official repository with documentation and examples</p></div><span class="text-gray-400">→</span></a><a href="https://github.com/axolotl-ai-cloud/axolotl#quickstart" target="_blank" class="flex items-center gap-3 p-3 bg-green-50 rounded-lg hover:bg-green-100 transition-colors"><span class="text-2xl">🚀</span><div class="flex-1"><h3 class="font-semibold">Quick Start Guide</h3><p class="text-sm text-gray-600">Step-by-step tutorial to train your first model</p></div><span class="text-green-600">→</span></a><a href="https://github.com/axolotl-ai-cloud/axolotl/tree/main/examples" target="_blank" class="flex items-center gap-3 p-3 bg-blue-50 rounded-lg hover:bg-blue-100 transition-colors"><span class="text-2xl">📁</span><div class="flex-1"><h3 class="font-semibold">Example Configurations</h3><p class="text-sm text-gray-600">Pre-made config files for different models and tasks</p></div><span class="text-blue-600">→</span></a>',3)),l(s,{to:"/help/huggingface",class:"flex items-center gap-3 p-3 bg-purple-50 rounded-lg hover:bg-purple-100 transition-colors"},{default:a(()=>[...e[3]||(e[3]=[t("span",{class:"text-2xl"},"🤗",-1),t("div",{class:"flex-1"},[t("h3",{class:"font-semibold"},"Learn About Hugging Face"),t("p",{class:"text-sm text-gray-600"},"Understand the platform Axolotl is built on")],-1),t("span",{class:"text-purple-600"},"→",-1)])]),_:1})])]),t("div",u,[e[9]||(e[9]=t("h2",{class:"text-xl font-semibold mb-4"},"Ready to Train Your First Model?",-1)),e[10]||(e[10]=t("p",{class:"mb-6 opacity-90"}," Axolotl is the friendliest way to start fine-tuning. You have your dataset from edukaAI, now you just need a config file and one command! ",-1)),t("div",f,[e[8]||(e[8]=t("a",{href:"https://github.com/axolotl-ai-cloud/axolotl#quickstart",target:"_blank",class:"flex-1 bg-white text-green-600 font-semibold py-3 px-6 rounded-lg text-center hover:bg-gray-100 transition-colors"}," Start with Quickstart → ",-1)),l(s,{to:"/help/huggingface",class:"flex-1 bg-green-700 text-white font-semibold py-3 px-6 rounded-lg text-center hover:bg-green-800 transition-colors"},{default:a(()=>[...e[6]||(e[6]=[o(" Learn About Hugging Face → ",-1)])]),_:1}),l(s,{to:"/export",class:"flex-1 bg-transparent border-2 border-white text-white font-semibold py-3 px-6 rounded-lg text-center hover:bg-white/10 transition-colors"},{default:a(()=>[...e[7]||(e[7]=[o(" ← Back to Export ",-1)])]),_:1})])])])}}};export{w as default};
@@ -0,0 +1 @@
1
+ import{_ as g}from"./C6E3Ty3z.js";import{c as p,a as o,t as d,P as b,b as n,w as s,y as r,o as v,d as a,z as i}from"./Cg2fM61o.js";const m={class:"p-8"},f={class:"space-y-4"},k={class:"p-4 bg-gray-100 rounded"},T={class:"space-y-2"},y={class:"space-y-2 mt-4"},w={__name:"test-router",setup(N){return(t,e)=>{const l=g;return v(),p("div",m,[e[9]||(e[9]=o("h1",{class:"text-2xl font-bold mb-4"},"Router Test",-1)),o("div",f,[o("div",k,[e[3]||(e[3]=o("h2",{class:"font-semibold"},"Current Route:",-1)),o("p",null,d((t._.provides[b]||t.$route).path),1),o("p",null,"FullPath: "+d((t._.provides[b]||t.$route).fullPath),1)]),o("div",T,[n(l,{to:"/",class:"block p-2 bg-blue-100 hover:bg-blue-200 rounded"},{default:s(()=>[...e[4]||(e[4]=[a(" Go to Home (NuxtLink) ",-1)])]),_:1}),n(l,{to:"/help",class:"block p-2 bg-blue-100 hover:bg-blue-200 rounded"},{default:s(()=>[...e[5]||(e[5]=[a(" Go to Help (NuxtLink) ",-1)])]),_:1}),n(l,{to:"/help/llm-training",class:"block p-2 bg-blue-100 hover:bg-blue-200 rounded"},{default:s(()=>[...e[6]||(e[6]=[a(" Go to LLM Training (NuxtLink) ",-1)])]),_:1}),n(l,{to:"/help/glossary?term=base-model",class:"block p-2 bg-blue-100 hover:bg-blue-200 rounded"},{default:s(()=>[...e[7]||(e[7]=[a(" Go to Glossary (NuxtLink) ",-1)])]),_:1})]),o("div",y,[e[8]||(e[8]=o("h3",{class:"font-semibold"},"Manual Navigation:",-1)),o("button",{onClick:e[0]||(e[0]=u=>("navigateTo"in t?t.navigateTo:r(i))("/")),class:"block w-full text-left p-2 bg-green-100 hover:bg-green-200 rounded"}," navigateTo('/') "),o("button",{onClick:e[1]||(e[1]=u=>("navigateTo"in t?t.navigateTo:r(i))("/help")),class:"block w-full text-left p-2 bg-green-100 hover:bg-green-200 rounded"}," navigateTo('/help') "),o("button",{onClick:e[2]||(e[2]=u=>("navigateTo"in t?t.navigateTo:r(i))("/help/llm-training")),class:"block w-full text-left p-2 bg-green-100 hover:bg-green-200 rounded"}," navigateTo('/help/llm-training') ")])])])}}};export{w as default};
@@ -0,0 +1,246 @@
1
+ import{_ as f}from"./C6E3Ty3z.js";import{B as y,c as n,a as e,b as p,w as c,y as a,t as i,g as u,F as v,r as w,o,d as m,x as k,j as _}from"./Cg2fM61o.js";const T={class:"max-w-4xl mx-auto pb-20"},A={class:"text-sm text-gray-500 mb-6"},M={key:0,class:"mb-12"},B={class:"flex items-center gap-3 mb-4"},E={class:"text-4xl"},P={class:"text-4xl font-bold"},L={class:"card mb-6"},D={class:"text-lg text-gray-700"},I={class:"card"},j=["innerHTML"],C={key:0,class:"mt-6 p-4 bg-gray-50 rounded-lg"},F={class:"text-sm text-gray-700"},S={key:1,class:"mt-6 pt-6 border-t"},q={class:"flex flex-wrap gap-2"},z={key:1,class:"text-center py-12"},O={__name:"glossary",setup(G){const h=y(),g={"base-model":{emoji:"🏗️",word:"Base Model",shortDefinition:"The pre-trained LLM you start with before fine-tuning (e.g., GPT-4, Llama 2, Mistral).",detailedExplanation:`
2
+ <p class="mb-4">A <strong>base model</strong> (also called a "foundation model" or "pre-trained model") is the starting point for fine-tuning. It's an LLM that has already been trained on massive amounts of text data (often trillions of tokens from books, websites, and documents).</p>
3
+
4
+ <h3 class="text-lg font-semibold mt-6 mb-3">Key Characteristics:</h3>
5
+ <ul class="list-disc list-inside space-y-2 mb-4">
6
+ <li>Knows general language patterns, grammar, and facts</li>
7
+ <li>Can answer general questions and write coherent text</li>
8
+ <li>Hasn't been specialized for any specific domain</li>
9
+ <li>Expensive and time-consuming to train from scratch (weeks, millions of dollars)</li>
10
+ <li>Usually released openly (open source) or via API (closed source)</li>
11
+ </ul>
12
+
13
+ <h3 class="text-lg font-semibold mt-6 mb-3">Popular Base Models:</h3>
14
+ <div class="grid grid-cols-1 md:grid-cols-2 gap-3 mb-4">
15
+ <div class="p-3 bg-gray-50 rounded-lg">
16
+ <strong class="text-blue-700">Llama 2 (Meta)</strong>
17
+ <p class="text-sm text-gray-600 mt-1">Open source, 7B-70B parameters, great for fine-tuning</p>
18
+ </div>
19
+ <div class="p-3 bg-gray-50 rounded-lg">
20
+ <strong class="text-blue-700">Mistral</strong>
21
+ <p class="text-sm text-gray-600 mt-1">Open source, very efficient, good performance</p>
22
+ </div>
23
+ <div class="p-3 bg-gray-50 rounded-lg">
24
+ <strong class="text-blue-700">GPT-3.5 (OpenAI)</strong>
25
+ <p class="text-sm text-gray-600 mt-1">Closed source, available via fine-tuning API</p>
26
+ </div>
27
+ <div class="p-3 bg-gray-50 rounded-lg">
28
+ <strong class="text-blue-700">Falcon</strong>
29
+ <p class="text-sm text-gray-600 mt-1">Open source, trained on high-quality data</p>
30
+ </div>
31
+ </div>
32
+
33
+ <h3 class="text-lg font-semibold mt-6 mb-3">Why Base Models Matter:</h3>
34
+ <p class="mb-4">When you fine-tune, you're leveraging all the knowledge the base model learned during its expensive pre-training. You're teaching it your specific domain while preserving its general capabilities. A good base model means less work for you and better results.</p>
35
+
36
+ <div class="bg-yellow-50 p-4 rounded-lg mt-6">
37
+ <strong class="text-yellow-800">💡 Pro Tip:</strong>
38
+ <p class="text-sm text-yellow-700 mt-1">For beginners, start with Llama 2 (7B or 13B parameters). They're free, well-documented, and perfect for learning. As you get more experienced, you can experiment with larger models.</p>
39
+ </div>
40
+ `,example:"You download Llama 2 7B (an open-source base model) and fine-tune it on 1000 examples of customer support conversations. Now it specializes in helping customers while retaining its general language abilities.",seeAlso:["fine-tuning","parameters","training"]},dataset:{emoji:"📊",word:"Dataset",shortDefinition:"A collection of training examples used to teach the AI specific tasks.",detailedExplanation:`
41
+ <p class="mb-4">A <strong>dataset</strong> is the fuel that powers fine-tuning. It's a structured collection of examples showing the model what you want it to learn. Each example contains an input (instruction) and the desired output (response).</p>
42
+
43
+ <h3 class="text-lg font-semibold mt-6 mb-3">Dataset Structure:</h3>
44
+ <div class="bg-gray-50 p-4 rounded-lg mb-4">
45
+ <p class="font-mono text-sm mb-2">Example format:</p>
46
+ <div class="space-y-2 text-sm">
47
+ <div class="p-2 bg-white rounded border-l-4 border-blue-500">
48
+ <strong>Instruction:</strong> "How do I reverse a list in Python?"
49
+ </div>
50
+ <div class="p-2 bg-white rounded border-l-4 border-green-500">
51
+ <strong>Output:</strong> "You can use list slicing: my_list[::-1] or the reversed() function."
52
+ </div>
53
+ </div>
54
+ </div>
55
+
56
+ <h3 class="text-lg font-semibold mt-6 mb-3">What Makes a Good Dataset:</h3>
57
+ <ul class="list-disc list-inside space-y-2 mb-4">
58
+ <li><strong>Quality over quantity</strong> — 100 excellent examples beat 1000 mediocre ones</li>
59
+ <li><strong>Diversity</strong> — Cover different question types, formats, and edge cases</li>
60
+ <li><strong>Consistency</strong> — Similar tone and style across examples</li>
61
+ <li><strong>Accuracy</strong> — Factually correct information</li>
62
+ <li><strong>Completeness</strong> — Examples should fully answer the question</li>
63
+ </ul>
64
+
65
+ <h3 class="text-lg font-semibold mt-6 mb-3">Dataset Size Guidelines:</h3>
66
+ <table class="w-full text-sm mb-4">
67
+ <thead>
68
+ <tr class="border-b">
69
+ <th class="text-left py-2">Size</th>
70
+ <th class="text-left py-2">Use Case</th>
71
+ <th class="text-left py-2">Expected Results</th>
72
+ </tr>
73
+ </thead>
74
+ <tbody>
75
+ <tr class="border-b">
76
+ <td class="py-2">100 examples</td>
77
+ <td>Testing/prototyping</td>
78
+ <td>Minimal viable dataset</td>
79
+ </tr>
80
+ <tr class="border-b">
81
+ <td class="py-2">500 examples</td>
82
+ <td>Simple tasks</td>
83
+ <td>Noticeable improvement</td>
84
+ </tr>
85
+ <tr class="border-b">
86
+ <td class="py-2">1000 examples</td>
87
+ <td>Most use cases</td>
88
+ <td>Significant improvement</td>
89
+ </tr>
90
+ <tr>
91
+ <td class="py-2">5000+ examples</td>
92
+ <td>Professional use</td>
93
+ <td>High-quality specialized model</td>
94
+ </tr>
95
+ </tbody>
96
+ </table>
97
+
98
+ <div class="bg-blue-50 p-4 rounded-lg mt-6">
99
+ <strong class="text-blue-800">🎯 The 1000 Example Milestone:</strong>
100
+ <p class="text-sm text-blue-700 mt-1">This is the sweet spot for beginners. It's enough data for the model to learn patterns, but not so much that training takes forever. At 20-30 examples per day, you'll reach this in 2-3 months.</p>
101
+ </div>
102
+ `,example:"You collect 1000 examples of customer service conversations. Each example shows a customer question and the ideal support agent response. This becomes your training dataset.",seeAlso:["training-example","fine-tuning","training"]},epoch:{emoji:"🔄",word:"Epoch",shortDefinition:"One complete pass through the entire dataset during training.",detailedExplanation:`
103
+ <p class="mb-4">An <strong>epoch</strong> is when the model has seen every example in your dataset exactly once. Think of it like reading a textbook cover to cover — one epoch is one complete read-through.</p>
104
+
105
+ <h3 class="text-lg font-semibold mt-6 mb-3">Why Multiple Epochs?</h3>
106
+ <p class="mb-4">Just like you don't fully understand a textbook after one reading, the model doesn't fully learn from one epoch. Multiple passes help it:</p>
107
+ <ul class="list-disc list-inside space-y-2 mb-4">
108
+ <li>Reinforce patterns it learned</li>
109
+ <li>Pick up on subtle details missed the first time</li>
110
+ <li>Build stronger associations between concepts</li>
111
+ <li>Gradually improve its predictions</li>
112
+ </ul>
113
+
114
+ <h3 class="text-lg font-semibold mt-6 mb-3">Typical Epoch Counts:</h3>
115
+ <div class="space-y-2 mb-4">
116
+ <div class="flex justify-between items-center p-2 bg-gray-50 rounded">
117
+ <span>Pre-training (from scratch)</span>
118
+ <span class="font-mono">1-3 epochs</span>
119
+ </div>
120
+ <div class="flex justify-between items-center p-2 bg-gray-50 rounded">
121
+ <span>Fine-tuning (medium dataset)</span>
122
+ <span class="font-mono">3-10 epochs</span>
123
+ </div>
124
+ <div class="flex justify-between items-center p-2 bg-gray-50 rounded">
125
+ <span>Fine-tuning (small dataset)</span>
126
+ <span class="font-mono">10-30 epochs</span>
127
+ </div>
128
+ </div>
129
+
130
+ <h3 class="text-lg font-semibold mt-6 mb-3">The Trade-off:</h3>
131
+ <div class="grid grid-cols-1 md:grid-cols-2 gap-4 mb-4">
132
+ <div class="p-3 bg-green-50 rounded-lg border border-green-200">
133
+ <strong class="text-green-700">More Epochs ✅</strong>
134
+ <ul class="text-sm text-gray-700 mt-2 space-y-1">
135
+ <li>Better learning</li>
136
+ <li>Stronger patterns</li>
137
+ <li>Higher accuracy</li>
138
+ </ul>
139
+ </div>
140
+ <div class="p-3 bg-red-50 rounded-lg border border-red-200">
141
+ <strong class="text-red-700">Too Many Epochs ❌</strong>
142
+ <ul class="text-sm text-gray-700 mt-2 space-y-1">
143
+ <li>Overfitting (memorization)</li>
144
+ <li>Longer training time</li>
145
+ <li>Higher cost</li>
146
+ </ul>
147
+ </div>
148
+ </div>
149
+
150
+ <div class="bg-yellow-50 p-4 rounded-lg mt-6">
151
+ <strong class="text-yellow-800">⚠️ Overfitting Warning:</strong>
152
+ <p class="text-sm text-yellow-700 mt-1">If you train for too many epochs on a small dataset, the model might memorize the examples instead of learning the underlying patterns. It will perform perfectly on training data but fail on new inputs. This is why validation sets are important!</p>
153
+ </div>
154
+ `,example:"You have 1000 training examples. After 1 epoch, the model has seen each example once. After 3 epochs, it has seen them all three times. Most fine-tuning jobs use 3-10 epochs.",seeAlso:["training","fine-tuning","overfitting"]},"fine-tuning":{emoji:"🎓",word:"Fine-Tuning",shortDefinition:"Training a pre-trained model on a specific dataset to improve performance on particular tasks.",detailedExplanation:`
155
+ <p class="mb-4"><strong>Fine-tuning</strong> is the process of taking a pre-trained LLM (which knows general language and facts) and teaching it to be better at your specific task or domain. It's like giving a college graduate specialized job training.</p>
156
+
157
+ <h3 class="text-lg font-semibold mt-6 mb-3">The Fine-Tuning Process:</h3>
158
+ <div class="space-y-4 mb-6">
159
+ <div class="flex items-start gap-3">
160
+ <div class="w-8 h-8 bg-blue-500 rounded-full flex items-center justify-center text-white font-bold text-sm flex-shrink-0">1</div>
161
+ <div>
162
+ <strong>Start with Base Model</strong>
163
+ <p class="text-sm text-gray-600">You begin with a pre-trained model like Llama 2 or GPT-3.5</p>
164
+ </div>
165
+ </div>
166
+ <div class="flex items-start gap-3">
167
+ <div class="w-8 h-8 bg-blue-500 rounded-full flex items-center justify-center text-white font-bold text-sm flex-shrink-0">2</div>
168
+ <div>
169
+ <strong>Prepare Dataset</strong>
170
+ <p class="text-sm text-gray-600">Collect 100-10000 examples of your specific task</p>
171
+ </div>
172
+ </div>
173
+ <div class="flex items-start gap-3">
174
+ <div class="w-8 h-8 bg-blue-500 rounded-full flex items-center justify-center text-white font-bold text-sm flex-shrink-0">3</div>
175
+ <div>
176
+ <strong>Continue Training</strong>
177
+ <p class="text-sm text-gray-600">Train the model on your dataset for several epochs</p>
178
+ </div>
179
+ </div>
180
+ <div class="flex items-start gap-3">
181
+ <div class="w-8 h-8 bg-blue-500 rounded-full flex items-center justify-center text-white font-bold text-sm flex-shrink-0">4</div>
182
+ <div>
183
+ <strong>Deploy & Use</strong>
184
+ <p class="text-sm text-gray-600">Your model now specializes in your domain</p>
185
+ </div>
186
+ </div>
187
+ </div>
188
+
189
+ <h3 class="text-lg font-semibold mt-6 mb-3">Benefits of Fine-Tuning:</h3>
190
+ <div class="grid grid-cols-1 md:grid-cols-2 gap-4 mb-4">
191
+ <div class="p-3 bg-green-50 rounded-lg">
192
+ <strong class="text-green-700">✅ Better Performance</strong>
193
+ <p class="text-sm text-gray-600 mt-1">Expert-level responses in your specific domain</p>
194
+ </div>
195
+ <div class="p-3 bg-blue-50 rounded-lg">
196
+ <strong class="text-blue-700">✅ Lower Costs</strong>
197
+ <p class="text-sm text-gray-600 mt-1">Smaller fine-tuned models can beat larger general models</p>
198
+ </div>
199
+ <div class="p-3 bg-purple-50 rounded-lg">
200
+ <strong class="text-purple-700">✅ Consistent Style</strong>
201
+ <p class="text-sm text-gray-600 mt-1">Train your brand voice and tone</p>
202
+ </div>
203
+ <div class="p-3 bg-orange-50 rounded-lg">
204
+ <strong class="text-orange-700">✅ Privacy</strong>
205
+ <p class="text-sm text-gray-600 mt-1">Run on your own infrastructure, no API calls</p>
206
+ </div>
207
+ </div>
208
+
209
+ <h3 class="text-lg font-semibold mt-6 mb-3">Fine-Tuning vs. Pre-training:</h3>
210
+ <table class="w-full text-sm mb-4">
211
+ <thead>
212
+ <tr class="border-b">
213
+ <th class="text-left py-2">Aspect</th>
214
+ <th class="text-left py-2">Pre-training</th>
215
+ <th class="text-left py-2">Fine-tuning</th>
216
+ </tr>
217
+ </thead>
218
+ <tbody>
219
+ <tr class="border-b">
220
+ <td class="py-2">Data needed</td>
221
+ <td class="py-2">Trillions of tokens</td>
222
+ <td class="py-2">Thousands to millions</td>
223
+ </tr>
224
+ <tr class="border-b">
225
+ <td class="py-2">Time required</td>
226
+ <td class="py-2">Weeks/months</td>
227
+ <td class="py-2">Hours to days</td>
228
+ </tr>
229
+ <tr class="border-b">
230
+ <td class="py-2">Cost</td>
231
+ <td class="py-2">Millions of dollars</td>
232
+ <td class="py-2">$10-$1000</td>
233
+ </tr>
234
+ <tr>
235
+ <td class="py-2">Result</td>
236
+ <td class="py-2">General knowledge</td>
237
+ <td class="py-2">Domain expertise</td>
238
+ </tr>
239
+ </tbody>
240
+ </table>
241
+
242
+ <div class="bg-green-50 p-4 rounded-lg mt-6">
243
+ <strong class="text-green-800">🎯 Perfect for Beginners:</strong>
244
+ <p class="text-sm text-green-700 mt-1">Fine-tuning is why edukaAI exists. Instead of training from scratch (impossible for individuals), you leverage pre-trained models and just teach them your specialty. It's affordable, fast, and achievable!</p>
245
+ </div>
246
+ `,example:"You take Llama 2 (general model) and fine-tune it on 1000 customer support conversations. Now it understands your products, tone, and common issues, while retaining its general language abilities.",seeAlso:["base-model","training","dataset","training-example"]}},b=h.query.term,s=_(()=>g[b]),x=l=>g[l]?.word||l;return(l,t)=>{const r=f;return o(),n("div",T,[e("div",A,[p(r,{to:"/help",class:"hover:text-blue-600"},{default:c(()=>[...t[0]||(t[0]=[m("← Back to Guide",-1)])]),_:1})]),a(s)?(o(),n("div",M,[e("div",B,[e("span",E,i(a(s).emoji),1),e("h1",P,i(a(s).word),1)]),e("div",L,[t[1]||(t[1]=e("h2",{class:"text-lg font-semibold mb-3 text-blue-700"},"Quick Definition",-1)),e("p",D,i(a(s).shortDefinition),1)]),e("div",I,[t[4]||(t[4]=e("h2",{class:"text-lg font-semibold mb-4 text-blue-700"},"Detailed Explanation",-1)),e("div",{class:"prose max-w-none text-gray-700",innerHTML:a(s).detailedExplanation},null,8,j),a(s).example?(o(),n("div",C,[t[2]||(t[2]=e("h3",{class:"font-medium mb-2"},"💡 Example",-1)),e("p",F,i(a(s).example),1)])):u("",!0),a(s).seeAlso&&a(s).seeAlso.length?(o(),n("div",S,[t[3]||(t[3]=e("h3",{class:"font-medium mb-2"},"🔗 See Also",-1)),e("div",q,[(o(!0),n(v,null,w(a(s).seeAlso,d=>(o(),k(r,{key:d,to:`/help/glossary?term=${d}`,class:"px-3 py-1 bg-blue-100 text-blue-700 rounded-full text-sm hover:bg-blue-200 transition-colors"},{default:c(()=>[m(i(x(d)),1)]),_:2},1032,["to"]))),128))])])):u("",!0)])])):(o(),n("div",z,[t[6]||(t[6]=e("p",{class:"text-gray-500"},"Select a term from the glossary",-1)),p(r,{to:"/help",class:"btn-primary mt-4 inline-block"},{default:c(()=>[...t[5]||(t[5]=[m("Back to Guide",-1)])]),_:1})]))])}}};export{O as default};
@@ -0,0 +1 @@
1
+ import{e as S,o as r,c as d,a as t,b as m,T as j,w as U,t as _,g as $,i as D,F as M,r as R,j as V,d as K,y as N,k as x,s as w,C as E,q,D as O,h as P,E as B,v as T,m as A,G as Q}from"./Cg2fM61o.js";const W={class:"relative inline-block"},G={key:0,class:"absolute z-50 w-80 p-4 bg-gray-900 text-white rounded-lg shadow-xl -top-2 left-full ml-2"},Y={class:"flex items-start gap-2"},z={class:"flex-1"},J={class:"font-semibold mb-1"},H={class:"text-sm text-gray-300 mb-2"},X={class:"bg-gray-800 rounded p-2 text-xs text-gray-400 italic"},Z=["href"],tt=S({__name:"FieldTooltip",props:{title:{},content:{},example:{},learnMoreLink:{}},setup(g){const v=D(!1);return(i,o)=>(r(),d("div",W,[t("button",{type:"button",onClick:o[0]||(o[0]=n=>v.value=!v.value),onMouseenter:o[1]||(o[1]=n=>v.value=!0),onMouseleave:o[2]||(o[2]=n=>v.value=!1),class:"text-gray-400 hover:text-blue-500 transition-colors"},[...o[3]||(o[3]=[t("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[t("circle",{cx:"12",cy:"12",r:"10"}),t("path",{d:"M12 16v-4"}),t("path",{d:"M12 8h.01"})],-1)])],32),m(j,{"enter-active-class":"transition duration-200 ease-out","enter-from-class":"opacity-0 translate-y-1","enter-to-class":"opacity-100 translate-y-0","leave-active-class":"transition duration-150 ease-in","leave-from-class":"opacity-100 translate-y-0","leave-to-class":"opacity-0 translate-y-1"},{default:U(()=>[v.value?(r(),d("div",G,[t("div",Y,[o[4]||(o[4]=t("span",{class:"text-xl"},"💡",-1)),t("div",z,[t("h4",J,_(g.title),1),t("p",H,_(g.content),1),t("div",X,_(g.example),1),g.learnMoreLink?(r(),d("a",{key:0,href:g.learnMoreLink,class:"text-xs text-blue-400 hover:text-blue-300 mt-2 inline-block",target:"_blank"}," Learn more → ",8,Z)):$("",!0)])]),o[5]||(o[5]=t("div",{class:"absolute top-4 -left-1 w-2 h-2 bg-gray-900 transform rotate-45"},null,-1))])):$("",!0)]),_:1})]))}}),et=Object.assign(tt,{__name:"FieldTooltip"}),st={class:"flex items-center gap-1"},nt=["onClick","onMouseenter"],at=["fill"],ot={class:"ml-2 text-sm text-gray-500"},lt=S({__name:"QualityStars",props:{modelValue:{}},emits:["update:modelValue"],setup(g,{emit:v}){const i=g,o=v,n=D(0),u=V(()=>n.value||i.modelValue),h={1:"Poor",2:"Fair",3:"Good",4:"Very Good",5:"Excellent"},k=V(()=>h[u.value]||""),y=p=>p<=u.value,s=p=>{o("update:modelValue",p)};return(p,c)=>(r(),d("div",st,[(r(),d(M,null,R(5,b=>t("button",{key:b,type:"button",onClick:C=>s(b),onMouseenter:C=>n.value=b,onMouseleave:c[0]||(c[0]=C=>n.value=0),class:"transition-transform hover:scale-110 focus:outline-none"},[(r(),d("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:y(b)?"#fbbf24":"none",stroke:"#fbbf24","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[...c[1]||(c[1]=[t("polygon",{points:"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"},null,-1)])],8,at))],40,nt)),64)),t("span",ot,_(k.value),1)]))}}),it=Object.assign(lt,{__name:"QualityStars"}),rt={class:"form-input flex flex-wrap items-center gap-2 min-h-[42px] p-2"},dt=["onClick"],pt=["onKeydown"],ut=S({__name:"TagInput",props:{modelValue:{}},emits:["update:modelValue"],setup(g,{emit:v}){const i=g,o=v,n=V({get:()=>i.modelValue,set:s=>o("update:modelValue",s)}),u=D(""),h=()=>{const s=u.value.trim().toLowerCase();s&&!n.value.includes(s)&&(n.value=[...n.value,s]),u.value=""},k=s=>{n.value=n.value.filter(p=>p!==s)},y=s=>{u.value===""&&n.value.length>0&&(n.value=n.value.slice(0,-1))};return(s,p)=>(r(),d("div",rt,[(r(!0),d(M,null,R(N(n),c=>(r(),d("span",{key:c,class:"inline-flex items-center gap-1 px-2 py-1 bg-blue-100 text-blue-700 text-sm rounded-md"},[K(_(c)+" ",1),t("button",{type:"button",onClick:b=>k(c),class:"text-blue-500 hover:text-blue-700"},[...p[1]||(p[1]=[t("svg",{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[t("path",{d:"M18 6 6 18"}),t("path",{d:"m6 6 12 12"})],-1)])],8,dt)]))),128)),x(t("input",{"onUpdate:modelValue":p[0]||(p[0]=c=>u.value=c),type:"text",class:"flex-1 min-w-[100px] outline-none bg-transparent text-sm",placeholder:"Type a tag and press Enter...",onKeydown:[E(q(h,["prevent"]),["enter"]),E(y,["backspace"])]},null,40,pt),[[w,u.value]])]))}}),ct=Object.assign(ut,{__name:"TagInput"}),mt={class:"card"},gt={class:"mb-4"},vt={class:"flex items-center gap-2 mb-1"},ft={class:"mb-4"},yt={class:"flex items-center gap-2 mb-1"},xt={class:"mb-4"},bt={class:"flex items-center gap-2 mb-1"},kt={class:"card"},wt={class:"mb-4"},_t={class:"flex items-center gap-2 mb-1"},ht={class:"grid grid-cols-1 md:grid-cols-3 gap-4 mb-4"},Ct={class:"flex items-center gap-2 mb-1"},Dt={class:"flex items-center gap-2 mb-1"},St={class:"flex items-center gap-2 mb-1"},$t={class:"mb-4"},Vt={class:"flex items-center gap-2 mb-1"},Et={class:"mb-4"},Tt={class:"flex items-center gap-2 mb-1"},At={class:"card bg-gray-50"},It={class:"grid grid-cols-1 md:grid-cols-2 gap-4 text-sm"},Mt={class:"ml-2 font-medium"},Rt={class:"flex flex-wrap gap-3 justify-end"},qt=["disabled"],Ft={key:0},Lt={key:1},jt=["disabled"],Ut={key:0},Kt={key:1},Nt=["disabled"],I="edukaai-sticky-fields",Ot=S({__name:"ExampleForm",props:{initialData:{}},emits:["submit","saveDraft","cancel","clone"],setup(g,{emit:v}){const i=g;Q();const o=v,n=D(!1),u=D("approve"),h=()=>{if(typeof window>"u")return{};try{const a=localStorage.getItem(I);return a?JSON.parse(a):{}}catch{return{}}},k=a=>{if(!(typeof window>"u"))try{const e={category:a.category,difficulty:a.difficulty,qualityRating:a.qualityRating,tags:a.tags};localStorage.setItem(I,JSON.stringify(e))}catch{}},y=h(),s=O({instruction:i.initialData?.instruction||"",input:i.initialData?.input||"",output:i.initialData?.output||"",systemPrompt:i.initialData?.systemPrompt||"",category:i.initialData?.category||y.category||"general",difficulty:i.initialData?.difficulty||y.difficulty||"intermediate",qualityRating:i.initialData?.qualityRating||y.qualityRating||3,notes:i.initialData?.notes||"",tags:i.initialData?.tags?.length?i.initialData.tags:y.tags||[],status:i.initialData?.status||"approved"}),p=async()=>{u.value="draft",s.status="draft",k(s),o("saveDraft",{...s})},c=async()=>{u.value="approve",s.status="approved",k(s),o("submit",{...s})},b=async()=>{const a={instruction:s.instruction,input:s.input,output:s.output,systemPrompt:s.systemPrompt,category:s.category,difficulty:s.difficulty,qualityRating:s.qualityRating,notes:`[Cloned from example] ${s.notes||""}`,tags:[...s.tags],status:"draft"};o("clone",a)},C=a=>{(a.ctrlKey||a.metaKey)&&a.key==="s"&&(a.preventDefault(),p()),(a.ctrlKey||a.metaKey)&&a.key==="Enter"&&(a.preventDefault(),c()),a.key==="Escape"&&(a.preventDefault(),o("cancel"))};return P(()=>{document.addEventListener("keydown",C)}),B(()=>{document.removeEventListener("keydown",C)}),(a,e)=>{const f=et,F=it,L=ct;return r(),d("form",{onSubmit:q(c,["prevent"]),class:"space-y-6"},[t("div",mt,[e[14]||(e[14]=t("h2",{class:"text-lg font-semibold mb-4 flex items-center gap-2"},[t("span",{class:"text-blue-600"},"Core Fields"),t("span",{class:"text-sm font-normal text-gray-500"},"(Required)")],-1)),t("div",gt,[t("div",vt,[e[10]||(e[10]=t("label",{class:"form-label"},"Instruction",-1)),m(f,{title:"Instruction",content:"The main question or task. Be specific! This is what the AI will learn to respond to.",example:"Example: 'Explain closures in JavaScript with practical examples'"})]),x(t("textarea",{"onUpdate:modelValue":e[0]||(e[0]=l=>s.instruction=l),class:"form-textarea",placeholder:"Enter the instruction or question...",rows:"3",required:""},null,512),[[w,s.instruction]])]),t("div",ft,[t("div",yt,[e[11]||(e[11]=t("label",{class:"form-label"},"Input Context",-1)),e[12]||(e[12]=t("span",{class:"text-sm text-gray-400"},"(Optional)",-1)),m(f,{title:"Input Context",content:"Additional context like code snippets, background info, or supporting data.",example:"Example: A code snippet that the user wants explained or refactored."})]),x(t("textarea",{"onUpdate:modelValue":e[1]||(e[1]=l=>s.input=l),class:"form-textarea",placeholder:"Add any context or background information...",rows:"4"},null,512),[[w,s.input]])]),t("div",xt,[t("div",bt,[e[13]||(e[13]=t("label",{class:"form-label"},"Output / Response",-1)),m(f,{title:"Output / Response",content:"The ideal AI response. Write exactly what you want the AI to learn to produce.",example:"Example: A detailed explanation of closures with code examples."})]),x(t("textarea",{"onUpdate:modelValue":e[2]||(e[2]=l=>s.output=l),class:"form-textarea",placeholder:"Enter the desired AI response...",rows:"6",required:""},null,512),[[w,s.output]])])]),t("div",kt,[e[24]||(e[24]=t("h2",{class:"text-lg font-semibold mb-4 text-purple-600"},"Metadata Fields",-1)),t("div",wt,[t("div",_t,[e[15]||(e[15]=t("label",{class:"form-label"},"System Prompt",-1)),e[16]||(e[16]=t("span",{class:"text-sm text-gray-400"},"(Optional)",-1)),m(f,{title:"System Prompt",content:"Defines the AI's personality and behavior for this conversation.",example:"Example: 'You are a patient coding tutor who explains concepts step by step.'"})]),x(t("textarea",{"onUpdate:modelValue":e[3]||(e[3]=l=>s.systemPrompt=l),class:"form-textarea",placeholder:"Defines the AI's personality...",rows:"2"},null,512),[[w,s.systemPrompt]])]),t("div",ht,[t("div",null,[t("div",Ct,[e[17]||(e[17]=t("label",{class:"form-label"},"Category",-1)),m(f,{title:"Category",content:"Helps organize your dataset. Choose the topic area.",example:"Coding, Analysis, Explanation, Writing, etc."})]),x(t("select",{"onUpdate:modelValue":e[4]||(e[4]=l=>s.category=l),class:"form-input"},[...e[18]||(e[18]=[A('<option value="general">General</option><option value="coding">Coding</option><option value="analysis">Analysis</option><option value="explanation">Explanation</option><option value="writing">Writing</option><option value="math">Math</option><option value="science">Science</option>',7)])],512),[[T,s.category]])]),t("div",null,[t("div",Dt,[e[19]||(e[19]=t("label",{class:"form-label"},"Difficulty",-1)),m(f,{title:"Difficulty",content:"Track complexity. A mix of difficulties makes better models.",example:"Beginner: Simple concepts. Advanced: Complex reasoning."})]),x(t("select",{"onUpdate:modelValue":e[5]||(e[5]=l=>s.difficulty=l),class:"form-input"},[...e[20]||(e[20]=[t("option",{value:"beginner"},"Beginner",-1),t("option",{value:"intermediate"},"Intermediate",-1),t("option",{value:"advanced"},"Advanced",-1)])],512),[[T,s.difficulty]])]),t("div",null,[t("div",St,[e[21]||(e[21]=t("label",{class:"form-label"},"Quality Rating",-1)),m(f,{title:"Quality Rating",content:"Your assessment of how good this training example is.",example:"5 stars = Perfect example, 1 star = Needs improvement"})]),m(F,{modelValue:s.qualityRating,"onUpdate:modelValue":e[6]||(e[6]=l=>s.qualityRating=l)},null,8,["modelValue"])])]),t("div",$t,[t("div",Vt,[e[22]||(e[22]=t("label",{class:"form-label"},"Tags",-1)),m(f,{title:"Tags",content:"Custom labels for filtering and organizing. Add any relevant tags.",example:"Example: 'javascript', 'react', 'debugging', 'best-practices'"})]),m(L,{modelValue:s.tags,"onUpdate:modelValue":e[7]||(e[7]=l=>s.tags=l)},null,8,["modelValue"])]),t("div",Et,[t("div",Tt,[e[23]||(e[23]=t("label",{class:"form-label"},"Notes",-1)),m(f,{title:"Notes",content:"Why is this a good example? Document your reasoning for future reference.",example:"Example: 'Clear explanation with practical examples - perfect for training'"})]),x(t("textarea",{"onUpdate:modelValue":e[8]||(e[8]=l=>s.notes=l),class:"form-textarea",placeholder:"Why is this a good training example?",rows:"2"},null,512),[[w,s.notes]])])]),t("div",At,[e[27]||(e[27]=t("h2",{class:"text-lg font-semibold mb-4 text-gray-600"},"Source Information",-1)),t("div",It,[e[26]||(e[26]=t("div",null,[t("span",{class:"text-gray-500"},"Source:"),t("span",{class:"ml-2 font-medium"},"Manual Entry")],-1)),t("div",null,[e[25]||(e[25]=t("span",{class:"text-gray-500"},"Created:",-1)),t("span",Mt,_(new Date().toLocaleString()),1)])])]),t("div",Rt,[t("button",{type:"button",onClick:p,disabled:n.value,class:"btn-secondary"},[n.value&&u.value==="draft"?(r(),d("span",Ft,"Saving...")):(r(),d("span",Lt,"💾 Save Draft"))],8,qt),t("button",{type:"submit",disabled:n.value,class:"btn-primary"},[n.value&&u.value==="approve"?(r(),d("span",Ut,"Saving...")):(r(),d("span",Kt,"✅ Save & Approve"))],8,jt),t("button",{type:"button",onClick:e[9]||(e[9]=l=>a.$emit("cancel")),class:"btn-secondary"}," ❌ Cancel "),i.initialData?.id?(r(),d("button",{key:0,type:"button",onClick:b,disabled:n.value,class:"btn-secondary border-purple-300 hover:bg-purple-50",title:"Create a copy of this example"},[...e[28]||(e[28]=[t("span",null,"📋 Clone",-1)])],8,Nt)):$("",!0)]),e[29]||(e[29]=A('<div class="mt-4 pt-4 border-t border-gray-200 text-xs text-gray-500 flex flex-wrap gap-4 justify-end"><span class="flex items-center gap-1"><kbd class="bg-gray-200 px-1.5 py-0.5 rounded">Ctrl</kbd>+<kbd class="bg-gray-200 px-1.5 py-0.5 rounded">S</kbd> Save Draft </span><span class="flex items-center gap-1"><kbd class="bg-gray-200 px-1.5 py-0.5 rounded">Ctrl</kbd>+<kbd class="bg-gray-200 px-1.5 py-0.5 rounded">Enter</kbd> Save &amp; Approve </span><span class="flex items-center gap-1"><kbd class="bg-gray-200 px-1.5 py-0.5 rounded">Esc</kbd> Cancel </span></div>',1))],32)}}}),Bt=Object.assign(Ot,{__name:"ExampleForm"});export{Bt as _};