folk-canvas/demo/llm.html

122 lines
4.1 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>LLM</title>
<style>
html {
height: 100%;
}
body {
min-height: 100%;
position: relative;
margin: 0;
}
event-propagator {
display: block;
position: absolute;
inset: 0 0 0 0;
pointer-events: none;
}
fc-geometry {
border: 1px solid black;
border-radius: 4px;
}
folk-llm {
display: block;
width: 100%;
height: 100%;
min-height: 1lh;
}
folk-timer {
padding: 0.5rem;
}
</style>
</head>
<body>
<fc-geometry x="100" y="100" width="250">
<ul id="recipe" class="wprm-recipe-ingredients">
<li class="wprm-recipe-ingredient" style="list-style-type: disc" data-uid="0">
<span class="wprm-recipe-ingredient-amount">500</span>
<span class="wprm-recipe-ingredient-unit">g</span>
<span class="wprm-recipe-ingredient-name">all purpose flour King Arthur brand is recommended</span>
<span class="wprm-recipe-ingredient-notes wprm-recipe-ingredient-notes-faded"
>about 3 1/2 cups, using 'scoop and swipe' method</span
>
</li>
<li class="wprm-recipe-ingredient" style="list-style-type: disc" data-uid="1">
<span class="wprm-recipe-ingredient-amount">360</span>
<span class="wprm-recipe-ingredient-unit">g</span>
<span class="wprm-recipe-ingredient-name">water</span>
<span class="wprm-recipe-ingredient-notes wprm-recipe-ingredient-notes-faded">about 1 1/2 cups + 1 Tbsp</span>
</li>
<li class="wprm-recipe-ingredient" style="list-style-type: disc" data-uid="2">
<span class="wprm-recipe-ingredient-amount">10</span> <span class="wprm-recipe-ingredient-unit">g</span>
<span class="wprm-recipe-ingredient-name">salt</span>
<span class="wprm-recipe-ingredient-notes wprm-recipe-ingredient-notes-faded">about 2 tsp</span>
</li>
<li class="wprm-recipe-ingredient" style="list-style-type: disc" data-uid="3">
<span class="wprm-recipe-ingredient-amount">3</span> <span class="wprm-recipe-ingredient-unit">g</span>
<span class="wprm-recipe-ingredient-name">instant yeast</span>
<span class="wprm-recipe-ingredient-notes wprm-recipe-ingredient-notes-faded"
>about 1 tsp; also known as Quick Rise or Rapid Rise yeast</span
>
</li>
<li class="wprm-recipe-ingredient" style="list-style-type: disc" data-uid="4">
<span class="wprm-recipe-ingredient-amount">25</span> <span class="wprm-recipe-ingredient-unit">g</span>
<span class="wprm-recipe-ingredient-name">honey</span>
<span class="wprm-recipe-ingredient-notes wprm-recipe-ingredient-notes-faded">about 1 Tbsp</span>
</li>
</ul>
</fc-geometry>
<fc-geometry x="400" y="100" width="250">
<folk-llm system-prompt="Output text as HTML, no backticks"></folk-llm>
</fc-geometry>
<fc-geometry x="700" y="200">
<folk-timer></folk-timer>
</fc-geometry>
<event-propagator
source="#recipe"
target="folk-llm"
triggers="click"
expression="prompt: `double this list of ingredients '${from.innerHTML}'`"
></event-propagator>
<event-propagator
source="folk-llm"
target="folk-timer"
triggers="started"
expression="$target.reset(); $target.start()"
>
</event-propagator>
<event-propagator
source="folk-llm"
target="folk-timer"
triggers="finished"
expression="$target.stop();"
></event-propagator>
<script type="module">
import { FolkGeometry } from '../src/canvas/fc-geometry.ts';
import { FolkLLM } from '../src/folk-llm.ts';
import { FolkTimer } from '../src/folk-timer.ts';
import { EventPropagator } from '../src/arrows/event-propagator.ts';
FolkGeometry.define();
FolkLLM.define();
FolkTimer.define();
EventPropagator.define();
</script>
</body>
</html>