@promptbook/wizard 0.102.0-11 → 0.102.0-12
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.
- package/esm/index.es.js +920 -15
- package/esm/index.es.js.map +1 -1
- package/esm/typings/src/_packages/color.index.d.ts +2 -0
- package/esm/typings/src/_packages/components.index.d.ts +2 -0
- package/esm/typings/src/_packages/core.index.d.ts +6 -0
- package/esm/typings/src/book-components/Chat/types/ChatParticipant.d.ts +1 -1
- package/esm/typings/src/book-components/icons/SaveIcon.d.ts +10 -0
- package/esm/typings/src/config.d.ts +26 -4
- package/esm/typings/src/utils/color/Color.d.ts +1 -0
- package/esm/typings/src/utils/color/operators/darken.d.ts +2 -1
- package/esm/typings/src/utils/color/operators/grayscale.d.ts +2 -1
- package/esm/typings/src/utils/color/operators/lighten.d.ts +2 -1
- package/esm/typings/src/utils/color/operators/mixWithColor.d.ts +2 -1
- package/esm/typings/src/utils/color/operators/saturate.d.ts +13 -0
- package/esm/typings/src/version.d.ts +1 -1
- package/package.json +2 -2
- package/umd/index.umd.js +920 -15
- package/umd/index.umd.js.map +1 -1
package/esm/index.es.js
CHANGED
@@ -36,7 +36,7 @@ const BOOK_LANGUAGE_VERSION = '1.0.0';
|
|
36
36
|
* @generated
|
37
37
|
* @see https://github.com/webgptorg/promptbook
|
38
38
|
*/
|
39
|
-
const PROMPTBOOK_ENGINE_VERSION = '0.102.0-
|
39
|
+
const PROMPTBOOK_ENGINE_VERSION = '0.102.0-12';
|
40
40
|
/**
|
41
41
|
* TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
|
42
42
|
* Note: [💞] Ignore a discrepancy between file name and entity name
|
@@ -73,6 +73,899 @@ const REMOTE_SERVER_URLS = [
|
|
73
73
|
* Note: [💞] Ignore a discrepancy between file name and entity name
|
74
74
|
*/
|
75
75
|
|
76
|
+
/**
|
77
|
+
* Just marks a place of place where should be something implemented
|
78
|
+
* No side effects.
|
79
|
+
*
|
80
|
+
* Note: It can be useful suppressing eslint errors of unused variables
|
81
|
+
*
|
82
|
+
* @param value any values
|
83
|
+
* @returns void
|
84
|
+
* @private within the repository
|
85
|
+
*/
|
86
|
+
function TODO_USE(...value) {
|
87
|
+
}
|
88
|
+
|
89
|
+
/**
|
90
|
+
* @private util of `@promptbook/color`
|
91
|
+
* @de
|
92
|
+
*/
|
93
|
+
class TakeChain {
|
94
|
+
constructor(value) {
|
95
|
+
this.value = value;
|
96
|
+
}
|
97
|
+
then(callback) {
|
98
|
+
const newValue = callback(this.value);
|
99
|
+
return take(newValue);
|
100
|
+
}
|
101
|
+
}
|
102
|
+
|
103
|
+
/**
|
104
|
+
* A function that takes an initial value and returns a proxy object with chainable methods.
|
105
|
+
*
|
106
|
+
* @param {*} initialValue - The initial value.
|
107
|
+
* @returns {Proxy<WithTake<TValue>>} - A proxy object with a `take` method.
|
108
|
+
*
|
109
|
+
* @private util of `@promptbook/color`
|
110
|
+
* @deprecated [🤡] Use some better functional library instead of `TakeChain`
|
111
|
+
*/
|
112
|
+
function take(initialValue) {
|
113
|
+
if (initialValue instanceof TakeChain) {
|
114
|
+
return initialValue;
|
115
|
+
}
|
116
|
+
return new Proxy(new TakeChain(initialValue), {
|
117
|
+
get(target, property, receiver) {
|
118
|
+
if (Reflect.has(target, property)) {
|
119
|
+
return Reflect.get(target, property, receiver);
|
120
|
+
}
|
121
|
+
else if (Reflect.has(initialValue, property)) {
|
122
|
+
return Reflect.get(initialValue, property, receiver);
|
123
|
+
}
|
124
|
+
else {
|
125
|
+
return undefined;
|
126
|
+
}
|
127
|
+
},
|
128
|
+
});
|
129
|
+
}
|
130
|
+
|
131
|
+
/**
|
132
|
+
* 🎨 List of all 140 color names which are supported by CSS
|
133
|
+
*
|
134
|
+
* @public exported from `@promptbook/color`
|
135
|
+
*/
|
136
|
+
const CSS_COLORS = {
|
137
|
+
transparent: 'rgba(0,0,0,0)',
|
138
|
+
aliceblue: '#f0f8ff',
|
139
|
+
antiquewhite: '#faebd7',
|
140
|
+
aqua: '#00ffff',
|
141
|
+
aquamarine: '#7fffd4',
|
142
|
+
azure: '#f0ffff',
|
143
|
+
beige: '#f5f5dc',
|
144
|
+
bisque: '#ffe4c4',
|
145
|
+
black: '#000000',
|
146
|
+
blanchedalmond: '#ffebcd',
|
147
|
+
blue: '#0000ff',
|
148
|
+
blueviolet: '#8a2be2',
|
149
|
+
brown: '#a52a2a',
|
150
|
+
burlywood: '#deb887',
|
151
|
+
cadetblue: '#5f9ea0',
|
152
|
+
chartreuse: '#7fff00',
|
153
|
+
chocolate: '#d2691e',
|
154
|
+
coral: '#ff7f50',
|
155
|
+
cornflowerblue: '#6495ed',
|
156
|
+
cornsilk: '#fff8dc',
|
157
|
+
crimson: '#dc143c',
|
158
|
+
cyan: '#00ffff',
|
159
|
+
darkblue: '#00008b',
|
160
|
+
darkcyan: '#008b8b',
|
161
|
+
darkgoldenrod: '#b8860b',
|
162
|
+
darkgray: '#a9a9a9',
|
163
|
+
darkgrey: '#a9a9a9',
|
164
|
+
darkgreen: '#006400',
|
165
|
+
darkkhaki: '#bdb76b',
|
166
|
+
darkmagenta: '#8b008b',
|
167
|
+
darkolivegreen: '#556b2f',
|
168
|
+
darkorange: '#ff8c00',
|
169
|
+
darkorchid: '#9932cc',
|
170
|
+
darkred: '#8b0000',
|
171
|
+
darksalmon: '#e9967a',
|
172
|
+
darkseagreen: '#8fbc8f',
|
173
|
+
darkslateblue: '#483d8b',
|
174
|
+
darkslategray: '#2f4f4f',
|
175
|
+
darkslategrey: '#2f4f4f',
|
176
|
+
darkturquoise: '#00ced1',
|
177
|
+
darkviolet: '#9400d3',
|
178
|
+
deeppink: '#ff1493',
|
179
|
+
deepskyblue: '#00bfff',
|
180
|
+
dimgray: '#696969',
|
181
|
+
dimgrey: '#696969',
|
182
|
+
dodgerblue: '#1e90ff',
|
183
|
+
firebrick: '#b22222',
|
184
|
+
floralwhite: '#fffaf0',
|
185
|
+
forestgreen: '#228b22',
|
186
|
+
fuchsia: '#ff00ff',
|
187
|
+
gainsboro: '#dcdcdc',
|
188
|
+
ghostwhite: '#f8f8ff',
|
189
|
+
gold: '#ffd700',
|
190
|
+
goldenrod: '#daa520',
|
191
|
+
gray: '#808080',
|
192
|
+
grey: '#808080',
|
193
|
+
green: '#008000',
|
194
|
+
greenyellow: '#adff2f',
|
195
|
+
honeydew: '#f0fff0',
|
196
|
+
hotpink: '#ff69b4',
|
197
|
+
indianred: '#cd5c5c',
|
198
|
+
indigo: '#4b0082',
|
199
|
+
ivory: '#fffff0',
|
200
|
+
khaki: '#f0e68c',
|
201
|
+
lavender: '#e6e6fa',
|
202
|
+
lavenderblush: '#fff0f5',
|
203
|
+
lawngreen: '#7cfc00',
|
204
|
+
lemonchiffon: '#fffacd',
|
205
|
+
lightblue: '#add8e6',
|
206
|
+
lightcoral: '#f08080',
|
207
|
+
lightcyan: '#e0ffff',
|
208
|
+
lightgoldenrodyellow: '#fafad2',
|
209
|
+
lightgray: '#d3d3d3',
|
210
|
+
lightgrey: '#d3d3d3',
|
211
|
+
lightgreen: '#90ee90',
|
212
|
+
lightpink: '#ffb6c1',
|
213
|
+
lightsalmon: '#ffa07a',
|
214
|
+
lightseagreen: '#20b2aa',
|
215
|
+
lightskyblue: '#87cefa',
|
216
|
+
lightslategray: '#778899',
|
217
|
+
lightslategrey: '#778899',
|
218
|
+
lightsteelblue: '#b0c4de',
|
219
|
+
lightyellow: '#ffffe0',
|
220
|
+
lime: '#00ff00',
|
221
|
+
limegreen: '#32cd32',
|
222
|
+
linen: '#faf0e6',
|
223
|
+
magenta: '#ff00ff',
|
224
|
+
maroon: '#800000',
|
225
|
+
mediumaquamarine: '#66cdaa',
|
226
|
+
mediumblue: '#0000cd',
|
227
|
+
mediumorchid: '#ba55d3',
|
228
|
+
mediumpurple: '#9370db',
|
229
|
+
mediumseagreen: '#3cb371',
|
230
|
+
mediumslateblue: '#7b68ee',
|
231
|
+
mediumspringgreen: '#00fa9a',
|
232
|
+
mediumturquoise: '#48d1cc',
|
233
|
+
mediumvioletred: '#c71585',
|
234
|
+
midnightblue: '#191970',
|
235
|
+
mintcream: '#f5fffa',
|
236
|
+
mistyrose: '#ffe4e1',
|
237
|
+
moccasin: '#ffe4b5',
|
238
|
+
navajowhite: '#ffdead',
|
239
|
+
navy: '#000080',
|
240
|
+
oldlace: '#fdf5e6',
|
241
|
+
olive: '#808000',
|
242
|
+
olivedrab: '#6b8e23',
|
243
|
+
orange: '#ffa500',
|
244
|
+
orangered: '#ff4500',
|
245
|
+
orchid: '#da70d6',
|
246
|
+
palegoldenrod: '#eee8aa',
|
247
|
+
palegreen: '#98fb98',
|
248
|
+
paleturquoise: '#afeeee',
|
249
|
+
palevioletred: '#db7093',
|
250
|
+
papayawhip: '#ffefd5',
|
251
|
+
peachpuff: '#ffdab9',
|
252
|
+
peru: '#cd853f',
|
253
|
+
pink: '#ffc0cb',
|
254
|
+
plum: '#dda0dd',
|
255
|
+
powderblue: '#b0e0e6',
|
256
|
+
purple: '#800080',
|
257
|
+
rebeccapurple: '#663399',
|
258
|
+
red: '#ff0000',
|
259
|
+
rosybrown: '#bc8f8f',
|
260
|
+
royalblue: '#4169e1',
|
261
|
+
saddlebrown: '#8b4513',
|
262
|
+
salmon: '#fa8072',
|
263
|
+
sandybrown: '#f4a460',
|
264
|
+
seagreen: '#2e8b57',
|
265
|
+
seashell: '#fff5ee',
|
266
|
+
sienna: '#a0522d',
|
267
|
+
silver: '#c0c0c0',
|
268
|
+
skyblue: '#87ceeb',
|
269
|
+
slateblue: '#6a5acd',
|
270
|
+
slategray: '#708090',
|
271
|
+
slategrey: '#708090',
|
272
|
+
snow: '#fffafa',
|
273
|
+
springgreen: '#00ff7f',
|
274
|
+
steelblue: '#4682b4',
|
275
|
+
tan: '#d2b48c',
|
276
|
+
teal: '#008080',
|
277
|
+
thistle: '#d8bfd8',
|
278
|
+
tomato: '#ff6347',
|
279
|
+
turquoise: '#40e0d0',
|
280
|
+
violet: '#ee82ee',
|
281
|
+
wheat: '#f5deb3',
|
282
|
+
white: '#ffffff',
|
283
|
+
whitesmoke: '#f5f5f5',
|
284
|
+
yellow: '#ffff00',
|
285
|
+
yellowgreen: '#9acd32',
|
286
|
+
};
|
287
|
+
/**
|
288
|
+
* Note: [💞] Ignore a discrepancy between file name and entity name
|
289
|
+
*/
|
290
|
+
|
291
|
+
/**
|
292
|
+
* Validates that a channel value is a valid number within the range of 0 to 255.
|
293
|
+
* Throws an error if the value is not valid.
|
294
|
+
*
|
295
|
+
* @param channelName - The name of the channel being validated.
|
296
|
+
* @param value - The value of the channel to validate.
|
297
|
+
* @throws Will throw an error if the value is not a valid channel number.
|
298
|
+
*
|
299
|
+
* @private util of `@promptbook/color`
|
300
|
+
*/
|
301
|
+
function checkChannelValue(channelName, value) {
|
302
|
+
if (typeof value !== 'number') {
|
303
|
+
throw new Error(`${channelName} channel value is not number but ${typeof value}`);
|
304
|
+
}
|
305
|
+
if (isNaN(value)) {
|
306
|
+
throw new Error(`${channelName} channel value is NaN`);
|
307
|
+
}
|
308
|
+
if (Math.round(value) !== value) {
|
309
|
+
throw new Error(`${channelName} channel is not whole number, it is ${value}`);
|
310
|
+
}
|
311
|
+
if (value < 0) {
|
312
|
+
throw new Error(`${channelName} channel is lower than 0, it is ${value}`);
|
313
|
+
}
|
314
|
+
if (value > 255) {
|
315
|
+
throw new Error(`${channelName} channel is greater than 255, it is ${value}`);
|
316
|
+
}
|
317
|
+
}
|
318
|
+
/**
|
319
|
+
* TODO: [🧠][🚓] Is/which combination it better to use asserts/check, validate or is utility function?
|
320
|
+
*/
|
321
|
+
|
322
|
+
/**
|
323
|
+
* Color object represents an RGB color with alpha channel
|
324
|
+
*
|
325
|
+
* Note: There is no fromObject/toObject because the most logical way to serialize color is as a hex string (#009edd)
|
326
|
+
*
|
327
|
+
* @public exported from `@promptbook/color`
|
328
|
+
*/
|
329
|
+
class Color {
|
330
|
+
/**
|
331
|
+
* Creates a new Color instance from miscellaneous formats
|
332
|
+
* - It can receive Color instance and just return the same instance
|
333
|
+
* - It can receive color in string format for example `#009edd`, `rgb(0,158,221)`, `rgb(0%,62%,86.7%)`, `hsl(197.1,100%,43.3%)`
|
334
|
+
*
|
335
|
+
* Note: This is not including fromImage because detecting color from an image is heavy task which requires async stuff and we cannot safely determine with overloading if return value will be a promise
|
336
|
+
*
|
337
|
+
* @param color
|
338
|
+
* @returns Color object
|
339
|
+
*/
|
340
|
+
static from(color) {
|
341
|
+
if (color instanceof Color) {
|
342
|
+
return take(color);
|
343
|
+
}
|
344
|
+
else if (Color.isColor(color)) {
|
345
|
+
return take(color);
|
346
|
+
}
|
347
|
+
else if (typeof color === 'string') {
|
348
|
+
return Color.fromString(color);
|
349
|
+
}
|
350
|
+
else {
|
351
|
+
console.error({ color });
|
352
|
+
throw new Error(`Can not create color from given object`);
|
353
|
+
}
|
354
|
+
}
|
355
|
+
/**
|
356
|
+
* Creates a new Color instance from miscellaneous string formats
|
357
|
+
*
|
358
|
+
* @param color as a string for example `#009edd`, `rgb(0,158,221)`, `rgb(0%,62%,86.7%)`, `hsl(197.1,100%,43.3%)`, `red`, `darkgrey`,...
|
359
|
+
* @returns Color object
|
360
|
+
*/
|
361
|
+
static fromString(color) {
|
362
|
+
if (CSS_COLORS[color]) {
|
363
|
+
return Color.fromString(CSS_COLORS[color]);
|
364
|
+
// -----
|
365
|
+
}
|
366
|
+
else if (/^#(?:[0-9a-fA-F]{3}){1,2}$/.test(color)) {
|
367
|
+
return Color.fromHex(color);
|
368
|
+
// -----
|
369
|
+
}
|
370
|
+
else if (/^hsl\(\s*(\d+)\s*,\s*(\d+(?:\.\d+)?%)\s*,\s*(\d+(?:\.\d+)?%)\)$/.test(color)) {
|
371
|
+
return Color.fromHsl(color);
|
372
|
+
// -----
|
373
|
+
}
|
374
|
+
else if (/^rgb\((\s*[0-9-.%]+\s*,?){3}\)$/.test(color)) {
|
375
|
+
// TODO: [0] Should be fromRgbString and fromRgbaString one or two functions
|
376
|
+
return Color.fromRgbString(color);
|
377
|
+
// -----
|
378
|
+
}
|
379
|
+
else if (/^rgba\((\s*[0-9-.%]+\s*,?){4}\)$/.test(color)) {
|
380
|
+
return Color.fromRgbaString(color);
|
381
|
+
// -----
|
382
|
+
}
|
383
|
+
else {
|
384
|
+
throw new Error(`Can not create a new Color instance from string "${color}".`);
|
385
|
+
}
|
386
|
+
}
|
387
|
+
/**
|
388
|
+
* Gets common color
|
389
|
+
*
|
390
|
+
* @param key as a css string like `midnightblue`
|
391
|
+
* @returns Color object
|
392
|
+
*/
|
393
|
+
static get(key) {
|
394
|
+
if (!CSS_COLORS[key]) {
|
395
|
+
throw new Error(`"${key}" is not a common css color.`);
|
396
|
+
}
|
397
|
+
return Color.fromString(CSS_COLORS[key]);
|
398
|
+
}
|
399
|
+
/**
|
400
|
+
* Creates a new Color instance from average color of given image
|
401
|
+
*
|
402
|
+
* @param image as a source for example `data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAA1JREFUGFdjYJh39z8ABJgCe/ZvAS4AAAAASUVORK5CYII=`
|
403
|
+
* @returns Color object
|
404
|
+
*/
|
405
|
+
static async fromImage(image) {
|
406
|
+
return Color.fromHex(`#009edd`);
|
407
|
+
}
|
408
|
+
/**
|
409
|
+
* Creates a new Color instance from color in hex format
|
410
|
+
*
|
411
|
+
* @param color in hex for example `#009edd`, `009edd`, `#555`,...
|
412
|
+
* @returns Color object
|
413
|
+
*/
|
414
|
+
static fromHex(hex) {
|
415
|
+
const hexOriginal = hex;
|
416
|
+
if (hex.startsWith('#')) {
|
417
|
+
hex = hex.substring(1);
|
418
|
+
}
|
419
|
+
if (hex.length === 3) {
|
420
|
+
return Color.fromHex3(hex);
|
421
|
+
}
|
422
|
+
if (hex.length === 6) {
|
423
|
+
return Color.fromHex6(hex);
|
424
|
+
}
|
425
|
+
if (hex.length === 8) {
|
426
|
+
return Color.fromHex8(hex);
|
427
|
+
}
|
428
|
+
throw new Error(`Can not parse color from hex string "${hexOriginal}"`);
|
429
|
+
}
|
430
|
+
/**
|
431
|
+
* Creates a new Color instance from color in hex format with 3 color digits (without alpha channel)
|
432
|
+
*
|
433
|
+
* @param color in hex for example `09d`
|
434
|
+
* @returns Color object
|
435
|
+
*/
|
436
|
+
static fromHex3(hex) {
|
437
|
+
const r = parseInt(hex.substr(0, 1), 16) * 16;
|
438
|
+
const g = parseInt(hex.substr(1, 1), 16) * 16;
|
439
|
+
const b = parseInt(hex.substr(2, 1), 16) * 16;
|
440
|
+
return take(new Color(r, g, b));
|
441
|
+
}
|
442
|
+
/**
|
443
|
+
* Creates a new Color instance from color in hex format with 6 color digits (without alpha channel)
|
444
|
+
*
|
445
|
+
* @param color in hex for example `009edd`
|
446
|
+
* @returns Color object
|
447
|
+
*/
|
448
|
+
static fromHex6(hex) {
|
449
|
+
const r = parseInt(hex.substr(0, 2), 16);
|
450
|
+
const g = parseInt(hex.substr(2, 2), 16);
|
451
|
+
const b = parseInt(hex.substr(4, 2), 16);
|
452
|
+
return take(new Color(r, g, b));
|
453
|
+
}
|
454
|
+
/**
|
455
|
+
* Creates a new Color instance from color in hex format with 8 color digits (with alpha channel)
|
456
|
+
*
|
457
|
+
* @param color in hex for example `009edd`
|
458
|
+
* @returns Color object
|
459
|
+
*/
|
460
|
+
static fromHex8(hex) {
|
461
|
+
const r = parseInt(hex.substr(0, 2), 16);
|
462
|
+
const g = parseInt(hex.substr(2, 2), 16);
|
463
|
+
const b = parseInt(hex.substr(4, 2), 16);
|
464
|
+
const a = parseInt(hex.substr(6, 2), 16);
|
465
|
+
return take(new Color(r, g, b, a));
|
466
|
+
}
|
467
|
+
/**
|
468
|
+
* Creates a new Color instance from color in hsl format
|
469
|
+
*
|
470
|
+
* @param color as a hsl for example `hsl(197.1,100%,43.3%)`
|
471
|
+
* @returns Color object
|
472
|
+
*/
|
473
|
+
static fromHsl(hsl) {
|
474
|
+
const match = hsl.match(/^hsl\(\s*([0-9.]+)\s*,\s*([0-9.]+)%\s*,\s*([0-9.]+)%\s*\)$/);
|
475
|
+
if (!match) {
|
476
|
+
throw new Error(`Invalid hsl string format: "${hsl}"`);
|
477
|
+
}
|
478
|
+
const h = parseFloat(match[1]);
|
479
|
+
const s = parseFloat(match[2]) / 100;
|
480
|
+
const l = parseFloat(match[3]) / 100;
|
481
|
+
// HSL to RGB conversion
|
482
|
+
const c = (1 - Math.abs(2 * l - 1)) * s;
|
483
|
+
const x = c * (1 - Math.abs(((h / 60) % 2) - 1));
|
484
|
+
const m = l - c / 2;
|
485
|
+
let r1 = 0, g1 = 0, b1 = 0;
|
486
|
+
if (h >= 0 && h < 60) {
|
487
|
+
r1 = c;
|
488
|
+
g1 = x;
|
489
|
+
b1 = 0;
|
490
|
+
}
|
491
|
+
else if (h >= 60 && h < 120) {
|
492
|
+
r1 = x;
|
493
|
+
g1 = c;
|
494
|
+
b1 = 0;
|
495
|
+
}
|
496
|
+
else if (h >= 120 && h < 180) {
|
497
|
+
r1 = 0;
|
498
|
+
g1 = c;
|
499
|
+
b1 = x;
|
500
|
+
}
|
501
|
+
else if (h >= 180 && h < 240) {
|
502
|
+
r1 = 0;
|
503
|
+
g1 = x;
|
504
|
+
b1 = c;
|
505
|
+
}
|
506
|
+
else if (h >= 240 && h < 300) {
|
507
|
+
r1 = x;
|
508
|
+
g1 = 0;
|
509
|
+
b1 = c;
|
510
|
+
}
|
511
|
+
else if (h >= 300 && h < 360) {
|
512
|
+
r1 = c;
|
513
|
+
g1 = 0;
|
514
|
+
b1 = x;
|
515
|
+
}
|
516
|
+
const r = Math.round((r1 + m) * 255);
|
517
|
+
const g = Math.round((g1 + m) * 255);
|
518
|
+
const b = Math.round((b1 + m) * 255);
|
519
|
+
return take(new Color(r, g, b));
|
520
|
+
}
|
521
|
+
/**
|
522
|
+
* Creates a new Color instance from color in rgb format
|
523
|
+
*
|
524
|
+
* @param color as a rgb for example `rgb(0,158,221)`, `rgb(0%,62%,86.7%)`
|
525
|
+
* @returns Color object
|
526
|
+
*/
|
527
|
+
static fromRgbString(rgb) {
|
528
|
+
const match = rgb.match(/^rgb\(\s*([0-9.%-]+)\s*,\s*([0-9.%-]+)\s*,\s*([0-9.%-]+)\s*\)$/);
|
529
|
+
if (!match) {
|
530
|
+
throw new Error(`Invalid rgb string format: "${rgb}"`);
|
531
|
+
}
|
532
|
+
const parseChannel = (value) => {
|
533
|
+
if (value.endsWith('%')) {
|
534
|
+
// Percentage value
|
535
|
+
const percent = parseFloat(value);
|
536
|
+
return Math.round((percent / 100) * 255);
|
537
|
+
}
|
538
|
+
else {
|
539
|
+
// Numeric value
|
540
|
+
return Math.round(parseFloat(value));
|
541
|
+
}
|
542
|
+
};
|
543
|
+
const r = parseChannel(match[1]);
|
544
|
+
const g = parseChannel(match[2]);
|
545
|
+
const b = parseChannel(match[3]);
|
546
|
+
return take(new Color(r, g, b));
|
547
|
+
}
|
548
|
+
/**
|
549
|
+
* Creates a new Color instance from color in rbga format
|
550
|
+
*
|
551
|
+
* @param color as a rgba for example `rgba(0,158,221,0.5)`, `rgb(0%,62%,86.7%,50%)`
|
552
|
+
* @returns Color object
|
553
|
+
*/
|
554
|
+
static fromRgbaString(rgba) {
|
555
|
+
const match = rgba.match(/^rgba\(\s*([0-9.%-]+)\s*,\s*([0-9.%-]+)\s*,\s*([0-9.%-]+)\s*,\s*([0-9.%-]+)\s*\)$/);
|
556
|
+
if (!match) {
|
557
|
+
throw new Error(`Invalid rgba string format: "${rgba}"`);
|
558
|
+
}
|
559
|
+
const parseChannel = (value) => {
|
560
|
+
if (value.endsWith('%')) {
|
561
|
+
const percent = parseFloat(value);
|
562
|
+
return Math.round((percent / 100) * 255);
|
563
|
+
}
|
564
|
+
else {
|
565
|
+
return Math.round(parseFloat(value));
|
566
|
+
}
|
567
|
+
};
|
568
|
+
const parseAlpha = (value) => {
|
569
|
+
if (value.endsWith('%')) {
|
570
|
+
const percent = parseFloat(value);
|
571
|
+
return Math.round((percent / 100) * 255);
|
572
|
+
}
|
573
|
+
else {
|
574
|
+
const alphaFloat = parseFloat(value);
|
575
|
+
// If alpha is between 0 and 1, treat as float
|
576
|
+
if (alphaFloat <= 1) {
|
577
|
+
return Math.round(alphaFloat * 255);
|
578
|
+
}
|
579
|
+
// Otherwise, treat as 0-255
|
580
|
+
return Math.round(alphaFloat);
|
581
|
+
}
|
582
|
+
};
|
583
|
+
const r = parseChannel(match[1]);
|
584
|
+
const g = parseChannel(match[2]);
|
585
|
+
const b = parseChannel(match[3]);
|
586
|
+
const a = parseAlpha(match[4]);
|
587
|
+
return take(new Color(r, g, b, a));
|
588
|
+
}
|
589
|
+
/**
|
590
|
+
* Creates a new Color for color channels values
|
591
|
+
*
|
592
|
+
* @param red number from 0 to 255
|
593
|
+
* @param green number from 0 to 255
|
594
|
+
* @param blue number from 0 to 255
|
595
|
+
* @param alpha number from 0 (transparent) to 255 (opaque = default)
|
596
|
+
* @returns Color object
|
597
|
+
*/
|
598
|
+
static fromValues(red, green, blue, alpha = 255) {
|
599
|
+
return take(new Color(red, green, blue, alpha));
|
600
|
+
}
|
601
|
+
/**
|
602
|
+
* Checks if the given value is a valid Color object.
|
603
|
+
*
|
604
|
+
* @param {unknown} value - The value to check.
|
605
|
+
* @return {value is WithTake<Color>} Returns true if the value is a valid Color object, false otherwise.
|
606
|
+
*/
|
607
|
+
static isColor(value) {
|
608
|
+
if (typeof value !== 'object') {
|
609
|
+
return false;
|
610
|
+
}
|
611
|
+
if (value === null) {
|
612
|
+
return false;
|
613
|
+
}
|
614
|
+
if (typeof value.red !== 'number' ||
|
615
|
+
typeof value.green !== 'number' ||
|
616
|
+
typeof value.blue !== 'number' ||
|
617
|
+
typeof value.alpha !== 'number') {
|
618
|
+
return false;
|
619
|
+
}
|
620
|
+
if (typeof value.then !== 'function') {
|
621
|
+
return false;
|
622
|
+
}
|
623
|
+
return true;
|
624
|
+
}
|
625
|
+
/**
|
626
|
+
* Creates new Color object
|
627
|
+
*
|
628
|
+
* Note: Consider using one of static methods like `from` or `fromString`
|
629
|
+
*
|
630
|
+
* @param red number from 0 to 255
|
631
|
+
* @param green number from 0 to 255
|
632
|
+
* @param blue number from 0 to 255
|
633
|
+
* @param alpha number from 0 (transparent) to 255 (opaque)
|
634
|
+
*/
|
635
|
+
constructor(red, green, blue, alpha = 255) {
|
636
|
+
this.red = red;
|
637
|
+
this.green = green;
|
638
|
+
this.blue = blue;
|
639
|
+
this.alpha = alpha;
|
640
|
+
checkChannelValue('Red', red);
|
641
|
+
checkChannelValue('Green', green);
|
642
|
+
checkChannelValue('Blue', blue);
|
643
|
+
checkChannelValue('Alpha', alpha);
|
644
|
+
}
|
645
|
+
/**
|
646
|
+
* Shortcut for `red` property
|
647
|
+
* Number from 0 to 255
|
648
|
+
* @alias red
|
649
|
+
*/
|
650
|
+
get r() {
|
651
|
+
return this.red;
|
652
|
+
}
|
653
|
+
/**
|
654
|
+
* Shortcut for `green` property
|
655
|
+
* Number from 0 to 255
|
656
|
+
* @alias green
|
657
|
+
*/
|
658
|
+
get g() {
|
659
|
+
return this.green;
|
660
|
+
}
|
661
|
+
/**
|
662
|
+
* Shortcut for `blue` property
|
663
|
+
* Number from 0 to 255
|
664
|
+
* @alias blue
|
665
|
+
*/
|
666
|
+
get b() {
|
667
|
+
return this.blue;
|
668
|
+
}
|
669
|
+
/**
|
670
|
+
* Shortcut for `alpha` property
|
671
|
+
* Number from 0 (transparent) to 255 (opaque)
|
672
|
+
* @alias alpha
|
673
|
+
*/
|
674
|
+
get a() {
|
675
|
+
return this.alpha;
|
676
|
+
}
|
677
|
+
/**
|
678
|
+
* Shortcut for `alpha` property
|
679
|
+
* Number from 0 (transparent) to 255 (opaque)
|
680
|
+
* @alias alpha
|
681
|
+
*/
|
682
|
+
get opacity() {
|
683
|
+
return this.alpha;
|
684
|
+
}
|
685
|
+
/**
|
686
|
+
* Shortcut for 1-`alpha` property
|
687
|
+
*/
|
688
|
+
get transparency() {
|
689
|
+
return 255 - this.alpha;
|
690
|
+
}
|
691
|
+
clone() {
|
692
|
+
return take(new Color(this.red, this.green, this.blue, this.alpha));
|
693
|
+
}
|
694
|
+
toString() {
|
695
|
+
return this.toHex();
|
696
|
+
}
|
697
|
+
toHex() {
|
698
|
+
if (this.alpha === 255) {
|
699
|
+
return `#${this.red.toString(16).padStart(2, '0')}${this.green.toString(16).padStart(2, '0')}${this.blue
|
700
|
+
.toString(16)
|
701
|
+
.padStart(2, '0')}`;
|
702
|
+
}
|
703
|
+
else {
|
704
|
+
return `#${this.red.toString(16).padStart(2, '0')}${this.green.toString(16).padStart(2, '0')}${this.blue
|
705
|
+
.toString(16)
|
706
|
+
.padStart(2, '0')}${this.alpha.toString(16).padStart(2, '0')}`;
|
707
|
+
}
|
708
|
+
}
|
709
|
+
toRgb() {
|
710
|
+
if (this.alpha === 255) {
|
711
|
+
return `rgb(${this.red}, ${this.green}, ${this.blue})`;
|
712
|
+
}
|
713
|
+
else {
|
714
|
+
return `rgba(${this.red}, ${this.green}, ${this.blue}, ${Math.round((this.alpha / 255) * 100)}%)`;
|
715
|
+
}
|
716
|
+
}
|
717
|
+
toHsl() {
|
718
|
+
throw new Error(`Getting HSL is not implemented`);
|
719
|
+
}
|
720
|
+
}
|
721
|
+
/**
|
722
|
+
* TODO: [🥻] Split Color class and color type
|
723
|
+
* TODO: For each method a corresponding static method should be created
|
724
|
+
* Like clone can be done by color.clone() OR Color.clone(color)
|
725
|
+
* TODO: Probably as an independent LIB OR add to LIB xyzt (ask @roseckyj)
|
726
|
+
* TODO: !! Transfer back to Collboard (whole directory)
|
727
|
+
* TODO: Maybe [🏌️♂️] change ACRY toString => (toHex) toRgb when there will be toRgb and toRgba united
|
728
|
+
* TODO: Convert getters to methods - getters only for values
|
729
|
+
* TODO: Write tests
|
730
|
+
* TODO: Getters for alpha, opacity, transparency, r, b, g, h, s, l, a,...
|
731
|
+
* TODO: [0] Should be fromRgbString and fromRgbaString one or two functions + one or two regex
|
732
|
+
* TODO: Use rgb, rgba, hsl for testing and parsing with the same regex
|
733
|
+
* TODO: Regex for rgb, rgba, hsl does not support all options like deg, rad, turn,...
|
734
|
+
* TODO: Convolution matrix
|
735
|
+
* TODO: Maybe connect with textures
|
736
|
+
*/
|
737
|
+
|
738
|
+
/**
|
739
|
+
* Converts HSL values to RGB values
|
740
|
+
*
|
741
|
+
* @param hue [0-1]
|
742
|
+
* @param saturation [0-1]
|
743
|
+
* @param lightness [0-1]
|
744
|
+
* @returns [red, green, blue] [0-255]
|
745
|
+
*
|
746
|
+
* @private util of `@promptbook/color`
|
747
|
+
*/
|
748
|
+
function hslToRgb(hue, saturation, lightness) {
|
749
|
+
let red;
|
750
|
+
let green;
|
751
|
+
let blue;
|
752
|
+
if (saturation === 0) {
|
753
|
+
// achromatic
|
754
|
+
red = lightness;
|
755
|
+
green = lightness;
|
756
|
+
blue = lightness;
|
757
|
+
}
|
758
|
+
else {
|
759
|
+
// TODO: Extract to separate function
|
760
|
+
const hue2rgb = (p, q, t) => {
|
761
|
+
if (t < 0)
|
762
|
+
t += 1;
|
763
|
+
if (t > 1)
|
764
|
+
t -= 1;
|
765
|
+
if (t < 1 / 6)
|
766
|
+
return p + (q - p) * 6 * t;
|
767
|
+
if (t < 1 / 2)
|
768
|
+
return q;
|
769
|
+
if (t < 2 / 3)
|
770
|
+
return p + (q - p) * (2 / 3 - t) * 6;
|
771
|
+
return p;
|
772
|
+
};
|
773
|
+
const q = lightness < 0.5 ? lightness * (1 + saturation) : lightness + saturation - lightness * saturation;
|
774
|
+
const p = 2 * lightness - q;
|
775
|
+
red = hue2rgb(p, q, hue + 1 / 3);
|
776
|
+
green = hue2rgb(p, q, hue);
|
777
|
+
blue = hue2rgb(p, q, hue - 1 / 3);
|
778
|
+
}
|
779
|
+
return [Math.round(red * 255), Math.round(green * 255), Math.round(blue * 255)];
|
780
|
+
}
|
781
|
+
/**
|
782
|
+
* TODO: Properly name all used internal variables
|
783
|
+
*/
|
784
|
+
|
785
|
+
/**
|
786
|
+
* Converts RGB values to HSL values
|
787
|
+
*
|
788
|
+
* @param red [0-255]
|
789
|
+
* @param green [0-255]
|
790
|
+
* @param blue [0-255]
|
791
|
+
* @returns [hue, saturation, lightness] [0-1]
|
792
|
+
*
|
793
|
+
* @private util of `@promptbook/color`
|
794
|
+
*/
|
795
|
+
function rgbToHsl(red, green, blue) {
|
796
|
+
red /= 255;
|
797
|
+
green /= 255;
|
798
|
+
blue /= 255;
|
799
|
+
const max = Math.max(red, green, blue);
|
800
|
+
const min = Math.min(red, green, blue);
|
801
|
+
let hue;
|
802
|
+
let saturation;
|
803
|
+
const lightness = (max + min) / 2;
|
804
|
+
if (max === min) {
|
805
|
+
// achromatic
|
806
|
+
hue = 0;
|
807
|
+
saturation = 0;
|
808
|
+
}
|
809
|
+
else {
|
810
|
+
const d = max - min;
|
811
|
+
saturation = lightness > 0.5 ? d / (2 - max - min) : d / (max + min);
|
812
|
+
switch (max) {
|
813
|
+
case red:
|
814
|
+
hue = (green - blue) / d + (green < blue ? 6 : 0);
|
815
|
+
break;
|
816
|
+
case green:
|
817
|
+
hue = (blue - red) / d + 2;
|
818
|
+
break;
|
819
|
+
case blue:
|
820
|
+
hue = (red - green) / d + 4;
|
821
|
+
break;
|
822
|
+
default:
|
823
|
+
hue = 0;
|
824
|
+
}
|
825
|
+
hue /= 6;
|
826
|
+
}
|
827
|
+
return [hue, saturation, lightness];
|
828
|
+
}
|
829
|
+
/**
|
830
|
+
* TODO: Properly name all used internal variables
|
831
|
+
*/
|
832
|
+
|
833
|
+
/**
|
834
|
+
* Makes color transformer which lighten the given color
|
835
|
+
*
|
836
|
+
* @param amount from 0 to 1
|
837
|
+
*
|
838
|
+
* @public exported from `@promptbook/color`
|
839
|
+
*/
|
840
|
+
function lighten(amount) {
|
841
|
+
return ({ red, green, blue, alpha }) => {
|
842
|
+
const [h, s, lInitial] = rgbToHsl(red, green, blue);
|
843
|
+
let l = lInitial + amount;
|
844
|
+
l = Math.max(0, Math.min(l, 1)); // Replace lodash clamp with Math.max and Math.min
|
845
|
+
const [r, g, b] = hslToRgb(h, s, l);
|
846
|
+
return Color.fromValues(r, g, b, alpha);
|
847
|
+
};
|
848
|
+
}
|
849
|
+
/**
|
850
|
+
* TODO: Maybe implement by mix+hsl
|
851
|
+
*/
|
852
|
+
|
853
|
+
/**
|
854
|
+
* Calculates distance between two colors
|
855
|
+
*
|
856
|
+
* @param color1 first color
|
857
|
+
* @param color2 second color
|
858
|
+
*
|
859
|
+
* Note: This function is inefficient. Use colorDistanceSquared instead if possible.
|
860
|
+
*
|
861
|
+
* @public exported from `@promptbook/color`
|
862
|
+
*/
|
863
|
+
/**
|
864
|
+
* Calculates distance between two colors without square root
|
865
|
+
*
|
866
|
+
* @param color1 first color
|
867
|
+
* @param color2 second color
|
868
|
+
*
|
869
|
+
* @public exported from `@promptbook/color`
|
870
|
+
*/
|
871
|
+
function colorDistanceSquared(color1, color2) {
|
872
|
+
const rmean = (color1.red + color2.red) / 2;
|
873
|
+
const r = color1.red - color2.red;
|
874
|
+
const g = color1.green - color2.green;
|
875
|
+
const b = color1.blue - color2.blue;
|
876
|
+
const weightR = 2 + rmean / 256;
|
877
|
+
const weightG = 4.0;
|
878
|
+
const weightB = 2 + (255 - rmean) / 256;
|
879
|
+
const distance = weightR * r * r + weightG * g * g + weightB * b * b;
|
880
|
+
return distance;
|
881
|
+
}
|
882
|
+
|
883
|
+
/**
|
884
|
+
* Makes color transformer which finds the nearest color from the given list
|
885
|
+
*
|
886
|
+
* @param colors array of colors to choose from
|
887
|
+
*
|
888
|
+
* @public exported from `@promptbook/color`
|
889
|
+
*/
|
890
|
+
function nearest(...colors) {
|
891
|
+
return (color) => {
|
892
|
+
const distances = colors.map((c) => colorDistanceSquared(c, color));
|
893
|
+
const minDistance = Math.min(...distances);
|
894
|
+
const minIndex = distances.indexOf(minDistance);
|
895
|
+
const nearestColor = colors[minIndex];
|
896
|
+
return nearestColor;
|
897
|
+
};
|
898
|
+
}
|
899
|
+
|
900
|
+
/**
|
901
|
+
* Color transformer which returns the negative color
|
902
|
+
*
|
903
|
+
* @public exported from `@promptbook/color`
|
904
|
+
*/
|
905
|
+
function negative(color) {
|
906
|
+
const r = 255 - color.red;
|
907
|
+
const g = 255 - color.green;
|
908
|
+
const b = 255 - color.blue;
|
909
|
+
return Color.fromValues(r, g, b, color.alpha);
|
910
|
+
}
|
911
|
+
|
912
|
+
/**
|
913
|
+
* Makes color transformer which finds the furthest color from the given list
|
914
|
+
*
|
915
|
+
* @param colors array of colors to choose from
|
916
|
+
*
|
917
|
+
* @public exported from `@promptbook/color`
|
918
|
+
*/
|
919
|
+
function furthest(...colors) {
|
920
|
+
return (color) => {
|
921
|
+
const furthestColor = negative(nearest(...colors.map(negative))(color));
|
922
|
+
return furthestColor;
|
923
|
+
};
|
924
|
+
}
|
925
|
+
/**
|
926
|
+
* Makes color transformer which finds the best text color (black or white) for the given background color
|
927
|
+
*
|
928
|
+
* @public exported from `@promptbook/color`
|
929
|
+
*/
|
930
|
+
furthest(Color.get('white'), Color.from('black'));
|
931
|
+
|
932
|
+
/**
|
933
|
+
* Makes color transformer which returns a grayscale version of the color
|
934
|
+
*
|
935
|
+
* @param amount from 0 to 1
|
936
|
+
*
|
937
|
+
* @public exported from `@promptbook/color`
|
938
|
+
*/
|
939
|
+
function grayscale(amount) {
|
940
|
+
return ({ red, green, blue, alpha }) => {
|
941
|
+
const average = (red + green + blue) / 3;
|
942
|
+
red = Math.round(average * amount + red * (1 - amount));
|
943
|
+
green = Math.round(average * amount + green * (1 - amount));
|
944
|
+
blue = Math.round(average * amount + blue * (1 - amount));
|
945
|
+
return Color.fromValues(red, green, blue, alpha);
|
946
|
+
};
|
947
|
+
}
|
948
|
+
|
949
|
+
/**
|
950
|
+
* Makes color transformer which saturate the given color
|
951
|
+
*
|
952
|
+
* @param amount from -1 to 1
|
953
|
+
*
|
954
|
+
* @public exported from `@promptbook/color`
|
955
|
+
*/
|
956
|
+
function saturate(amount) {
|
957
|
+
return ({ red, green, blue, alpha }) => {
|
958
|
+
const [h, sInitial, l] = rgbToHsl(red, green, blue);
|
959
|
+
let s = sInitial + amount;
|
960
|
+
s = Math.max(0, Math.min(s, 1));
|
961
|
+
const [r, g, b] = hslToRgb(h, s, l);
|
962
|
+
return Color.fromValues(r, g, b, alpha);
|
963
|
+
};
|
964
|
+
}
|
965
|
+
/**
|
966
|
+
* TODO: Maybe implement by mix+hsl
|
967
|
+
*/
|
968
|
+
|
76
969
|
/**
|
77
970
|
* Returns the same value that is passed as argument.
|
78
971
|
* No side effects.
|
@@ -114,6 +1007,31 @@ const ADMIN_EMAIL = 'pavol@ptbk.io';
|
|
114
1007
|
*/
|
115
1008
|
const ADMIN_GITHUB_NAME = 'hejny';
|
116
1009
|
// <- TODO: [🐊] Pick the best claim
|
1010
|
+
/**
|
1011
|
+
* Color of the Promptbook
|
1012
|
+
*
|
1013
|
+
* TODO: [🗽] Unite branding and make single place for it
|
1014
|
+
*
|
1015
|
+
* @public exported from `@promptbook/core`
|
1016
|
+
*/
|
1017
|
+
const PROMPTBOOK_COLOR = Color.fromHex('#79EAFD');
|
1018
|
+
// <- TODO: !!! How much is this adding to package size of @promptbook/core
|
1019
|
+
/**
|
1020
|
+
* Dark color of the Promptbook
|
1021
|
+
*
|
1022
|
+
* TODO: [🗽] Unite branding and make single place for it
|
1023
|
+
*
|
1024
|
+
* @public exported from `@promptbook/core`
|
1025
|
+
*/
|
1026
|
+
PROMPTBOOK_COLOR.then(lighten(0.1)).then(saturate(0.9)).then(grayscale(0.9));
|
1027
|
+
/**
|
1028
|
+
* Color of the user (in chat)
|
1029
|
+
*
|
1030
|
+
* TODO: [🗽] Unite branding and make single place for it
|
1031
|
+
*
|
1032
|
+
* @public exported from `@promptbook/core`
|
1033
|
+
*/
|
1034
|
+
Color.fromHex('#1D4ED8');
|
117
1035
|
/**
|
118
1036
|
* When the title is not provided, the default title is used
|
119
1037
|
*
|
@@ -6577,19 +7495,6 @@ function titleToName(value) {
|
|
6577
7495
|
return value;
|
6578
7496
|
}
|
6579
7497
|
|
6580
|
-
/**
|
6581
|
-
* Just marks a place of place where should be something implemented
|
6582
|
-
* No side effects.
|
6583
|
-
*
|
6584
|
-
* Note: It can be useful suppressing eslint errors of unused variables
|
6585
|
-
*
|
6586
|
-
* @param value any values
|
6587
|
-
* @returns void
|
6588
|
-
* @private within the repository
|
6589
|
-
*/
|
6590
|
-
function TODO_USE(...value) {
|
6591
|
-
}
|
6592
|
-
|
6593
7498
|
/**
|
6594
7499
|
* Retrieves an intermediate source for a scraper based on the knowledge source.
|
6595
7500
|
* Manages the caching and retrieval of intermediate scraper results for optimized performance.
|
@@ -6660,7 +7565,7 @@ async function getScraperIntermediateSource(source, options) {
|
|
6660
7565
|
* Note: [🟢] Code in this file should never be never released in packages that could be imported into browser environment
|
6661
7566
|
*/
|
6662
7567
|
|
6663
|
-
var PipelineCollection = [{title:"Prepare Knowledge from Markdown",pipelineUrl:"https://promptbook.studio/promptbook/prepare-knowledge-from-markdown.book",formfactorName:"GENERIC",parameters:[{name:"knowledgeContent",description:"Markdown document content",isInput:true,isOutput:false},{name:"knowledgePieces",description:"The knowledge JSON object",isInput:false,isOutput:true}],tasks:[{taskType:"PROMPT_TASK",name:"knowledge",title:"Knowledge",content:"You are experienced data researcher, extract the important knowledge from the document.\n\n# Rules\n\n- Make pieces of information concise, clear, and easy to understand\n- One piece of information should be approximately 1 paragraph\n- Divide the paragraphs by markdown horizontal lines ---\n- Omit irrelevant information\n- Group redundant information\n- Write just extracted information, nothing else\n\n# The document\n\nTake information from this document:\n\n> {knowledgeContent}",resultingParameterName:"knowledgePieces",dependentParameterNames:["knowledgeContent"]}],personas:[],preparations:[],knowledgeSources:[],knowledgePieces:[],sources:[{type:"BOOK",path:null,content:"# Prepare Knowledge from Markdown\n\n- PIPELINE URL `https://promptbook.studio/promptbook/prepare-knowledge-from-markdown.book`\n- INPUT PARAMETER `{knowledgeContent}` Markdown document content\n- OUTPUT PARAMETER `{knowledgePieces}` The knowledge JSON object\n\n## Knowledge\n\n<!-- TODO: [🍆] -FORMAT JSON -->\n\n```markdown\nYou are experienced data researcher, extract the important knowledge from the document.\n\n# Rules\n\n- Make pieces of information concise, clear, and easy to understand\n- One piece of information should be approximately 1 paragraph\n- Divide the paragraphs by markdown horizontal lines ---\n- Omit irrelevant information\n- Group redundant information\n- Write just extracted information, nothing else\n\n# The document\n\nTake information from this document:\n\n> {knowledgeContent}\n```\n\n`-> {knowledgePieces}`\n"}],sourceFile:"./books/prepare-knowledge-from-markdown.book"},{title:"Prepare Keywords",pipelineUrl:"https://promptbook.studio/promptbook/prepare-knowledge-keywords.book",formfactorName:"GENERIC",parameters:[{name:"knowledgePieceContent",description:"The content",isInput:true,isOutput:false},{name:"keywords",description:"Keywords separated by comma",isInput:false,isOutput:true}],tasks:[{taskType:"PROMPT_TASK",name:"knowledge",title:"Knowledge",content:"You are experienced data researcher, detect the important keywords in the document.\n\n# Rules\n\n- Write just keywords separated by comma\n\n# The document\n\nTake information from this document:\n\n> {knowledgePieceContent}",resultingParameterName:"keywords",dependentParameterNames:["knowledgePieceContent"]}],personas:[],preparations:[],knowledgeSources:[],knowledgePieces:[],sources:[{type:"BOOK",path:null,content:"# Prepare Keywords\n\n- PIPELINE URL `https://promptbook.studio/promptbook/prepare-knowledge-keywords.book`\n- INPUT PARAMETER `{knowledgePieceContent}` The content\n- OUTPUT PARAMETER `{keywords}` Keywords separated by comma\n\n## Knowledge\n\n<!-- TODO: [🍆] -FORMAT JSON -->\n\n```markdown\nYou are experienced data researcher, detect the important keywords in the document.\n\n# Rules\n\n- Write just keywords separated by comma\n\n# The document\n\nTake information from this document:\n\n> {knowledgePieceContent}\n```\n\n`-> {keywords}`\n"}],sourceFile:"./books/prepare-knowledge-keywords.book"},{title:"Prepare Knowledge-piece Title",pipelineUrl:"https://promptbook.studio/promptbook/prepare-knowledge-title.book",formfactorName:"GENERIC",parameters:[{name:"knowledgePieceContent",description:"The content",isInput:true,isOutput:false},{name:"title",description:"The title of the document",isInput:false,isOutput:true}],tasks:[{taskType:"PROMPT_TASK",name:"knowledge",title:"Knowledge",content:"You are experienced content creator, write best title for the document.\n\n# Rules\n\n- Write just title, nothing else\n- Write maximum 5 words for the title\n\n# The document\n\n> {knowledgePieceContent}",resultingParameterName:"title",expectations:{words:{min:1,max:8}},dependentParameterNames:["knowledgePieceContent"]}],personas:[],preparations:[],knowledgeSources:[],knowledgePieces:[],sources:[{type:"BOOK",path:null,content:"# Prepare Knowledge-piece Title\n\n- PIPELINE URL `https://promptbook.studio/promptbook/prepare-knowledge-title.book`\n- INPUT PARAMETER `{knowledgePieceContent}` The content\n- OUTPUT PARAMETER `{title}` The title of the document\n\n## Knowledge\n\n- EXPECT MIN 1 WORD\n- EXPECT MAX 8 WORDS\n\n```markdown\nYou are experienced content creator, write best title for the document.\n\n# Rules\n\n- Write just title, nothing else\n- Write maximum 5 words for the title\n\n# The document\n\n> {knowledgePieceContent}\n```\n\n`-> {title}`\n"}],sourceFile:"./books/prepare-knowledge-title.book"},{title:"Prepare Persona",pipelineUrl:"https://promptbook.studio/promptbook/prepare-persona.book",formfactorName:"GENERIC",parameters:[{name:"availableModels",description:"List of available model names together with their descriptions as JSON",isInput:true,isOutput:false},{name:"personaDescription",description:"Description of the persona",isInput:true,isOutput:false},{name:"modelsRequirements",description:"Specific requirements for the model",isInput:false,isOutput:true}],tasks:[{taskType:"PROMPT_TASK",name:"make-model-requirements",title:"Make modelRequirements",content:"You are an experienced AI engineer, you need to find the best models for virtual assistants:\n\n## Example\n\n```json\n[\n {\n \"modelName\": \"gpt-4o\",\n \"systemMessage\": \"You are experienced AI engineer and helpful assistant.\",\n \"temperature\": 0.7\n },\n {\n \"modelName\": \"claude-3-5-sonnet\",\n \"systemMessage\": \"You are a friendly and knowledgeable chatbot.\",\n \"temperature\": 0.5\n }\n]\n```\n\n## Instructions\n\n- Your output format is JSON array\n- Sort best-fitting models first\n- Omit any models that are not suitable\n- Write just the JSON, no other text should be present\n- Array contain items with following keys:\n - `modelName`: The name of the model to use\n - `systemMessage`: The system message to provide context to the model\n - `temperature`: The sampling temperature to use\n\n### Key `modelName`\n\nHere are the available models:\n\n```json\n{availableModels}\n```\n\n### Key `systemMessage`\n\nThe system message is used to communicate instructions or provide context to the model at the beginning of a conversation. It is displayed in a different format compared to user messages, helping the model understand its role in the conversation. The system message typically guides the model's behavior, sets the tone, or specifies desired output from the model. By utilizing the system message effectively, users can steer the model towards generating more accurate and relevant responses.\n\nFor example:\n\n> You are an experienced AI engineer and helpful assistant.\n\n> You are a friendly and knowledgeable chatbot.\n\n### Key `temperature`\n\nThe sampling temperature, between 0 and 1. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. If set to 0, the model will use log probability to automatically increase the temperature until certain thresholds are hit.\n\nYou can pick a value between 0 and 2. For example:\n\n- `0.1`: Low temperature, extremely conservative and deterministic\n- `0.5`: Medium temperature, balanced between conservative and creative\n- `1.0`: High temperature, creative and bit random\n- `1.5`: Very high temperature, extremely creative and often chaotic and unpredictable\n- `2.0`: Maximum temperature, completely random and unpredictable, for some extreme creative use cases\n\n# The assistant\n\nTake this description of the persona:\n\n> {personaDescription}",resultingParameterName:"modelsRequirements",format:"JSON",dependentParameterNames:["availableModels","personaDescription"]}],personas:[],preparations:[],knowledgeSources:[],knowledgePieces:[],sources:[{type:"BOOK",path:null,content:"# Prepare Persona\n\n- PIPELINE URL `https://promptbook.studio/promptbook/prepare-persona.book`\n- INPUT PARAMETER `{availableModels}` List of available model names together with their descriptions as JSON\n- INPUT PARAMETER `{personaDescription}` Description of the persona\n- OUTPUT PARAMETER `{modelsRequirements}` Specific requirements for the model\n\n## Make modelRequirements\n\n- FORMAT JSON\n\n```markdown\nYou are an experienced AI engineer, you need to find the best models for virtual assistants:\n\n## Example\n\n\\`\\`\\`json\n[\n {\n \"modelName\": \"gpt-4o\",\n \"systemMessage\": \"You are experienced AI engineer and helpful assistant.\",\n \"temperature\": 0.7\n },\n {\n \"modelName\": \"claude-3-5-sonnet\",\n \"systemMessage\": \"You are a friendly and knowledgeable chatbot.\",\n \"temperature\": 0.5\n }\n]\n\\`\\`\\`\n\n## Instructions\n\n- Your output format is JSON array\n- Sort best-fitting models first\n- Omit any models that are not suitable\n- Write just the JSON, no other text should be present\n- Array contain items with following keys:\n - `modelName`: The name of the model to use\n - `systemMessage`: The system message to provide context to the model\n - `temperature`: The sampling temperature to use\n\n### Key `modelName`\n\nHere are the available models:\n\n\\`\\`\\`json\n{availableModels}\n\\`\\`\\`\n\n### Key `systemMessage`\n\nThe system message is used to communicate instructions or provide context to the model at the beginning of a conversation. It is displayed in a different format compared to user messages, helping the model understand its role in the conversation. The system message typically guides the model's behavior, sets the tone, or specifies desired output from the model. By utilizing the system message effectively, users can steer the model towards generating more accurate and relevant responses.\n\nFor example:\n\n> You are an experienced AI engineer and helpful assistant.\n\n> You are a friendly and knowledgeable chatbot.\n\n### Key `temperature`\n\nThe sampling temperature, between 0 and 1. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. If set to 0, the model will use log probability to automatically increase the temperature until certain thresholds are hit.\n\nYou can pick a value between 0 and 2. For example:\n\n- `0.1`: Low temperature, extremely conservative and deterministic\n- `0.5`: Medium temperature, balanced between conservative and creative\n- `1.0`: High temperature, creative and bit random\n- `1.5`: Very high temperature, extremely creative and often chaotic and unpredictable\n- `2.0`: Maximum temperature, completely random and unpredictable, for some extreme creative use cases\n\n# The assistant\n\nTake this description of the persona:\n\n> {personaDescription}\n```\n\n`-> {modelsRequirements}`\n"}],sourceFile:"./books/prepare-persona.book"},{title:"Prepare Title",pipelineUrl:"https://promptbook.studio/promptbook/prepare-title.book",formfactorName:"GENERIC",parameters:[{name:"book",description:"The book to prepare the title for",isInput:true,isOutput:false},{name:"title",description:"Best title for the book",isInput:false,isOutput:true}],tasks:[{taskType:"PROMPT_TASK",name:"make-title",title:"Make title",content:"Make best title for given text which describes the workflow:\n\n## Rules\n\n- Write just title, nothing else\n- Title should be concise and clear - Write maximum ideally 2 words, maximum 5 words\n- Title starts with emoticon\n- Title should not mention the input and output of the workflow but the main purpose of the workflow\n _For example, not \"✍ Convert Knowledge-piece to title\" but \"✍ Title\"_\n\n## The workflow\n\n> {book}",resultingParameterName:"title",expectations:{words:{min:1,max:8},lines:{min:1,max:1}},dependentParameterNames:["book"]}],personas:[],preparations:[],knowledgeSources:[],knowledgePieces:[],sources:[{type:"BOOK",path:null,content:"# Prepare Title\n\n- PIPELINE URL `https://promptbook.studio/promptbook/prepare-title.book`\n- INPUT PARAMETER `{book}` The book to prepare the title for\n- OUTPUT PARAMETER `{title}` Best title for the book\n\n## Make title\n\n- EXPECT MIN 1 Word\n- EXPECT MAX 8 Words\n- EXPECT EXACTLY 1 Line\n\n```markdown\nMake best title for given text which describes the workflow:\n\n## Rules\n\n- Write just title, nothing else\n- Title should be concise and clear - Write maximum ideally 2 words, maximum 5 words\n- Title starts with emoticon\n- Title should not mention the input and output of the workflow but the main purpose of the workflow\n _For example, not \"✍ Convert Knowledge-piece to title\" but \"✍ Title\"_\n\n## The workflow\n\n> {book}\n```\n\n`-> {title}`\n"}],sourceFile:"./books/prepare-title.book"},{title:"📊 Curriculum Audit",pipelineUrl:"https://promptbook.studio/promptbook//examples/lsvp-asistent.book",formfactorName:"GENERIC",parameters:[{name:"result",isInput:false,isOutput:true}],tasks:[{taskType:"PROMPT_TASK",name:"prompt",title:"Prompt",content:"Asistent pro LŠVP\n\nPERSONA Jsi asistent pro RVP Lyceum v rámci Národního pedagogického institutu České Republiky\nMETA IMAGE https://edulk.cz/getFile/id:475818/type:large/02%20zna%C4%8Dka%20npi.jpg\nRULE Pokud jsi nejsi jistý, napiš nevím\nKNOWLEDGE ./241129_Lyceum_final.pdf\nCONTEXT Obecně dokážeš řešit libovolné ŠVP, aktuálně řešíš {Školní vzdělávací program LYCEUM}\nRULE Z {Porovnání RVP a ŠVP - postup} je nejdůležitější fáze 3\nKNOWLEDGE {Školní vzdělávací program LYCEUM} ./ŠVP Lyceum - Finance v digitální době.pdf\nKNOWLEDGE @Slovník\n\n**Interní slovník - RVP/ŠVP**\n\n**RVP**\n\nRámcový vzdělávací program pro obor vzdělání Lyceum je dokument na národní úrovni, který formuluje požadavky na školní vzdělávací programy ve formě především očekávaných výsledků učení, kterých mají žáci absolvováním tohoto programu na dané škole dosáhnout.\n\n**ŠVP**\n\nŠkolní vzdělávací program pro obor vzdělání Lyceum je dokument každé jednotlivé školy, který popisuje v jakých vyučovacích předmětech/ vzdělávacích modulech a v jakých ročnících budou požadované očekávané výsledky učení naplněny. Zároveň formuluje další očekávané výsledky učení, které naplňují disponibilní část vyučovacího času určeného RVP pro tento obor vzdělání.\n\n**Očekávaný výsledek učení (OVU)**\n\nVyjadřuje jednotlivý požadavek na to, co mají žáci umět na konci vzdělávacího programu, tzn. jejich požadované kompetence. Je vyjádřen formulací, která je uvozena činnostním slovesem a dále obsahuje předmět této činnosti. Formulace je konkretizována resp. doplněna zpravidla formou odrážek vymezením dílčích znalostí, dovedností, postojů, jejichž splnění je předpokladem dosažení OVU jako celku.\n\n_Příklad:_\n\n<div class=\"joplin-table-wrapper\"><table><tbody><tr><th><p><strong>Žák/žákyně řídí realizaci jednoduchého projektu</strong></p></th></tr><tr><td><ul><li>naplánuje aktivity projektu</li></ul></td></tr><tr><td><ul><li>navrhne rozpočet projektu vzhledem k navrženým aktivitám</li></ul></td></tr><tr><td><ul><li>stanoví základní ukazatele a sleduje jejich naplňování</li></ul></td></tr><tr><td><ul><li>vede projektový tým</li></ul></td></tr><tr><td><ul><li>uvede, jak by řešil krizové situace v projektu</li></ul></td></tr><tr><td><ul><li>vyhodnotí úspěšnost projektu</li></ul></td></tr></tbody></table></div>\n\n**Vzdělávací oblasti**\n\nOčekávané výsledky učení jsou v **_RVP členěny do 4 vzdělávacích oblastí_**, které tvoří společný všeobecně vzdělávací základ:\n\n- Osobnostní rozvoj, vzdělávání ke zdraví, bezpečí a produktivnímu pracovnímu životu (kariéře)\n- Komunikační a jazykové vzdělávání\n- Aplikované vzdělávání STEM (Science, Technology, Engeneering, Math), tj. přírodní vědy, informatika, technika, matematika\n- Prakticky orientované vzdělávání společenskovědní a humanitní\n\nKaždá vzdělávací oblast se dále člení na okruhy, v jejichž rámci jsou OVU samostatně číslované.\n\n<div class=\"joplin-table-wrapper\"><table><tbody><tr><th rowspan=\"21\"><ul><li>Prakticky orientované vzdělávání společenskovědní a humanitní</li></ul></th><th rowspan=\"21\"><p><strong>Člověk, ekonomie a podnikání</strong></p></th><th rowspan=\"7\"><p><strong>1</strong></p></th><th><p><strong>zpracuje podklady související s podnikáním</strong></p></th></tr><tr><td><p>připraví podnikatelský záměr</p></td></tr><tr><td><p>sestaví zakladatelský rozpočet</p></td></tr><tr><td><p>zkalkuluje cenu zboží nebo služby</p></td></tr><tr><td><p>vysvětlí na příkladu základní povinnosti podnikatele vůči státu a zaměstnancům</p></td></tr><tr><td><p>vede daňovou evidenci</p></td></tr><tr><td><p>vysvětlí na příkladech etiku v podnikání</p></td></tr><tr><td rowspan=\"7\"><p><strong>2</strong></p></td><td><p><strong>řídí realizaci jednoduchého projektu</strong></p></td></tr><tr><td><p>naplánuje aktivity projektu</p></td></tr><tr><td><p>navrhne rozpočet projektu vzhledem k navrženým aktivitám</p></td></tr><tr><td><p>stanoví základní ukazatele a sleduje jejich naplňování</p></td></tr><tr><td><p>vede projektový tým</p></td></tr><tr><td><p>uvede, jak by řešil krizové situace v projektu</p></td></tr><tr><td><p>vyhodnotí úspěšnost projektu</p></td></tr><tr><td rowspan=\"7\"><p><strong>3</strong></p></td><td><p><strong>aplikuje ekonomické teorie v osobním a profesním životě</strong></p></td></tr><tr><td><p>vysvětlí základní ekonomické otázky</p></td></tr><tr><td><p>vysvětí stanovení rovnovážné ceny na dokonalém i nedokonalém trhu</p></td></tr><tr><td><p>charakterizuje výrobní faktory a vysvětlí hranici produkčních možností a náklady obětované příležitosti</p></td></tr><tr><td><p>uvede nejdůležitější makroekonomické pojmy a vliv jejich výše na kvalitu života a podnikání v daném státě</p></td></tr><tr><td><p>vysvětlí podstatu inflace a její důsledky na finanční situaci obyvatel a na příkladu ukáže jak se bránit jejím nepříznivým důsledkům</p></td></tr><tr><td><p>uvede hlavní výhody a nevýhody mezinárodního obchodu a vliv ochranářských opatření na ekonomickou situaci dané země</p></td></tr><tr><td></td><td></td><td><p><strong>4</strong></p></td><td><p>Atd.</p></td></tr></tbody></table></div>\n\n**Vyučovací předmět / vzdělávací modul**\n\nOčekávané výsledky učení jsou v **ŠVP** členěny do vyučovacích předmětů nebo vzdělávacích modulů, které jsou dále zařazeny do jednoho nebo více ročníků 4letého studia. Vyučovací předmět / vzdělávací modul tvoří vyučovací jednotku, kde jsou očekávané výsledky učení dále rozpracovány pro potřeby výuky podle následující šablony\n\n| **A. VSTUPNÍ ČÁST** |\n| --- |\n| **1\\. Název** |\n| **2\\. Kód** (kódy by měly být navázány na obory vzdělání a výsledky učení) |\n| **2a) Kategorie vzdělání** - v případě, že nebude součástí kódu |\n| **3\\. Typ vyučovací jednotky** (modul, předmět, stáž apod.) |\n| **4\\. Délka** (počet hodin - dělitelný čtyřmi (optimální modul 16, 32 hodin = týden výuky) |\n| **5\\. Platnost** (datum, od kterého platí) |\n| **6\\. Vstupní předpoklady** (vymezení požadované úrovně vstupních vědomostí a dovedností, které jsou předpokladem úspěšného studia) |\n| |\n| **B. JÁDRO VYUČOVACÍ JEDNOTKY** |\n| **1\\. Charakteristika** (stručná anotace popisující obecné cíle a pojetí) |\n| **2\\. Očekávané výsledky učení a jejich indikátory (převzaté z RVP nebo dále konkretizované)** |\n| **3\\. Podpora rozvoje klíčových kompetencí a základních gramotností** (které klíčové kompetence jsou v rozvíjeny) |\n| **4\\. Obsah vzdělávání** (rozpis učiva) |\n| **5\\. Vzdělávací strategie** (strategie výuky, resp. učební činnosti žáků, které jsou doporučené pro dosažení výsledků) |\n| |\n| **C. VÝSTUPNÍ ČÁST** |\n| **1\\. Způsob ověřování dosažených výsledků** (ve vazbě na jednotlivé výsledky učení) |\n| **2\\. Kritéria hodnocení** (co znamená splnění výsledků učení, kdy je splněna celá vyučovací jednotka, kritéria pro známky, příp. procentuální, slovní hodnocení) |\n| **3\\. Doporučená studijní literatura, odkazy na ilustrační zdroje** |\n| **4\\. Poznámky** |\n\n**Soulad OVU RVP a ŠVP**\n\nTento soulad je předmětem zjišťování. Soulad nastává, jestliže jsou očekávané výsledky učení z jednotlivých vzdělávacích oblastí RVP **obsaženy** ve vyučovacích předmětech/ vzdělávacích modulech ŠVP jednotlivých škol, tzn. že v ŠVP se objevuje jejich formulace buď v doslovném nebo podobném znění v jednom nebo více vyučovacích předmětech/ vzdělávacích modulech.\n\n_Příklad souladu:_\n\nRVP ŠVP - komunikace a marketing (SŠ obchodní Č.\n\n| **2** | **řídí realizaci jednoduchého projektu** |\n| --- | --- |\n| naplánuje aktivity projektu |\n| navrhne rozpočet projektu vzhledem k navrženým aktivitám |\n| stanoví základní ukazatele a sleduje jejich naplňování |\n| vede projektový tým |\n| uvede, jak by řešil krizové situace v projektu |\n| vyhodnotí úspěšnost projektu |\n\nKNOWLEDGE {Porovnání RVP a ŠVP - postup}\n\n\n# AUDITNÍ PROTOKOL ŠVP-RVP\n\n# (POPIS KONTROLNÍHO ALGORITMU)\n\nMetodika je určena pro **Kvantifikaci Shody** školního vzdělávacího programu (ŠVP) s Rámcovým vzdělávacím programem (RVP).\n\n## FÁZE 1: VALIDACE DOKUMENTACE\n\n**Cíl:** Ověřit platnost, aktuálnost a strukturu zdrojových dokumentů.\n\n- **RVP Verifikace:** Otevřít aktuální verzi RVP (např. RVP ZV/G/SOŠ).\n- **Typová shoda:** Ověřit, že RVP se vztahuje k danému typu školy.\n- **ŠVP Dimenze:** Identifikovat a izolovat relevantní části ŠVP: Profil absolventa, Klíčové kompetence (KK), Vzdělávací oblasti (VO), případně Učební plán (UP).\n- **Verzování:** Potvrdit, že obě verze (RVP a ŠVP) jsou nejnovější a platné (včetně dodatků RVP).\n\n## FÁZE 2: DATABÁZOVÉ MAPOVÁNÍ VÝSTUPŮ (MASTER MATICE)\n\n**Cíl:** Vytvořit systémovou databázi pro křížové porovnání všech povinných komponent RVP se ŠVP.\n\n- **Dekompozice RVP:** Rozložit RVP na základní povinné komponenty: Klíčové kompetence, Vzdělávací oblasti a obory, Očekávané výstupy (OVU), Průřezová témata (PT).\n- **Přiřazovací mapa:** Vytvořit hlavní kontrolní matici (Master Matice) pro záznam vazeb.\n\n| Oblast RVP | Výstup RVP (OVU) | Odpovídající Část ŠVP (Předmět/Ročník) | Konkrétní Tématický Celek v ŠVP | Stav Shody (Protokol) |\n| --- | --- | --- | --- | --- |\n| ... | ... | ... | ... | ... |\n| --- | --- | --- | --- | --- |\n\n## FÁZE 3: ALGORITMICKÁ KONTROLA POKRYTÍ A HLOUBKY\n\n**Cíl:** Posoudit, zda každý povinný výstup RVP je adekvátně reflektován v obsahu ŠVP, a přidělit bodovou hodnotu pro kvantifikaci.\n\n- **Audit OVU:** Projít každý jednotlivý Očekávaný výstup (OVU) z RVP.\n- **Kódování stavu a bodování:** U každého OVU v matici označit stav pokrytí dle následujícího schématu:\n\n| Kód (Protokol) | Popis (Kvalitativní zjištění) | Bodová hodnota (Kvantifikace) |\n| --- | --- | --- |\n| ✅ | Plná shoda (Výstup pokryt v plném rozsahu, odpovídající úrovni RVP) | 1,0 |\n| --- | --- | --- |\n| ⚠️ | Částečná shoda (Formální pokrytí, omezený rozsah, chybná návaznost) | 0,5 |\n| --- | --- | --- |\n| ❌ | Absence (Výstup zcela chybí v obsahu ŠVP) | 0,0 |\n| --- | --- | --- |\n\n- **Defektologie ŠVP:** Identifikovat a zaznamenat deficity ŠVP: Chybějící výstupy (❌), Sémantické překryvy, Přetížení obsahu.\n- **Kvalitativní posun:** Ověřit, zda je formulace výstupů v ŠVP **aktivní, měřitelná a v souladu** s úrovní RVP.\n\n## FÁZE 4: STRUKTURÁLNÍ VERIFIKACE NÁVAZNOSTI (VERTIKÁLA/HORIZONTÁLA)\n\n**Cíl:** Zkontrolovat logickou posloupnost a provázanost učiva v rámci ŠVP.\n\n- **Vertikální Kontrola:** Ověřit posloupnost OVU a učiva uvnitř jednoho předmětu/oblasti (postup od jednodušších ke složitějším konceptům napříč ročníky).\n- **Horizontální Kontrola:** Zkontrolovat logické provázání napříč vzdělávacími oblastmi a předměty (např. fyzika ↔ matematika).\n- **PT Integrace:** Audit reálné integrace Průřezových témat (PT) do konkrétních částí obsahu, metod a projektů.\n\n## FÁZE 5: ANALÝZA ŠKOLNÍ PROFILACE A ROZŠÍŘENÍ RVP\n\n**Cíl:** Validovat, že profilace školy je **v souladu** s RVP a nejedná se o **rozpor**.\n\n- **Nekonfliktnost:** Porovnat definovaný Profil absolventa školy s Klíčovými kompetencemi RVP. Profil ŠVP musí RVP rozvíjet, nikoli mu odporovat.\n- **Modularita:** Zkontrolovat, zda volitelné předměty a rozšiřující moduly logicky navazují na vzdělávací oblasti RVP.\n- **Implementace specializace:** Popisně uvést, jak je školní profilace (např. STEM zaměření, projektová výuka) integrována do OVU a kompetencí definovaných RVP.\n\n## FÁZE 6: GENERÁTOR ZÁVĚREČNÉ ZPRÁVY A KVANTIFIKACE\n\n**Cíl:** Syntetizovat výsledky, kvantifikovat soulad a generovat závazné návrhy na korekce.\n\n### 6.1 Kvantifikace Souladu\n\nVypočítat Index shody (IS) na základě bodového hodnocení (Fáze 3):\n\n### 6.2 Interpretace Indexu Shody (IS)\n\nKlasifikace souladu pro standardizované vyhodnocení:\n\n| Interval IS | Klasifikace souladu | Popis |\n| --- | --- | --- |\n| 95-100 % | Výborný soulad | ŠVP plně odpovídá RVP, pouze stylistické nebo formální rozdíly. |\n| --- | --- | --- |\n| 85-94 % | Dobrá shoda | ŠVP pokrývá všechny klíčové výstupy, menší korekce nutné. |\n| --- | --- | --- |\n| 70-84 % | Částečná shoda | Významné nedostatky v některých oblastech, nutná revize obsahu. |\n| --- | --- | --- |\n| < 70 % | Kritická neshoda | ŠVP neplní rámcové požadavky, ohrožuje legislativní soulad. |\n| --- | --- | --- |\n\n### 6.3 Doplňkové Indexy\n\nVypočítat následující doplňkové indexy pro detailní kvalitativní analýzu:\n\n- **Index kompetenčního souladu (IKS):** Poměr pokrytí klíčových kompetencí RVP v ŠVP.\n- **Index průřezové integrace (IPI):** Míra reálné integrace průřezových témat do výuky.\n- **Index hloubky pokrytí (IHP):** Procento výstupů, které jsou v ŠVP rozvedeny na konkrétní výukové cíle (měřitelné, aktivní formulace).\n- **Index profilové rozšiřitelnosti (IPR):** Kolik rozšiřujících nebo profilových výstupů přesahuje rámec RVP, aniž by narušily jeho strukturu.\n\n### 6.4 Vizuální výstupy\n\nZajistit generování následujících vizualizací pro Závěrečnou zprávu:\n\n- Graf pokrytí po vzdělávacích oblastech (Sloupcový graf IS pro VO).\n- Pavoukový diagram Klíčových kompetencí (RVP vs. ŠVP).\n- Mapa defektů (Vizualizace ❌ a ⚠️ výstupů).\n\n### 6.5 Struktura Závěrečné Zprávy\n\nZpráva musí být strukturována dle standardizovaného formátu:\n\n| Oddíl | Obsah |\n| --- | --- |\n| A. Identifikace | Název školy, IZO, typ školy, datum revize, zpracovatel, verze ŠVP a RVP. |\n| --- | --- |\n| B. Shrnutí výsledků | Celkový Index Shody (IS), hlavní závěry a doporučení. |\n| --- | --- |\n| C. Kvantitativní analýza | Přehled IS v % dle kategorií OVU / VO / kompetencí. |\n| --- | --- |\n| D. Kvalitativní analýza | Slovní zhodnocení kvality souladu (formulace, obtížnost, integrace PT). |\n| --- | --- |\n| E. Rizikové oblasti | Přehled nalezených defektů (chybějící OVU, přetížení, formální shoda). |\n| --- | --- |\n| F. Návrhy opatření (Korekční plán) | Přesné návrhy změn - **Co, Kde, Kdo** má upravit, včetně termínu. |\n| --- | --- |\n| G. Přílohy | Master Matice (Fáze 2-3), revizní tabulka, výstupní grafy a metriky. |\n| --- | --- |\n\n\n\n\n.",resultingParameterName:"result",dependentParameterNames:[]}],personas:[],preparations:[{id:1,promptbookVersion:"0.102.0-10",usage:{price:{value:0},input:{tokensCount:{value:0},charactersCount:{value:0},wordsCount:{value:0},sentencesCount:{value:0},linesCount:{value:0},paragraphsCount:{value:0},pagesCount:{value:0}},output:{tokensCount:{value:0},charactersCount:{value:0},wordsCount:{value:0},sentencesCount:{value:0},linesCount:{value:0},paragraphsCount:{value:0},pagesCount:{value:0}}}}],knowledgeSources:[],knowledgePieces:[],sources:[{type:"BOOK",path:null,content:"Asistent pro LŠVP\n\nPERSONA Jsi asistent pro RVP Lyceum v rámci Národního pedagogického institutu České Republiky\nMETA IMAGE https://edulk.cz/getFile/id:475818/type:large/02%20zna%C4%8Dka%20npi.jpg\nRULE Pokud jsi nejsi jistý, napiš nevím\nKNOWLEDGE ./241129_Lyceum_final.pdf\nCONTEXT Obecně dokážeš řešit libovolné ŠVP, aktuálně řešíš {Školní vzdělávací program LYCEUM}\nRULE Z {Porovnání RVP a ŠVP - postup} je nejdůležitější fáze 3\nKNOWLEDGE {Školní vzdělávací program LYCEUM} ./ŠVP Lyceum - Finance v digitální době.pdf\nKNOWLEDGE @Slovník\n\n**Interní slovník - RVP/ŠVP**\n\n**RVP**\n\nRámcový vzdělávací program pro obor vzdělání Lyceum je dokument na národní úrovni, který formuluje požadavky na školní vzdělávací programy ve formě především očekávaných výsledků učení, kterých mají žáci absolvováním tohoto programu na dané škole dosáhnout.\n\n**ŠVP**\n\nŠkolní vzdělávací program pro obor vzdělání Lyceum je dokument každé jednotlivé školy, který popisuje v jakých vyučovacích předmětech/ vzdělávacích modulech a v jakých ročnících budou požadované očekávané výsledky učení naplněny. Zároveň formuluje další očekávané výsledky učení, které naplňují disponibilní část vyučovacího času určeného RVP pro tento obor vzdělání.\n\n**Očekávaný výsledek učení (OVU)**\n\nVyjadřuje jednotlivý požadavek na to, co mají žáci umět na konci vzdělávacího programu, tzn. jejich požadované kompetence. Je vyjádřen formulací, která je uvozena činnostním slovesem a dále obsahuje předmět této činnosti. Formulace je konkretizována resp. doplněna zpravidla formou odrážek vymezením dílčích znalostí, dovedností, postojů, jejichž splnění je předpokladem dosažení OVU jako celku.\n\n_Příklad:_\n\n<div class=\"joplin-table-wrapper\"><table><tbody><tr><th><p><strong>Žák/žákyně řídí realizaci jednoduchého projektu</strong></p></th></tr><tr><td><ul><li>naplánuje aktivity projektu</li></ul></td></tr><tr><td><ul><li>navrhne rozpočet projektu vzhledem k navrženým aktivitám</li></ul></td></tr><tr><td><ul><li>stanoví základní ukazatele a sleduje jejich naplňování</li></ul></td></tr><tr><td><ul><li>vede projektový tým</li></ul></td></tr><tr><td><ul><li>uvede, jak by řešil krizové situace v projektu</li></ul></td></tr><tr><td><ul><li>vyhodnotí úspěšnost projektu</li></ul></td></tr></tbody></table></div>\n\n**Vzdělávací oblasti**\n\nOčekávané výsledky učení jsou v **_RVP členěny do 4 vzdělávacích oblastí_**, které tvoří společný všeobecně vzdělávací základ:\n\n- Osobnostní rozvoj, vzdělávání ke zdraví, bezpečí a produktivnímu pracovnímu životu (kariéře)\n- Komunikační a jazykové vzdělávání\n- Aplikované vzdělávání STEM (Science, Technology, Engeneering, Math), tj. přírodní vědy, informatika, technika, matematika\n- Prakticky orientované vzdělávání společenskovědní a humanitní\n\nKaždá vzdělávací oblast se dále člení na okruhy, v jejichž rámci jsou OVU samostatně číslované.\n\n<div class=\"joplin-table-wrapper\"><table><tbody><tr><th rowspan=\"21\"><ul><li>Prakticky orientované vzdělávání společenskovědní a humanitní</li></ul></th><th rowspan=\"21\"><p><strong>Člověk, ekonomie a podnikání</strong></p></th><th rowspan=\"7\"><p><strong>1</strong></p></th><th><p><strong>zpracuje podklady související s podnikáním</strong></p></th></tr><tr><td><p>připraví podnikatelský záměr</p></td></tr><tr><td><p>sestaví zakladatelský rozpočet</p></td></tr><tr><td><p>zkalkuluje cenu zboží nebo služby</p></td></tr><tr><td><p>vysvětlí na příkladu základní povinnosti podnikatele vůči státu a zaměstnancům</p></td></tr><tr><td><p>vede daňovou evidenci</p></td></tr><tr><td><p>vysvětlí na příkladech etiku v podnikání</p></td></tr><tr><td rowspan=\"7\"><p><strong>2</strong></p></td><td><p><strong>řídí realizaci jednoduchého projektu</strong></p></td></tr><tr><td><p>naplánuje aktivity projektu</p></td></tr><tr><td><p>navrhne rozpočet projektu vzhledem k navrženým aktivitám</p></td></tr><tr><td><p>stanoví základní ukazatele a sleduje jejich naplňování</p></td></tr><tr><td><p>vede projektový tým</p></td></tr><tr><td><p>uvede, jak by řešil krizové situace v projektu</p></td></tr><tr><td><p>vyhodnotí úspěšnost projektu</p></td></tr><tr><td rowspan=\"7\"><p><strong>3</strong></p></td><td><p><strong>aplikuje ekonomické teorie v osobním a profesním životě</strong></p></td></tr><tr><td><p>vysvětlí základní ekonomické otázky</p></td></tr><tr><td><p>vysvětí stanovení rovnovážné ceny na dokonalém i nedokonalém trhu</p></td></tr><tr><td><p>charakterizuje výrobní faktory a vysvětlí hranici produkčních možností a náklady obětované příležitosti</p></td></tr><tr><td><p>uvede nejdůležitější makroekonomické pojmy a vliv jejich výše na kvalitu života a podnikání v daném státě</p></td></tr><tr><td><p>vysvětlí podstatu inflace a její důsledky na finanční situaci obyvatel a na příkladu ukáže jak se bránit jejím nepříznivým důsledkům</p></td></tr><tr><td><p>uvede hlavní výhody a nevýhody mezinárodního obchodu a vliv ochranářských opatření na ekonomickou situaci dané země</p></td></tr><tr><td></td><td></td><td><p><strong>4</strong></p></td><td><p>Atd.</p></td></tr></tbody></table></div>\n\n**Vyučovací předmět / vzdělávací modul**\n\nOčekávané výsledky učení jsou v **ŠVP** členěny do vyučovacích předmětů nebo vzdělávacích modulů, které jsou dále zařazeny do jednoho nebo více ročníků 4letého studia. Vyučovací předmět / vzdělávací modul tvoří vyučovací jednotku, kde jsou očekávané výsledky učení dále rozpracovány pro potřeby výuky podle následující šablony\n\n| **A. VSTUPNÍ ČÁST** |\n| --- |\n| **1\\. Název** |\n| **2\\. Kód** (kódy by měly být navázány na obory vzdělání a výsledky učení) |\n| **2a) Kategorie vzdělání** - v případě, že nebude součástí kódu |\n| **3\\. Typ vyučovací jednotky** (modul, předmět, stáž apod.) |\n| **4\\. Délka** (počet hodin - dělitelný čtyřmi (optimální modul 16, 32 hodin = týden výuky) |\n| **5\\. Platnost** (datum, od kterého platí) |\n| **6\\. Vstupní předpoklady** (vymezení požadované úrovně vstupních vědomostí a dovedností, které jsou předpokladem úspěšného studia) |\n| |\n| **B. JÁDRO VYUČOVACÍ JEDNOTKY** |\n| **1\\. Charakteristika** (stručná anotace popisující obecné cíle a pojetí) |\n| **2\\. Očekávané výsledky učení a jejich indikátory (převzaté z RVP nebo dále konkretizované)** |\n| **3\\. Podpora rozvoje klíčových kompetencí a základních gramotností** (které klíčové kompetence jsou v rozvíjeny) |\n| **4\\. Obsah vzdělávání** (rozpis učiva) |\n| **5\\. Vzdělávací strategie** (strategie výuky, resp. učební činnosti žáků, které jsou doporučené pro dosažení výsledků) |\n| |\n| **C. VÝSTUPNÍ ČÁST** |\n| **1\\. Způsob ověřování dosažených výsledků** (ve vazbě na jednotlivé výsledky učení) |\n| **2\\. Kritéria hodnocení** (co znamená splnění výsledků učení, kdy je splněna celá vyučovací jednotka, kritéria pro známky, příp. procentuální, slovní hodnocení) |\n| **3\\. Doporučená studijní literatura, odkazy na ilustrační zdroje** |\n| **4\\. Poznámky** |\n\n**Soulad OVU RVP a ŠVP**\n\nTento soulad je předmětem zjišťování. Soulad nastává, jestliže jsou očekávané výsledky učení z jednotlivých vzdělávacích oblastí RVP **obsaženy** ve vyučovacích předmětech/ vzdělávacích modulech ŠVP jednotlivých škol, tzn. že v ŠVP se objevuje jejich formulace buď v doslovném nebo podobném znění v jednom nebo více vyučovacích předmětech/ vzdělávacích modulech.\n\n_Příklad souladu:_\n\nRVP ŠVP - komunikace a marketing (SŠ obchodní Č.\n\n| **2** | **řídí realizaci jednoduchého projektu** |\n| --- | --- |\n| naplánuje aktivity projektu |\n| navrhne rozpočet projektu vzhledem k navrženým aktivitám |\n| stanoví základní ukazatele a sleduje jejich naplňování |\n| vede projektový tým |\n| uvede, jak by řešil krizové situace v projektu |\n| vyhodnotí úspěšnost projektu |\n\nKNOWLEDGE {Porovnání RVP a ŠVP - postup}\n\n\n# AUDITNÍ PROTOKOL ŠVP-RVP\n\n# (POPIS KONTROLNÍHO ALGORITMU)\n\nMetodika je určena pro **Kvantifikaci Shody** školního vzdělávacího programu (ŠVP) s Rámcovým vzdělávacím programem (RVP).\n\n## FÁZE 1: VALIDACE DOKUMENTACE\n\n**Cíl:** Ověřit platnost, aktuálnost a strukturu zdrojových dokumentů.\n\n- **RVP Verifikace:** Otevřít aktuální verzi RVP (např. RVP ZV/G/SOŠ).\n- **Typová shoda:** Ověřit, že RVP se vztahuje k danému typu školy.\n- **ŠVP Dimenze:** Identifikovat a izolovat relevantní části ŠVP: Profil absolventa, Klíčové kompetence (KK), Vzdělávací oblasti (VO), případně Učební plán (UP).\n- **Verzování:** Potvrdit, že obě verze (RVP a ŠVP) jsou nejnovější a platné (včetně dodatků RVP).\n\n## FÁZE 2: DATABÁZOVÉ MAPOVÁNÍ VÝSTUPŮ (MASTER MATICE)\n\n**Cíl:** Vytvořit systémovou databázi pro křížové porovnání všech povinných komponent RVP se ŠVP.\n\n- **Dekompozice RVP:** Rozložit RVP na základní povinné komponenty: Klíčové kompetence, Vzdělávací oblasti a obory, Očekávané výstupy (OVU), Průřezová témata (PT).\n- **Přiřazovací mapa:** Vytvořit hlavní kontrolní matici (Master Matice) pro záznam vazeb.\n\n| Oblast RVP | Výstup RVP (OVU) | Odpovídající Část ŠVP (Předmět/Ročník) | Konkrétní Tématický Celek v ŠVP | Stav Shody (Protokol) |\n| --- | --- | --- | --- | --- |\n| ... | ... | ... | ... | ... |\n| --- | --- | --- | --- | --- |\n\n## FÁZE 3: ALGORITMICKÁ KONTROLA POKRYTÍ A HLOUBKY\n\n**Cíl:** Posoudit, zda každý povinný výstup RVP je adekvátně reflektován v obsahu ŠVP, a přidělit bodovou hodnotu pro kvantifikaci.\n\n- **Audit OVU:** Projít každý jednotlivý Očekávaný výstup (OVU) z RVP.\n- **Kódování stavu a bodování:** U každého OVU v matici označit stav pokrytí dle následujícího schématu:\n\n| Kód (Protokol) | Popis (Kvalitativní zjištění) | Bodová hodnota (Kvantifikace) |\n| --- | --- | --- |\n| ✅ | Plná shoda (Výstup pokryt v plném rozsahu, odpovídající úrovni RVP) | 1,0 |\n| --- | --- | --- |\n| ⚠️ | Částečná shoda (Formální pokrytí, omezený rozsah, chybná návaznost) | 0,5 |\n| --- | --- | --- |\n| ❌ | Absence (Výstup zcela chybí v obsahu ŠVP) | 0,0 |\n| --- | --- | --- |\n\n- **Defektologie ŠVP:** Identifikovat a zaznamenat deficity ŠVP: Chybějící výstupy (❌), Sémantické překryvy, Přetížení obsahu.\n- **Kvalitativní posun:** Ověřit, zda je formulace výstupů v ŠVP **aktivní, měřitelná a v souladu** s úrovní RVP.\n\n## FÁZE 4: STRUKTURÁLNÍ VERIFIKACE NÁVAZNOSTI (VERTIKÁLA/HORIZONTÁLA)\n\n**Cíl:** Zkontrolovat logickou posloupnost a provázanost učiva v rámci ŠVP.\n\n- **Vertikální Kontrola:** Ověřit posloupnost OVU a učiva uvnitř jednoho předmětu/oblasti (postup od jednodušších ke složitějším konceptům napříč ročníky).\n- **Horizontální Kontrola:** Zkontrolovat logické provázání napříč vzdělávacími oblastmi a předměty (např. fyzika ↔ matematika).\n- **PT Integrace:** Audit reálné integrace Průřezových témat (PT) do konkrétních částí obsahu, metod a projektů.\n\n## FÁZE 5: ANALÝZA ŠKOLNÍ PROFILACE A ROZŠÍŘENÍ RVP\n\n**Cíl:** Validovat, že profilace školy je **v souladu** s RVP a nejedná se o **rozpor**.\n\n- **Nekonfliktnost:** Porovnat definovaný Profil absolventa školy s Klíčovými kompetencemi RVP. Profil ŠVP musí RVP rozvíjet, nikoli mu odporovat.\n- **Modularita:** Zkontrolovat, zda volitelné předměty a rozšiřující moduly logicky navazují na vzdělávací oblasti RVP.\n- **Implementace specializace:** Popisně uvést, jak je školní profilace (např. STEM zaměření, projektová výuka) integrována do OVU a kompetencí definovaných RVP.\n\n## FÁZE 6: GENERÁTOR ZÁVĚREČNÉ ZPRÁVY A KVANTIFIKACE\n\n**Cíl:** Syntetizovat výsledky, kvantifikovat soulad a generovat závazné návrhy na korekce.\n\n### 6.1 Kvantifikace Souladu\n\nVypočítat Index shody (IS) na základě bodového hodnocení (Fáze 3):\n\n### 6.2 Interpretace Indexu Shody (IS)\n\nKlasifikace souladu pro standardizované vyhodnocení:\n\n| Interval IS | Klasifikace souladu | Popis |\n| --- | --- | --- |\n| 95-100 % | Výborný soulad | ŠVP plně odpovídá RVP, pouze stylistické nebo formální rozdíly. |\n| --- | --- | --- |\n| 85-94 % | Dobrá shoda | ŠVP pokrývá všechny klíčové výstupy, menší korekce nutné. |\n| --- | --- | --- |\n| 70-84 % | Částečná shoda | Významné nedostatky v některých oblastech, nutná revize obsahu. |\n| --- | --- | --- |\n| < 70 % | Kritická neshoda | ŠVP neplní rámcové požadavky, ohrožuje legislativní soulad. |\n| --- | --- | --- |\n\n### 6.3 Doplňkové Indexy\n\nVypočítat následující doplňkové indexy pro detailní kvalitativní analýzu:\n\n- **Index kompetenčního souladu (IKS):** Poměr pokrytí klíčových kompetencí RVP v ŠVP.\n- **Index průřezové integrace (IPI):** Míra reálné integrace průřezových témat do výuky.\n- **Index hloubky pokrytí (IHP):** Procento výstupů, které jsou v ŠVP rozvedeny na konkrétní výukové cíle (měřitelné, aktivní formulace).\n- **Index profilové rozšiřitelnosti (IPR):** Kolik rozšiřujících nebo profilových výstupů přesahuje rámec RVP, aniž by narušily jeho strukturu.\n\n### 6.4 Vizuální výstupy\n\nZajistit generování následujících vizualizací pro Závěrečnou zprávu:\n\n- Graf pokrytí po vzdělávacích oblastech (Sloupcový graf IS pro VO).\n- Pavoukový diagram Klíčových kompetencí (RVP vs. ŠVP).\n- Mapa defektů (Vizualizace ❌ a ⚠️ výstupů).\n\n### 6.5 Struktura Závěrečné Zprávy\n\nZpráva musí být strukturována dle standardizovaného formátu:\n\n| Oddíl | Obsah |\n| --- | --- |\n| A. Identifikace | Název školy, IZO, typ školy, datum revize, zpracovatel, verze ŠVP a RVP. |\n| --- | --- |\n| B. Shrnutí výsledků | Celkový Index Shody (IS), hlavní závěry a doporučení. |\n| --- | --- |\n| C. Kvantitativní analýza | Přehled IS v % dle kategorií OVU / VO / kompetencí. |\n| --- | --- |\n| D. Kvalitativní analýza | Slovní zhodnocení kvality souladu (formulace, obtížnost, integrace PT). |\n| --- | --- |\n| E. Rizikové oblasti | Přehled nalezených defektů (chybějící OVU, přetížení, formální shoda). |\n| --- | --- |\n| F. Návrhy opatření (Korekční plán) | Přesné návrhy změn - **Co, Kde, Kdo** má upravit, včetně termínu. |\n| --- | --- |\n| G. Přílohy | Master Matice (Fáze 2-3), revizní tabulka, výstupní grafy a metriky. |\n| --- | --- |\n\n\n\n\n.\n"}],sourceFile:"./books/examples/lsvp-asistent.book"}];
|
7568
|
+
var PipelineCollection = [{title:"Prepare Knowledge from Markdown",pipelineUrl:"https://promptbook.studio/promptbook/prepare-knowledge-from-markdown.book",formfactorName:"GENERIC",parameters:[{name:"knowledgeContent",description:"Markdown document content",isInput:true,isOutput:false},{name:"knowledgePieces",description:"The knowledge JSON object",isInput:false,isOutput:true}],tasks:[{taskType:"PROMPT_TASK",name:"knowledge",title:"Knowledge",content:"You are experienced data researcher, extract the important knowledge from the document.\n\n# Rules\n\n- Make pieces of information concise, clear, and easy to understand\n- One piece of information should be approximately 1 paragraph\n- Divide the paragraphs by markdown horizontal lines ---\n- Omit irrelevant information\n- Group redundant information\n- Write just extracted information, nothing else\n\n# The document\n\nTake information from this document:\n\n> {knowledgeContent}",resultingParameterName:"knowledgePieces",dependentParameterNames:["knowledgeContent"]}],personas:[],preparations:[],knowledgeSources:[],knowledgePieces:[],sources:[{type:"BOOK",path:null,content:"# Prepare Knowledge from Markdown\n\n- PIPELINE URL `https://promptbook.studio/promptbook/prepare-knowledge-from-markdown.book`\n- INPUT PARAMETER `{knowledgeContent}` Markdown document content\n- OUTPUT PARAMETER `{knowledgePieces}` The knowledge JSON object\n\n## Knowledge\n\n<!-- TODO: [🍆] -FORMAT JSON -->\n\n```markdown\nYou are experienced data researcher, extract the important knowledge from the document.\n\n# Rules\n\n- Make pieces of information concise, clear, and easy to understand\n- One piece of information should be approximately 1 paragraph\n- Divide the paragraphs by markdown horizontal lines ---\n- Omit irrelevant information\n- Group redundant information\n- Write just extracted information, nothing else\n\n# The document\n\nTake information from this document:\n\n> {knowledgeContent}\n```\n\n`-> {knowledgePieces}`\n"}],sourceFile:"./books/prepare-knowledge-from-markdown.book"},{title:"Prepare Keywords",pipelineUrl:"https://promptbook.studio/promptbook/prepare-knowledge-keywords.book",formfactorName:"GENERIC",parameters:[{name:"knowledgePieceContent",description:"The content",isInput:true,isOutput:false},{name:"keywords",description:"Keywords separated by comma",isInput:false,isOutput:true}],tasks:[{taskType:"PROMPT_TASK",name:"knowledge",title:"Knowledge",content:"You are experienced data researcher, detect the important keywords in the document.\n\n# Rules\n\n- Write just keywords separated by comma\n\n# The document\n\nTake information from this document:\n\n> {knowledgePieceContent}",resultingParameterName:"keywords",dependentParameterNames:["knowledgePieceContent"]}],personas:[],preparations:[],knowledgeSources:[],knowledgePieces:[],sources:[{type:"BOOK",path:null,content:"# Prepare Keywords\n\n- PIPELINE URL `https://promptbook.studio/promptbook/prepare-knowledge-keywords.book`\n- INPUT PARAMETER `{knowledgePieceContent}` The content\n- OUTPUT PARAMETER `{keywords}` Keywords separated by comma\n\n## Knowledge\n\n<!-- TODO: [🍆] -FORMAT JSON -->\n\n```markdown\nYou are experienced data researcher, detect the important keywords in the document.\n\n# Rules\n\n- Write just keywords separated by comma\n\n# The document\n\nTake information from this document:\n\n> {knowledgePieceContent}\n```\n\n`-> {keywords}`\n"}],sourceFile:"./books/prepare-knowledge-keywords.book"},{title:"Prepare Knowledge-piece Title",pipelineUrl:"https://promptbook.studio/promptbook/prepare-knowledge-title.book",formfactorName:"GENERIC",parameters:[{name:"knowledgePieceContent",description:"The content",isInput:true,isOutput:false},{name:"title",description:"The title of the document",isInput:false,isOutput:true}],tasks:[{taskType:"PROMPT_TASK",name:"knowledge",title:"Knowledge",content:"You are experienced content creator, write best title for the document.\n\n# Rules\n\n- Write just title, nothing else\n- Write maximum 5 words for the title\n\n# The document\n\n> {knowledgePieceContent}",resultingParameterName:"title",expectations:{words:{min:1,max:8}},dependentParameterNames:["knowledgePieceContent"]}],personas:[],preparations:[],knowledgeSources:[],knowledgePieces:[],sources:[{type:"BOOK",path:null,content:"# Prepare Knowledge-piece Title\n\n- PIPELINE URL `https://promptbook.studio/promptbook/prepare-knowledge-title.book`\n- INPUT PARAMETER `{knowledgePieceContent}` The content\n- OUTPUT PARAMETER `{title}` The title of the document\n\n## Knowledge\n\n- EXPECT MIN 1 WORD\n- EXPECT MAX 8 WORDS\n\n```markdown\nYou are experienced content creator, write best title for the document.\n\n# Rules\n\n- Write just title, nothing else\n- Write maximum 5 words for the title\n\n# The document\n\n> {knowledgePieceContent}\n```\n\n`-> {title}`\n"}],sourceFile:"./books/prepare-knowledge-title.book"},{title:"Prepare Persona",pipelineUrl:"https://promptbook.studio/promptbook/prepare-persona.book",formfactorName:"GENERIC",parameters:[{name:"availableModels",description:"List of available model names together with their descriptions as JSON",isInput:true,isOutput:false},{name:"personaDescription",description:"Description of the persona",isInput:true,isOutput:false},{name:"modelsRequirements",description:"Specific requirements for the model",isInput:false,isOutput:true}],tasks:[{taskType:"PROMPT_TASK",name:"make-model-requirements",title:"Make modelRequirements",content:"You are an experienced AI engineer, you need to find the best models for virtual assistants:\n\n## Example\n\n```json\n[\n {\n \"modelName\": \"gpt-4o\",\n \"systemMessage\": \"You are experienced AI engineer and helpful assistant.\",\n \"temperature\": 0.7\n },\n {\n \"modelName\": \"claude-3-5-sonnet\",\n \"systemMessage\": \"You are a friendly and knowledgeable chatbot.\",\n \"temperature\": 0.5\n }\n]\n```\n\n## Instructions\n\n- Your output format is JSON array\n- Sort best-fitting models first\n- Omit any models that are not suitable\n- Write just the JSON, no other text should be present\n- Array contain items with following keys:\n - `modelName`: The name of the model to use\n - `systemMessage`: The system message to provide context to the model\n - `temperature`: The sampling temperature to use\n\n### Key `modelName`\n\nHere are the available models:\n\n```json\n{availableModels}\n```\n\n### Key `systemMessage`\n\nThe system message is used to communicate instructions or provide context to the model at the beginning of a conversation. It is displayed in a different format compared to user messages, helping the model understand its role in the conversation. The system message typically guides the model's behavior, sets the tone, or specifies desired output from the model. By utilizing the system message effectively, users can steer the model towards generating more accurate and relevant responses.\n\nFor example:\n\n> You are an experienced AI engineer and helpful assistant.\n\n> You are a friendly and knowledgeable chatbot.\n\n### Key `temperature`\n\nThe sampling temperature, between 0 and 1. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. If set to 0, the model will use log probability to automatically increase the temperature until certain thresholds are hit.\n\nYou can pick a value between 0 and 2. For example:\n\n- `0.1`: Low temperature, extremely conservative and deterministic\n- `0.5`: Medium temperature, balanced between conservative and creative\n- `1.0`: High temperature, creative and bit random\n- `1.5`: Very high temperature, extremely creative and often chaotic and unpredictable\n- `2.0`: Maximum temperature, completely random and unpredictable, for some extreme creative use cases\n\n# The assistant\n\nTake this description of the persona:\n\n> {personaDescription}",resultingParameterName:"modelsRequirements",format:"JSON",dependentParameterNames:["availableModels","personaDescription"]}],personas:[],preparations:[],knowledgeSources:[],knowledgePieces:[],sources:[{type:"BOOK",path:null,content:"# Prepare Persona\n\n- PIPELINE URL `https://promptbook.studio/promptbook/prepare-persona.book`\n- INPUT PARAMETER `{availableModels}` List of available model names together with their descriptions as JSON\n- INPUT PARAMETER `{personaDescription}` Description of the persona\n- OUTPUT PARAMETER `{modelsRequirements}` Specific requirements for the model\n\n## Make modelRequirements\n\n- FORMAT JSON\n\n```markdown\nYou are an experienced AI engineer, you need to find the best models for virtual assistants:\n\n## Example\n\n\\`\\`\\`json\n[\n {\n \"modelName\": \"gpt-4o\",\n \"systemMessage\": \"You are experienced AI engineer and helpful assistant.\",\n \"temperature\": 0.7\n },\n {\n \"modelName\": \"claude-3-5-sonnet\",\n \"systemMessage\": \"You are a friendly and knowledgeable chatbot.\",\n \"temperature\": 0.5\n }\n]\n\\`\\`\\`\n\n## Instructions\n\n- Your output format is JSON array\n- Sort best-fitting models first\n- Omit any models that are not suitable\n- Write just the JSON, no other text should be present\n- Array contain items with following keys:\n - `modelName`: The name of the model to use\n - `systemMessage`: The system message to provide context to the model\n - `temperature`: The sampling temperature to use\n\n### Key `modelName`\n\nHere are the available models:\n\n\\`\\`\\`json\n{availableModels}\n\\`\\`\\`\n\n### Key `systemMessage`\n\nThe system message is used to communicate instructions or provide context to the model at the beginning of a conversation. It is displayed in a different format compared to user messages, helping the model understand its role in the conversation. The system message typically guides the model's behavior, sets the tone, or specifies desired output from the model. By utilizing the system message effectively, users can steer the model towards generating more accurate and relevant responses.\n\nFor example:\n\n> You are an experienced AI engineer and helpful assistant.\n\n> You are a friendly and knowledgeable chatbot.\n\n### Key `temperature`\n\nThe sampling temperature, between 0 and 1. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. If set to 0, the model will use log probability to automatically increase the temperature until certain thresholds are hit.\n\nYou can pick a value between 0 and 2. For example:\n\n- `0.1`: Low temperature, extremely conservative and deterministic\n- `0.5`: Medium temperature, balanced between conservative and creative\n- `1.0`: High temperature, creative and bit random\n- `1.5`: Very high temperature, extremely creative and often chaotic and unpredictable\n- `2.0`: Maximum temperature, completely random and unpredictable, for some extreme creative use cases\n\n# The assistant\n\nTake this description of the persona:\n\n> {personaDescription}\n```\n\n`-> {modelsRequirements}`\n"}],sourceFile:"./books/prepare-persona.book"},{title:"Prepare Title",pipelineUrl:"https://promptbook.studio/promptbook/prepare-title.book",formfactorName:"GENERIC",parameters:[{name:"book",description:"The book to prepare the title for",isInput:true,isOutput:false},{name:"title",description:"Best title for the book",isInput:false,isOutput:true}],tasks:[{taskType:"PROMPT_TASK",name:"make-title",title:"Make title",content:"Make best title for given text which describes the workflow:\n\n## Rules\n\n- Write just title, nothing else\n- Title should be concise and clear - Write maximum ideally 2 words, maximum 5 words\n- Title starts with emoticon\n- Title should not mention the input and output of the workflow but the main purpose of the workflow\n _For example, not \"✍ Convert Knowledge-piece to title\" but \"✍ Title\"_\n\n## The workflow\n\n> {book}",resultingParameterName:"title",expectations:{words:{min:1,max:8},lines:{min:1,max:1}},dependentParameterNames:["book"]}],personas:[],preparations:[],knowledgeSources:[],knowledgePieces:[],sources:[{type:"BOOK",path:null,content:"# Prepare Title\n\n- PIPELINE URL `https://promptbook.studio/promptbook/prepare-title.book`\n- INPUT PARAMETER `{book}` The book to prepare the title for\n- OUTPUT PARAMETER `{title}` Best title for the book\n\n## Make title\n\n- EXPECT MIN 1 Word\n- EXPECT MAX 8 Words\n- EXPECT EXACTLY 1 Line\n\n```markdown\nMake best title for given text which describes the workflow:\n\n## Rules\n\n- Write just title, nothing else\n- Title should be concise and clear - Write maximum ideally 2 words, maximum 5 words\n- Title starts with emoticon\n- Title should not mention the input and output of the workflow but the main purpose of the workflow\n _For example, not \"✍ Convert Knowledge-piece to title\" but \"✍ Title\"_\n\n## The workflow\n\n> {book}\n```\n\n`-> {title}`\n"}],sourceFile:"./books/prepare-title.book"},{title:"📊 Curriculum Audit",pipelineUrl:"https://promptbook.studio/promptbook//examples/lsvp-asistent.book",formfactorName:"GENERIC",parameters:[{name:"result",isInput:false,isOutput:true}],tasks:[{taskType:"PROMPT_TASK",name:"prompt",title:"Prompt",content:"Asistent pro LŠVP\n\nPERSONA Jsi asistent pro RVP Lyceum v rámci Národního pedagogického institutu České Republiky\nMETA IMAGE https://edulk.cz/getFile/id:475818/type:large/02%20zna%C4%8Dka%20npi.jpg\nRULE Pokud jsi nejsi jistý, napiš nevím\nKNOWLEDGE ./241129_Lyceum_final.pdf\nCONTEXT Obecně dokážeš řešit libovolné ŠVP, aktuálně řešíš {Školní vzdělávací program LYCEUM}\nRULE Z {Porovnání RVP a ŠVP - postup} je nejdůležitější fáze 3\nKNOWLEDGE {Školní vzdělávací program LYCEUM} ./ŠVP Lyceum - Finance v digitální době.pdf\nKNOWLEDGE @Slovník\n\n**Interní slovník - RVP/ŠVP**\n\n**RVP**\n\nRámcový vzdělávací program pro obor vzdělání Lyceum je dokument na národní úrovni, který formuluje požadavky na školní vzdělávací programy ve formě především očekávaných výsledků učení, kterých mají žáci absolvováním tohoto programu na dané škole dosáhnout.\n\n**ŠVP**\n\nŠkolní vzdělávací program pro obor vzdělání Lyceum je dokument každé jednotlivé školy, který popisuje v jakých vyučovacích předmětech/ vzdělávacích modulech a v jakých ročnících budou požadované očekávané výsledky učení naplněny. Zároveň formuluje další očekávané výsledky učení, které naplňují disponibilní část vyučovacího času určeného RVP pro tento obor vzdělání.\n\n**Očekávaný výsledek učení (OVU)**\n\nVyjadřuje jednotlivý požadavek na to, co mají žáci umět na konci vzdělávacího programu, tzn. jejich požadované kompetence. Je vyjádřen formulací, která je uvozena činnostním slovesem a dále obsahuje předmět této činnosti. Formulace je konkretizována resp. doplněna zpravidla formou odrážek vymezením dílčích znalostí, dovedností, postojů, jejichž splnění je předpokladem dosažení OVU jako celku.\n\n_Příklad:_\n\n<div class=\"joplin-table-wrapper\"><table><tbody><tr><th><p><strong>Žák/žákyně řídí realizaci jednoduchého projektu</strong></p></th></tr><tr><td><ul><li>naplánuje aktivity projektu</li></ul></td></tr><tr><td><ul><li>navrhne rozpočet projektu vzhledem k navrženým aktivitám</li></ul></td></tr><tr><td><ul><li>stanoví základní ukazatele a sleduje jejich naplňování</li></ul></td></tr><tr><td><ul><li>vede projektový tým</li></ul></td></tr><tr><td><ul><li>uvede, jak by řešil krizové situace v projektu</li></ul></td></tr><tr><td><ul><li>vyhodnotí úspěšnost projektu</li></ul></td></tr></tbody></table></div>\n\n**Vzdělávací oblasti**\n\nOčekávané výsledky učení jsou v **_RVP členěny do 4 vzdělávacích oblastí_**, které tvoří společný všeobecně vzdělávací základ:\n\n- Osobnostní rozvoj, vzdělávání ke zdraví, bezpečí a produktivnímu pracovnímu životu (kariéře)\n- Komunikační a jazykové vzdělávání\n- Aplikované vzdělávání STEM (Science, Technology, Engeneering, Math), tj. přírodní vědy, informatika, technika, matematika\n- Prakticky orientované vzdělávání společenskovědní a humanitní\n\nKaždá vzdělávací oblast se dále člení na okruhy, v jejichž rámci jsou OVU samostatně číslované.\n\n<div class=\"joplin-table-wrapper\"><table><tbody><tr><th rowspan=\"21\"><ul><li>Prakticky orientované vzdělávání společenskovědní a humanitní</li></ul></th><th rowspan=\"21\"><p><strong>Člověk, ekonomie a podnikání</strong></p></th><th rowspan=\"7\"><p><strong>1</strong></p></th><th><p><strong>zpracuje podklady související s podnikáním</strong></p></th></tr><tr><td><p>připraví podnikatelský záměr</p></td></tr><tr><td><p>sestaví zakladatelský rozpočet</p></td></tr><tr><td><p>zkalkuluje cenu zboží nebo služby</p></td></tr><tr><td><p>vysvětlí na příkladu základní povinnosti podnikatele vůči státu a zaměstnancům</p></td></tr><tr><td><p>vede daňovou evidenci</p></td></tr><tr><td><p>vysvětlí na příkladech etiku v podnikání</p></td></tr><tr><td rowspan=\"7\"><p><strong>2</strong></p></td><td><p><strong>řídí realizaci jednoduchého projektu</strong></p></td></tr><tr><td><p>naplánuje aktivity projektu</p></td></tr><tr><td><p>navrhne rozpočet projektu vzhledem k navrženým aktivitám</p></td></tr><tr><td><p>stanoví základní ukazatele a sleduje jejich naplňování</p></td></tr><tr><td><p>vede projektový tým</p></td></tr><tr><td><p>uvede, jak by řešil krizové situace v projektu</p></td></tr><tr><td><p>vyhodnotí úspěšnost projektu</p></td></tr><tr><td rowspan=\"7\"><p><strong>3</strong></p></td><td><p><strong>aplikuje ekonomické teorie v osobním a profesním životě</strong></p></td></tr><tr><td><p>vysvětlí základní ekonomické otázky</p></td></tr><tr><td><p>vysvětí stanovení rovnovážné ceny na dokonalém i nedokonalém trhu</p></td></tr><tr><td><p>charakterizuje výrobní faktory a vysvětlí hranici produkčních možností a náklady obětované příležitosti</p></td></tr><tr><td><p>uvede nejdůležitější makroekonomické pojmy a vliv jejich výše na kvalitu života a podnikání v daném státě</p></td></tr><tr><td><p>vysvětlí podstatu inflace a její důsledky na finanční situaci obyvatel a na příkladu ukáže jak se bránit jejím nepříznivým důsledkům</p></td></tr><tr><td><p>uvede hlavní výhody a nevýhody mezinárodního obchodu a vliv ochranářských opatření na ekonomickou situaci dané země</p></td></tr><tr><td></td><td></td><td><p><strong>4</strong></p></td><td><p>Atd.</p></td></tr></tbody></table></div>\n\n**Vyučovací předmět / vzdělávací modul**\n\nOčekávané výsledky učení jsou v **ŠVP** členěny do vyučovacích předmětů nebo vzdělávacích modulů, které jsou dále zařazeny do jednoho nebo více ročníků 4letého studia. Vyučovací předmět / vzdělávací modul tvoří vyučovací jednotku, kde jsou očekávané výsledky učení dále rozpracovány pro potřeby výuky podle následující šablony\n\n| **A. VSTUPNÍ ČÁST** |\n| --- |\n| **1\\. Název** |\n| **2\\. Kód** (kódy by měly být navázány na obory vzdělání a výsledky učení) |\n| **2a) Kategorie vzdělání** - v případě, že nebude součástí kódu |\n| **3\\. Typ vyučovací jednotky** (modul, předmět, stáž apod.) |\n| **4\\. Délka** (počet hodin - dělitelný čtyřmi (optimální modul 16, 32 hodin = týden výuky) |\n| **5\\. Platnost** (datum, od kterého platí) |\n| **6\\. Vstupní předpoklady** (vymezení požadované úrovně vstupních vědomostí a dovedností, které jsou předpokladem úspěšného studia) |\n| |\n| **B. JÁDRO VYUČOVACÍ JEDNOTKY** |\n| **1\\. Charakteristika** (stručná anotace popisující obecné cíle a pojetí) |\n| **2\\. Očekávané výsledky učení a jejich indikátory (převzaté z RVP nebo dále konkretizované)** |\n| **3\\. Podpora rozvoje klíčových kompetencí a základních gramotností** (které klíčové kompetence jsou v rozvíjeny) |\n| **4\\. Obsah vzdělávání** (rozpis učiva) |\n| **5\\. Vzdělávací strategie** (strategie výuky, resp. učební činnosti žáků, které jsou doporučené pro dosažení výsledků) |\n| |\n| **C. VÝSTUPNÍ ČÁST** |\n| **1\\. Způsob ověřování dosažených výsledků** (ve vazbě na jednotlivé výsledky učení) |\n| **2\\. Kritéria hodnocení** (co znamená splnění výsledků učení, kdy je splněna celá vyučovací jednotka, kritéria pro známky, příp. procentuální, slovní hodnocení) |\n| **3\\. Doporučená studijní literatura, odkazy na ilustrační zdroje** |\n| **4\\. Poznámky** |\n\n**Soulad OVU RVP a ŠVP**\n\nTento soulad je předmětem zjišťování. Soulad nastává, jestliže jsou očekávané výsledky učení z jednotlivých vzdělávacích oblastí RVP **obsaženy** ve vyučovacích předmětech/ vzdělávacích modulech ŠVP jednotlivých škol, tzn. že v ŠVP se objevuje jejich formulace buď v doslovném nebo podobném znění v jednom nebo více vyučovacích předmětech/ vzdělávacích modulech.\n\n_Příklad souladu:_\n\nRVP ŠVP - komunikace a marketing (SŠ obchodní Č.\n\n| **2** | **řídí realizaci jednoduchého projektu** |\n| --- | --- |\n| naplánuje aktivity projektu |\n| navrhne rozpočet projektu vzhledem k navrženým aktivitám |\n| stanoví základní ukazatele a sleduje jejich naplňování |\n| vede projektový tým |\n| uvede, jak by řešil krizové situace v projektu |\n| vyhodnotí úspěšnost projektu |\n\nKNOWLEDGE {Porovnání RVP a ŠVP - postup}\n\n\n# AUDITNÍ PROTOKOL ŠVP-RVP\n\n# (POPIS KONTROLNÍHO ALGORITMU)\n\nMetodika je určena pro **Kvantifikaci Shody** školního vzdělávacího programu (ŠVP) s Rámcovým vzdělávacím programem (RVP).\n\n## FÁZE 1: VALIDACE DOKUMENTACE\n\n**Cíl:** Ověřit platnost, aktuálnost a strukturu zdrojových dokumentů.\n\n- **RVP Verifikace:** Otevřít aktuální verzi RVP (např. RVP ZV/G/SOŠ).\n- **Typová shoda:** Ověřit, že RVP se vztahuje k danému typu školy.\n- **ŠVP Dimenze:** Identifikovat a izolovat relevantní části ŠVP: Profil absolventa, Klíčové kompetence (KK), Vzdělávací oblasti (VO), případně Učební plán (UP).\n- **Verzování:** Potvrdit, že obě verze (RVP a ŠVP) jsou nejnovější a platné (včetně dodatků RVP).\n\n## FÁZE 2: DATABÁZOVÉ MAPOVÁNÍ VÝSTUPŮ (MASTER MATICE)\n\n**Cíl:** Vytvořit systémovou databázi pro křížové porovnání všech povinných komponent RVP se ŠVP.\n\n- **Dekompozice RVP:** Rozložit RVP na základní povinné komponenty: Klíčové kompetence, Vzdělávací oblasti a obory, Očekávané výstupy (OVU), Průřezová témata (PT).\n- **Přiřazovací mapa:** Vytvořit hlavní kontrolní matici (Master Matice) pro záznam vazeb.\n\n| Oblast RVP | Výstup RVP (OVU) | Odpovídající Část ŠVP (Předmět/Ročník) | Konkrétní Tématický Celek v ŠVP | Stav Shody (Protokol) |\n| --- | --- | --- | --- | --- |\n| ... | ... | ... | ... | ... |\n| --- | --- | --- | --- | --- |\n\n## FÁZE 3: ALGORITMICKÁ KONTROLA POKRYTÍ A HLOUBKY\n\n**Cíl:** Posoudit, zda každý povinný výstup RVP je adekvátně reflektován v obsahu ŠVP, a přidělit bodovou hodnotu pro kvantifikaci.\n\n- **Audit OVU:** Projít každý jednotlivý Očekávaný výstup (OVU) z RVP.\n- **Kódování stavu a bodování:** U každého OVU v matici označit stav pokrytí dle následujícího schématu:\n\n| Kód (Protokol) | Popis (Kvalitativní zjištění) | Bodová hodnota (Kvantifikace) |\n| --- | --- | --- |\n| ✅ | Plná shoda (Výstup pokryt v plném rozsahu, odpovídající úrovni RVP) | 1,0 |\n| --- | --- | --- |\n| ⚠️ | Částečná shoda (Formální pokrytí, omezený rozsah, chybná návaznost) | 0,5 |\n| --- | --- | --- |\n| ❌ | Absence (Výstup zcela chybí v obsahu ŠVP) | 0,0 |\n| --- | --- | --- |\n\n- **Defektologie ŠVP:** Identifikovat a zaznamenat deficity ŠVP: Chybějící výstupy (❌), Sémantické překryvy, Přetížení obsahu.\n- **Kvalitativní posun:** Ověřit, zda je formulace výstupů v ŠVP **aktivní, měřitelná a v souladu** s úrovní RVP.\n\n## FÁZE 4: STRUKTURÁLNÍ VERIFIKACE NÁVAZNOSTI (VERTIKÁLA/HORIZONTÁLA)\n\n**Cíl:** Zkontrolovat logickou posloupnost a provázanost učiva v rámci ŠVP.\n\n- **Vertikální Kontrola:** Ověřit posloupnost OVU a učiva uvnitř jednoho předmětu/oblasti (postup od jednodušších ke složitějším konceptům napříč ročníky).\n- **Horizontální Kontrola:** Zkontrolovat logické provázání napříč vzdělávacími oblastmi a předměty (např. fyzika ↔ matematika).\n- **PT Integrace:** Audit reálné integrace Průřezových témat (PT) do konkrétních částí obsahu, metod a projektů.\n\n## FÁZE 5: ANALÝZA ŠKOLNÍ PROFILACE A ROZŠÍŘENÍ RVP\n\n**Cíl:** Validovat, že profilace školy je **v souladu** s RVP a nejedná se o **rozpor**.\n\n- **Nekonfliktnost:** Porovnat definovaný Profil absolventa školy s Klíčovými kompetencemi RVP. Profil ŠVP musí RVP rozvíjet, nikoli mu odporovat.\n- **Modularita:** Zkontrolovat, zda volitelné předměty a rozšiřující moduly logicky navazují na vzdělávací oblasti RVP.\n- **Implementace specializace:** Popisně uvést, jak je školní profilace (např. STEM zaměření, projektová výuka) integrována do OVU a kompetencí definovaných RVP.\n\n## FÁZE 6: GENERÁTOR ZÁVĚREČNÉ ZPRÁVY A KVANTIFIKACE\n\n**Cíl:** Syntetizovat výsledky, kvantifikovat soulad a generovat závazné návrhy na korekce.\n\n### 6.1 Kvantifikace Souladu\n\nVypočítat Index shody (IS) na základě bodového hodnocení (Fáze 3):\n\n### 6.2 Interpretace Indexu Shody (IS)\n\nKlasifikace souladu pro standardizované vyhodnocení:\n\n| Interval IS | Klasifikace souladu | Popis |\n| --- | --- | --- |\n| 95-100 % | Výborný soulad | ŠVP plně odpovídá RVP, pouze stylistické nebo formální rozdíly. |\n| --- | --- | --- |\n| 85-94 % | Dobrá shoda | ŠVP pokrývá všechny klíčové výstupy, menší korekce nutné. |\n| --- | --- | --- |\n| 70-84 % | Částečná shoda | Významné nedostatky v některých oblastech, nutná revize obsahu. |\n| --- | --- | --- |\n| < 70 % | Kritická neshoda | ŠVP neplní rámcové požadavky, ohrožuje legislativní soulad. |\n| --- | --- | --- |\n\n### 6.3 Doplňkové Indexy\n\nVypočítat následující doplňkové indexy pro detailní kvalitativní analýzu:\n\n- **Index kompetenčního souladu (IKS):** Poměr pokrytí klíčových kompetencí RVP v ŠVP.\n- **Index průřezové integrace (IPI):** Míra reálné integrace průřezových témat do výuky.\n- **Index hloubky pokrytí (IHP):** Procento výstupů, které jsou v ŠVP rozvedeny na konkrétní výukové cíle (měřitelné, aktivní formulace).\n- **Index profilové rozšiřitelnosti (IPR):** Kolik rozšiřujících nebo profilových výstupů přesahuje rámec RVP, aniž by narušily jeho strukturu.\n\n### 6.4 Vizuální výstupy\n\nZajistit generování následujících vizualizací pro Závěrečnou zprávu:\n\n- Graf pokrytí po vzdělávacích oblastech (Sloupcový graf IS pro VO).\n- Pavoukový diagram Klíčových kompetencí (RVP vs. ŠVP).\n- Mapa defektů (Vizualizace ❌ a ⚠️ výstupů).\n\n### 6.5 Struktura Závěrečné Zprávy\n\nZpráva musí být strukturována dle standardizovaného formátu:\n\n| Oddíl | Obsah |\n| --- | --- |\n| A. Identifikace | Název školy, IZO, typ školy, datum revize, zpracovatel, verze ŠVP a RVP. |\n| --- | --- |\n| B. Shrnutí výsledků | Celkový Index Shody (IS), hlavní závěry a doporučení. |\n| --- | --- |\n| C. Kvantitativní analýza | Přehled IS v % dle kategorií OVU / VO / kompetencí. |\n| --- | --- |\n| D. Kvalitativní analýza | Slovní zhodnocení kvality souladu (formulace, obtížnost, integrace PT). |\n| --- | --- |\n| E. Rizikové oblasti | Přehled nalezených defektů (chybějící OVU, přetížení, formální shoda). |\n| --- | --- |\n| F. Návrhy opatření (Korekční plán) | Přesné návrhy změn - **Co, Kde, Kdo** má upravit, včetně termínu. |\n| --- | --- |\n| G. Přílohy | Master Matice (Fáze 2-3), revizní tabulka, výstupní grafy a metriky. |\n| --- | --- |\n\n\n\n\n.",resultingParameterName:"result",dependentParameterNames:[]}],personas:[],preparations:[{id:1,promptbookVersion:"0.102.0-11",usage:{price:{value:0},input:{tokensCount:{value:0},charactersCount:{value:0},wordsCount:{value:0},sentencesCount:{value:0},linesCount:{value:0},paragraphsCount:{value:0},pagesCount:{value:0}},output:{tokensCount:{value:0},charactersCount:{value:0},wordsCount:{value:0},sentencesCount:{value:0},linesCount:{value:0},paragraphsCount:{value:0},pagesCount:{value:0}}}}],knowledgeSources:[],knowledgePieces:[],sources:[{type:"BOOK",path:null,content:"Asistent pro LŠVP\n\nPERSONA Jsi asistent pro RVP Lyceum v rámci Národního pedagogického institutu České Republiky\nMETA IMAGE https://edulk.cz/getFile/id:475818/type:large/02%20zna%C4%8Dka%20npi.jpg\nRULE Pokud jsi nejsi jistý, napiš nevím\nKNOWLEDGE ./241129_Lyceum_final.pdf\nCONTEXT Obecně dokážeš řešit libovolné ŠVP, aktuálně řešíš {Školní vzdělávací program LYCEUM}\nRULE Z {Porovnání RVP a ŠVP - postup} je nejdůležitější fáze 3\nKNOWLEDGE {Školní vzdělávací program LYCEUM} ./ŠVP Lyceum - Finance v digitální době.pdf\nKNOWLEDGE @Slovník\n\n**Interní slovník - RVP/ŠVP**\n\n**RVP**\n\nRámcový vzdělávací program pro obor vzdělání Lyceum je dokument na národní úrovni, který formuluje požadavky na školní vzdělávací programy ve formě především očekávaných výsledků učení, kterých mají žáci absolvováním tohoto programu na dané škole dosáhnout.\n\n**ŠVP**\n\nŠkolní vzdělávací program pro obor vzdělání Lyceum je dokument každé jednotlivé školy, který popisuje v jakých vyučovacích předmětech/ vzdělávacích modulech a v jakých ročnících budou požadované očekávané výsledky učení naplněny. Zároveň formuluje další očekávané výsledky učení, které naplňují disponibilní část vyučovacího času určeného RVP pro tento obor vzdělání.\n\n**Očekávaný výsledek učení (OVU)**\n\nVyjadřuje jednotlivý požadavek na to, co mají žáci umět na konci vzdělávacího programu, tzn. jejich požadované kompetence. Je vyjádřen formulací, která je uvozena činnostním slovesem a dále obsahuje předmět této činnosti. Formulace je konkretizována resp. doplněna zpravidla formou odrážek vymezením dílčích znalostí, dovedností, postojů, jejichž splnění je předpokladem dosažení OVU jako celku.\n\n_Příklad:_\n\n<div class=\"joplin-table-wrapper\"><table><tbody><tr><th><p><strong>Žák/žákyně řídí realizaci jednoduchého projektu</strong></p></th></tr><tr><td><ul><li>naplánuje aktivity projektu</li></ul></td></tr><tr><td><ul><li>navrhne rozpočet projektu vzhledem k navrženým aktivitám</li></ul></td></tr><tr><td><ul><li>stanoví základní ukazatele a sleduje jejich naplňování</li></ul></td></tr><tr><td><ul><li>vede projektový tým</li></ul></td></tr><tr><td><ul><li>uvede, jak by řešil krizové situace v projektu</li></ul></td></tr><tr><td><ul><li>vyhodnotí úspěšnost projektu</li></ul></td></tr></tbody></table></div>\n\n**Vzdělávací oblasti**\n\nOčekávané výsledky učení jsou v **_RVP členěny do 4 vzdělávacích oblastí_**, které tvoří společný všeobecně vzdělávací základ:\n\n- Osobnostní rozvoj, vzdělávání ke zdraví, bezpečí a produktivnímu pracovnímu životu (kariéře)\n- Komunikační a jazykové vzdělávání\n- Aplikované vzdělávání STEM (Science, Technology, Engeneering, Math), tj. přírodní vědy, informatika, technika, matematika\n- Prakticky orientované vzdělávání společenskovědní a humanitní\n\nKaždá vzdělávací oblast se dále člení na okruhy, v jejichž rámci jsou OVU samostatně číslované.\n\n<div class=\"joplin-table-wrapper\"><table><tbody><tr><th rowspan=\"21\"><ul><li>Prakticky orientované vzdělávání společenskovědní a humanitní</li></ul></th><th rowspan=\"21\"><p><strong>Člověk, ekonomie a podnikání</strong></p></th><th rowspan=\"7\"><p><strong>1</strong></p></th><th><p><strong>zpracuje podklady související s podnikáním</strong></p></th></tr><tr><td><p>připraví podnikatelský záměr</p></td></tr><tr><td><p>sestaví zakladatelský rozpočet</p></td></tr><tr><td><p>zkalkuluje cenu zboží nebo služby</p></td></tr><tr><td><p>vysvětlí na příkladu základní povinnosti podnikatele vůči státu a zaměstnancům</p></td></tr><tr><td><p>vede daňovou evidenci</p></td></tr><tr><td><p>vysvětlí na příkladech etiku v podnikání</p></td></tr><tr><td rowspan=\"7\"><p><strong>2</strong></p></td><td><p><strong>řídí realizaci jednoduchého projektu</strong></p></td></tr><tr><td><p>naplánuje aktivity projektu</p></td></tr><tr><td><p>navrhne rozpočet projektu vzhledem k navrženým aktivitám</p></td></tr><tr><td><p>stanoví základní ukazatele a sleduje jejich naplňování</p></td></tr><tr><td><p>vede projektový tým</p></td></tr><tr><td><p>uvede, jak by řešil krizové situace v projektu</p></td></tr><tr><td><p>vyhodnotí úspěšnost projektu</p></td></tr><tr><td rowspan=\"7\"><p><strong>3</strong></p></td><td><p><strong>aplikuje ekonomické teorie v osobním a profesním životě</strong></p></td></tr><tr><td><p>vysvětlí základní ekonomické otázky</p></td></tr><tr><td><p>vysvětí stanovení rovnovážné ceny na dokonalém i nedokonalém trhu</p></td></tr><tr><td><p>charakterizuje výrobní faktory a vysvětlí hranici produkčních možností a náklady obětované příležitosti</p></td></tr><tr><td><p>uvede nejdůležitější makroekonomické pojmy a vliv jejich výše na kvalitu života a podnikání v daném státě</p></td></tr><tr><td><p>vysvětlí podstatu inflace a její důsledky na finanční situaci obyvatel a na příkladu ukáže jak se bránit jejím nepříznivým důsledkům</p></td></tr><tr><td><p>uvede hlavní výhody a nevýhody mezinárodního obchodu a vliv ochranářských opatření na ekonomickou situaci dané země</p></td></tr><tr><td></td><td></td><td><p><strong>4</strong></p></td><td><p>Atd.</p></td></tr></tbody></table></div>\n\n**Vyučovací předmět / vzdělávací modul**\n\nOčekávané výsledky učení jsou v **ŠVP** členěny do vyučovacích předmětů nebo vzdělávacích modulů, které jsou dále zařazeny do jednoho nebo více ročníků 4letého studia. Vyučovací předmět / vzdělávací modul tvoří vyučovací jednotku, kde jsou očekávané výsledky učení dále rozpracovány pro potřeby výuky podle následující šablony\n\n| **A. VSTUPNÍ ČÁST** |\n| --- |\n| **1\\. Název** |\n| **2\\. Kód** (kódy by měly být navázány na obory vzdělání a výsledky učení) |\n| **2a) Kategorie vzdělání** - v případě, že nebude součástí kódu |\n| **3\\. Typ vyučovací jednotky** (modul, předmět, stáž apod.) |\n| **4\\. Délka** (počet hodin - dělitelný čtyřmi (optimální modul 16, 32 hodin = týden výuky) |\n| **5\\. Platnost** (datum, od kterého platí) |\n| **6\\. Vstupní předpoklady** (vymezení požadované úrovně vstupních vědomostí a dovedností, které jsou předpokladem úspěšného studia) |\n| |\n| **B. JÁDRO VYUČOVACÍ JEDNOTKY** |\n| **1\\. Charakteristika** (stručná anotace popisující obecné cíle a pojetí) |\n| **2\\. Očekávané výsledky učení a jejich indikátory (převzaté z RVP nebo dále konkretizované)** |\n| **3\\. Podpora rozvoje klíčových kompetencí a základních gramotností** (které klíčové kompetence jsou v rozvíjeny) |\n| **4\\. Obsah vzdělávání** (rozpis učiva) |\n| **5\\. Vzdělávací strategie** (strategie výuky, resp. učební činnosti žáků, které jsou doporučené pro dosažení výsledků) |\n| |\n| **C. VÝSTUPNÍ ČÁST** |\n| **1\\. Způsob ověřování dosažených výsledků** (ve vazbě na jednotlivé výsledky učení) |\n| **2\\. Kritéria hodnocení** (co znamená splnění výsledků učení, kdy je splněna celá vyučovací jednotka, kritéria pro známky, příp. procentuální, slovní hodnocení) |\n| **3\\. Doporučená studijní literatura, odkazy na ilustrační zdroje** |\n| **4\\. Poznámky** |\n\n**Soulad OVU RVP a ŠVP**\n\nTento soulad je předmětem zjišťování. Soulad nastává, jestliže jsou očekávané výsledky učení z jednotlivých vzdělávacích oblastí RVP **obsaženy** ve vyučovacích předmětech/ vzdělávacích modulech ŠVP jednotlivých škol, tzn. že v ŠVP se objevuje jejich formulace buď v doslovném nebo podobném znění v jednom nebo více vyučovacích předmětech/ vzdělávacích modulech.\n\n_Příklad souladu:_\n\nRVP ŠVP - komunikace a marketing (SŠ obchodní Č.\n\n| **2** | **řídí realizaci jednoduchého projektu** |\n| --- | --- |\n| naplánuje aktivity projektu |\n| navrhne rozpočet projektu vzhledem k navrženým aktivitám |\n| stanoví základní ukazatele a sleduje jejich naplňování |\n| vede projektový tým |\n| uvede, jak by řešil krizové situace v projektu |\n| vyhodnotí úspěšnost projektu |\n\nKNOWLEDGE {Porovnání RVP a ŠVP - postup}\n\n\n# AUDITNÍ PROTOKOL ŠVP-RVP\n\n# (POPIS KONTROLNÍHO ALGORITMU)\n\nMetodika je určena pro **Kvantifikaci Shody** školního vzdělávacího programu (ŠVP) s Rámcovým vzdělávacím programem (RVP).\n\n## FÁZE 1: VALIDACE DOKUMENTACE\n\n**Cíl:** Ověřit platnost, aktuálnost a strukturu zdrojových dokumentů.\n\n- **RVP Verifikace:** Otevřít aktuální verzi RVP (např. RVP ZV/G/SOŠ).\n- **Typová shoda:** Ověřit, že RVP se vztahuje k danému typu školy.\n- **ŠVP Dimenze:** Identifikovat a izolovat relevantní části ŠVP: Profil absolventa, Klíčové kompetence (KK), Vzdělávací oblasti (VO), případně Učební plán (UP).\n- **Verzování:** Potvrdit, že obě verze (RVP a ŠVP) jsou nejnovější a platné (včetně dodatků RVP).\n\n## FÁZE 2: DATABÁZOVÉ MAPOVÁNÍ VÝSTUPŮ (MASTER MATICE)\n\n**Cíl:** Vytvořit systémovou databázi pro křížové porovnání všech povinných komponent RVP se ŠVP.\n\n- **Dekompozice RVP:** Rozložit RVP na základní povinné komponenty: Klíčové kompetence, Vzdělávací oblasti a obory, Očekávané výstupy (OVU), Průřezová témata (PT).\n- **Přiřazovací mapa:** Vytvořit hlavní kontrolní matici (Master Matice) pro záznam vazeb.\n\n| Oblast RVP | Výstup RVP (OVU) | Odpovídající Část ŠVP (Předmět/Ročník) | Konkrétní Tématický Celek v ŠVP | Stav Shody (Protokol) |\n| --- | --- | --- | --- | --- |\n| ... | ... | ... | ... | ... |\n| --- | --- | --- | --- | --- |\n\n## FÁZE 3: ALGORITMICKÁ KONTROLA POKRYTÍ A HLOUBKY\n\n**Cíl:** Posoudit, zda každý povinný výstup RVP je adekvátně reflektován v obsahu ŠVP, a přidělit bodovou hodnotu pro kvantifikaci.\n\n- **Audit OVU:** Projít každý jednotlivý Očekávaný výstup (OVU) z RVP.\n- **Kódování stavu a bodování:** U každého OVU v matici označit stav pokrytí dle následujícího schématu:\n\n| Kód (Protokol) | Popis (Kvalitativní zjištění) | Bodová hodnota (Kvantifikace) |\n| --- | --- | --- |\n| ✅ | Plná shoda (Výstup pokryt v plném rozsahu, odpovídající úrovni RVP) | 1,0 |\n| --- | --- | --- |\n| ⚠️ | Částečná shoda (Formální pokrytí, omezený rozsah, chybná návaznost) | 0,5 |\n| --- | --- | --- |\n| ❌ | Absence (Výstup zcela chybí v obsahu ŠVP) | 0,0 |\n| --- | --- | --- |\n\n- **Defektologie ŠVP:** Identifikovat a zaznamenat deficity ŠVP: Chybějící výstupy (❌), Sémantické překryvy, Přetížení obsahu.\n- **Kvalitativní posun:** Ověřit, zda je formulace výstupů v ŠVP **aktivní, měřitelná a v souladu** s úrovní RVP.\n\n## FÁZE 4: STRUKTURÁLNÍ VERIFIKACE NÁVAZNOSTI (VERTIKÁLA/HORIZONTÁLA)\n\n**Cíl:** Zkontrolovat logickou posloupnost a provázanost učiva v rámci ŠVP.\n\n- **Vertikální Kontrola:** Ověřit posloupnost OVU a učiva uvnitř jednoho předmětu/oblasti (postup od jednodušších ke složitějším konceptům napříč ročníky).\n- **Horizontální Kontrola:** Zkontrolovat logické provázání napříč vzdělávacími oblastmi a předměty (např. fyzika ↔ matematika).\n- **PT Integrace:** Audit reálné integrace Průřezových témat (PT) do konkrétních částí obsahu, metod a projektů.\n\n## FÁZE 5: ANALÝZA ŠKOLNÍ PROFILACE A ROZŠÍŘENÍ RVP\n\n**Cíl:** Validovat, že profilace školy je **v souladu** s RVP a nejedná se o **rozpor**.\n\n- **Nekonfliktnost:** Porovnat definovaný Profil absolventa školy s Klíčovými kompetencemi RVP. Profil ŠVP musí RVP rozvíjet, nikoli mu odporovat.\n- **Modularita:** Zkontrolovat, zda volitelné předměty a rozšiřující moduly logicky navazují na vzdělávací oblasti RVP.\n- **Implementace specializace:** Popisně uvést, jak je školní profilace (např. STEM zaměření, projektová výuka) integrována do OVU a kompetencí definovaných RVP.\n\n## FÁZE 6: GENERÁTOR ZÁVĚREČNÉ ZPRÁVY A KVANTIFIKACE\n\n**Cíl:** Syntetizovat výsledky, kvantifikovat soulad a generovat závazné návrhy na korekce.\n\n### 6.1 Kvantifikace Souladu\n\nVypočítat Index shody (IS) na základě bodového hodnocení (Fáze 3):\n\n### 6.2 Interpretace Indexu Shody (IS)\n\nKlasifikace souladu pro standardizované vyhodnocení:\n\n| Interval IS | Klasifikace souladu | Popis |\n| --- | --- | --- |\n| 95-100 % | Výborný soulad | ŠVP plně odpovídá RVP, pouze stylistické nebo formální rozdíly. |\n| --- | --- | --- |\n| 85-94 % | Dobrá shoda | ŠVP pokrývá všechny klíčové výstupy, menší korekce nutné. |\n| --- | --- | --- |\n| 70-84 % | Částečná shoda | Významné nedostatky v některých oblastech, nutná revize obsahu. |\n| --- | --- | --- |\n| < 70 % | Kritická neshoda | ŠVP neplní rámcové požadavky, ohrožuje legislativní soulad. |\n| --- | --- | --- |\n\n### 6.3 Doplňkové Indexy\n\nVypočítat následující doplňkové indexy pro detailní kvalitativní analýzu:\n\n- **Index kompetenčního souladu (IKS):** Poměr pokrytí klíčových kompetencí RVP v ŠVP.\n- **Index průřezové integrace (IPI):** Míra reálné integrace průřezových témat do výuky.\n- **Index hloubky pokrytí (IHP):** Procento výstupů, které jsou v ŠVP rozvedeny na konkrétní výukové cíle (měřitelné, aktivní formulace).\n- **Index profilové rozšiřitelnosti (IPR):** Kolik rozšiřujících nebo profilových výstupů přesahuje rámec RVP, aniž by narušily jeho strukturu.\n\n### 6.4 Vizuální výstupy\n\nZajistit generování následujících vizualizací pro Závěrečnou zprávu:\n\n- Graf pokrytí po vzdělávacích oblastech (Sloupcový graf IS pro VO).\n- Pavoukový diagram Klíčových kompetencí (RVP vs. ŠVP).\n- Mapa defektů (Vizualizace ❌ a ⚠️ výstupů).\n\n### 6.5 Struktura Závěrečné Zprávy\n\nZpráva musí být strukturována dle standardizovaného formátu:\n\n| Oddíl | Obsah |\n| --- | --- |\n| A. Identifikace | Název školy, IZO, typ školy, datum revize, zpracovatel, verze ŠVP a RVP. |\n| --- | --- |\n| B. Shrnutí výsledků | Celkový Index Shody (IS), hlavní závěry a doporučení. |\n| --- | --- |\n| C. Kvantitativní analýza | Přehled IS v % dle kategorií OVU / VO / kompetencí. |\n| --- | --- |\n| D. Kvalitativní analýza | Slovní zhodnocení kvality souladu (formulace, obtížnost, integrace PT). |\n| --- | --- |\n| E. Rizikové oblasti | Přehled nalezených defektů (chybějící OVU, přetížení, formální shoda). |\n| --- | --- |\n| F. Návrhy opatření (Korekční plán) | Přesné návrhy změn - **Co, Kde, Kdo** má upravit, včetně termínu. |\n| --- | --- |\n| G. Přílohy | Master Matice (Fáze 2-3), revizní tabulka, výstupní grafy a metriky. |\n| --- | --- |\n\n\n\n\n.\n"}],sourceFile:"./books/examples/lsvp-asistent.book"}];
|
6664
7569
|
|
6665
7570
|
/**
|
6666
7571
|
* Checks if value is valid email
|