Update index.html
Browse files- index.html +96 -63
index.html
CHANGED
@@ -9,9 +9,9 @@
|
|
9 |
<div class="max-w-5xl w-full bg-white rounded-2xl shadow-lg p-6">
|
10 |
<h1 class="text-3xl font-extrabold mb-4 text-center text-indigo-800">Semantic Kernel TicTacToe</h1>
|
11 |
<p class="text-center text-sm text-gray-600 mb-4">
|
12 |
-
Source: <a href="https://
|
13 |
class="text-blue-600 underline" target="_blank" rel="noopener">
|
14 |
-
Introduction to Semantic Kernel
|
15 |
</a>
|
16 |
</p>
|
17 |
|
@@ -34,106 +34,139 @@
|
|
34 |
</div>
|
35 |
|
36 |
<script>
|
37 |
-
// Questions derived from the
|
38 |
const questions = [
|
39 |
{
|
40 |
-
question: '
|
41 |
choices: [
|
42 |
-
'
|
43 |
-
'
|
44 |
-
'
|
45 |
-
'
|
46 |
],
|
47 |
-
answer:
|
48 |
-
hint: '
|
49 |
},
|
50 |
{
|
51 |
-
question: 'Which
|
52 |
choices: [
|
53 |
-
'
|
54 |
-
'
|
55 |
-
'
|
56 |
-
'
|
57 |
],
|
58 |
-
answer:
|
59 |
-
hint: '
|
60 |
},
|
61 |
{
|
62 |
-
question: 'What
|
63 |
choices: [
|
64 |
-
'
|
65 |
-
'
|
66 |
-
'
|
67 |
-
'
|
68 |
],
|
69 |
-
answer:
|
70 |
-
hint: '
|
71 |
},
|
72 |
{
|
73 |
-
question: 'Which
|
74 |
choices: [
|
75 |
-
'
|
76 |
-
'
|
77 |
-
'
|
78 |
-
'
|
79 |
],
|
80 |
-
answer:
|
81 |
-
hint: '
|
82 |
},
|
83 |
{
|
84 |
-
question: '
|
85 |
choices: [
|
86 |
-
'
|
87 |
-
'
|
88 |
-
'
|
89 |
-
'
|
90 |
],
|
91 |
answer: 1,
|
92 |
-
hint: '
|
93 |
},
|
94 |
{
|
95 |
-
question: '
|
96 |
choices: [
|
97 |
-
'
|
98 |
-
'
|
99 |
-
'
|
100 |
-
'
|
101 |
],
|
102 |
-
answer:
|
103 |
-
hint: '
|
104 |
},
|
105 |
{
|
106 |
-
question: '
|
107 |
choices: [
|
108 |
-
'
|
109 |
-
'
|
110 |
-
'
|
111 |
-
'
|
112 |
],
|
113 |
answer: 3,
|
114 |
-
hint: '
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
115 |
},
|
116 |
{
|
117 |
-
question: '
|
118 |
choices: [
|
119 |
-
'
|
120 |
-
'
|
121 |
-
'
|
122 |
-
'
|
123 |
],
|
124 |
answer: 2,
|
125 |
-
hint: '
|
126 |
},
|
127 |
{
|
128 |
-
question: '
|
129 |
choices: [
|
130 |
-
'
|
131 |
-
'
|
132 |
-
'
|
133 |
-
'
|
134 |
],
|
135 |
answer: 3,
|
136 |
-
hint: '
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
137 |
}
|
138 |
];
|
139 |
|
@@ -183,7 +216,7 @@
|
|
183 |
panelQuestion.innerText = q.question;
|
184 |
panelChoices.innerHTML = '';
|
185 |
panelHint.classList.add('hidden');
|
186 |
-
panelHint.innerText = q.hint;
|
187 |
q.choices.forEach((c, i) => {
|
188 |
const li = document.createElement('li');
|
189 |
const btn = document.createElement('button');
|
|
|
9 |
<div class="max-w-5xl w-full bg-white rounded-2xl shadow-lg p-6">
|
10 |
<h1 class="text-3xl font-extrabold mb-4 text-center text-indigo-800">Semantic Kernel TicTacToe</h1>
|
11 |
<p class="text-center text-sm text-gray-600 mb-4">
|
12 |
+
Source: <a href="https://www.linkedin.com/pulse/illustrated-introduction-semantic-kernel-michael-lively-yogge/"
|
13 |
class="text-blue-600 underline" target="_blank" rel="noopener">
|
14 |
+
An Illustrated Introduction to Semantic Kernel (LinkedIn)
|
15 |
</a>
|
16 |
</p>
|
17 |
|
|
|
34 |
</div>
|
35 |
|
36 |
<script>
|
37 |
+
// Questions derived from the provided LinkedIn article text.
|
38 |
const questions = [
|
39 |
{
|
40 |
+
question: 'In the article, what problem does Semantic Kernel (SK) primarily solve?',
|
41 |
choices: [
|
42 |
+
'Rendering front-end UI components',
|
43 |
+
'Bridging AI intelligence with real-world actions and system integration',
|
44 |
+
'Replacing databases with vector search',
|
45 |
+
'Training new foundation models from scratch'
|
46 |
],
|
47 |
+
answer: 2,
|
48 |
+
hint: 'It’s about orchestration, not model training.'
|
49 |
},
|
50 |
{
|
51 |
+
question: 'Which analogy best describes SK in the article?',
|
52 |
choices: [
|
53 |
+
'AI as the conductor, SK as the audience',
|
54 |
+
'SK as the conductor coordinating models (soloist) and plugins (instruments)',
|
55 |
+
'Plugins as the stage, SK as the spotlight',
|
56 |
+
'The Kernel as the ticket booth'
|
57 |
],
|
58 |
+
answer: 2,
|
59 |
+
hint: 'Conductor ↔ orchestra.'
|
60 |
},
|
61 |
{
|
62 |
+
question: 'What is the Kernel’s role?',
|
63 |
choices: [
|
64 |
+
'Only routes HTTP requests',
|
65 |
+
'Central orchestrator that selects models, prepares prompts, calls plugins, and returns results',
|
66 |
+
'Persistent data store for embeddings',
|
67 |
+
'Front-end renderer for chat UIs'
|
68 |
],
|
69 |
+
answer: 2,
|
70 |
+
hint: 'Think “mission control.”'
|
71 |
},
|
72 |
{
|
73 |
+
question: 'Which is NOT listed as one of the five main components?',
|
74 |
choices: [
|
75 |
+
'AI Connectors',
|
76 |
+
'Plugins',
|
77 |
+
'Prompt Templates',
|
78 |
+
'GPU Schedulers'
|
79 |
],
|
80 |
+
answer: 4,
|
81 |
+
hint: 'Components include connectors, plugins, prompts, memory, planners.'
|
82 |
},
|
83 |
{
|
84 |
+
question: 'AI Connectors are primarily used to…',
|
85 |
choices: [
|
86 |
+
'Switch or add models without rewriting the entire app',
|
87 |
+
'Compile TypeScript to JavaScript',
|
88 |
+
'Encrypt database backups',
|
89 |
+
'Render SVG charts'
|
90 |
],
|
91 |
answer: 1,
|
92 |
+
hint: 'They link the Kernel to Azure OpenAI/OpenAI/etc.'
|
93 |
},
|
94 |
{
|
95 |
+
question: 'Plugins give the AI the power to…',
|
96 |
choices: [
|
97 |
+
'Change GPU clock speeds',
|
98 |
+
'Perform real-world actions like API calls or database queries',
|
99 |
+
'Alter the operating system kernel',
|
100 |
+
'Format CSS variables'
|
101 |
],
|
102 |
+
answer: 2,
|
103 |
+
hint: 'Think “tools” the model can call.'
|
104 |
},
|
105 |
{
|
106 |
+
question: 'Prompt templates in SK are described as…',
|
107 |
choices: [
|
108 |
+
'Randomized prompts for model robustness',
|
109 |
+
'Static instructions only',
|
110 |
+
'Structured instructions blending guidance with dynamic inputs',
|
111 |
+
'A replacement for function calling'
|
112 |
],
|
113 |
answer: 3,
|
114 |
+
hint: 'Recipe + ingredients.'
|
115 |
+
},
|
116 |
+
{
|
117 |
+
question: 'Memory in SK enables…',
|
118 |
+
choices: [
|
119 |
+
'GPU memory pooling',
|
120 |
+
'Storing and retrieving context across interactions (e.g., via vector DBs)',
|
121 |
+
'Only short-term cache of HTTP responses',
|
122 |
+
'Compiling kernel modules'
|
123 |
+
],
|
124 |
+
answer: 2,
|
125 |
+
hint: 'Continuity for users over time.'
|
126 |
+
},
|
127 |
+
{
|
128 |
+
question: 'Planners are used for…',
|
129 |
+
choices: [
|
130 |
+
'Choosing CSS themes',
|
131 |
+
'Breaking tasks into steps and deciding plugin call order',
|
132 |
+
'Encrypting traffic between services',
|
133 |
+
'Scaling Kubernetes pods'
|
134 |
+
],
|
135 |
+
answer: 2,
|
136 |
+
hint: 'Multi-step task strategy.'
|
137 |
},
|
138 |
{
|
139 |
+
question: 'Which sequence best matches the “How it connects” flow?',
|
140 |
choices: [
|
141 |
+
'Plugins → Planner → Memory → Connectors → Prompt → Output',
|
142 |
+
'User request → Connectors/model select → Prompt template → Plugins → Memory (context) → Planner (multi-step) → Output',
|
143 |
+
'User request → Memory only → Output',
|
144 |
+
'Planner → Connectors → User request → Output'
|
145 |
],
|
146 |
answer: 2,
|
147 |
+
hint: 'Start with the user request and end with output.'
|
148 |
},
|
149 |
{
|
150 |
+
question: 'Which is a listed real-world use case in the article?',
|
151 |
choices: [
|
152 |
+
'Terraform plan generation',
|
153 |
+
'Quantum circuit compilation',
|
154 |
+
'Retail order/return handling via service bots',
|
155 |
+
'3D graphics rendering'
|
156 |
],
|
157 |
answer: 3,
|
158 |
+
hint: 'Retail shows up alongside finance/healthcare/education.'
|
159 |
+
},
|
160 |
+
{
|
161 |
+
question: 'What differentiates SK according to the article’s “Framework for the Future” section?',
|
162 |
+
choices: [
|
163 |
+
'It is locked to one provider and one memory store',
|
164 |
+
'Modularity and adaptability—swap models/tools without starting from scratch',
|
165 |
+
'Only supports text modality',
|
166 |
+
'Requires rewriting for every model update'
|
167 |
+
],
|
168 |
+
answer: 2,
|
169 |
+
hint: 'Modular, provider-agnostic design.'
|
170 |
}
|
171 |
];
|
172 |
|
|
|
216 |
panelQuestion.innerText = q.question;
|
217 |
panelChoices.innerHTML = '';
|
218 |
panelHint.classList.add('hidden');
|
219 |
+
panelHint.innerText = q.hint || '';
|
220 |
q.choices.forEach((c, i) => {
|
221 |
const li = document.createElement('li');
|
222 |
const btn = document.createElement('button');
|