Skip to content

Commit 9ffce82

Browse files
apartsinclaude
andcommitted
Fix 6 duplicate figure/code fragment numbers (P0)
Remove forward references in diagram captions that duplicated code fragment numbers. Affected sections: 31.1, 31.4, 32.7, 33.1, 33.2. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 281ef93 commit 9ffce82

5 files changed

Lines changed: 7 additions & 7 deletions

File tree

part-8-evaluation-production/module-31-production-engineering/section-31.1.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -65,11 +65,11 @@ <h2>1. API Layer with FastAPI <span class="level-badge intermediate" title="Inte
6565
<figure class="illustration">
6666
<img loading="lazy" src="images/restaurant-kitchen-architecture.png"
6767
alt="A restaurant split into front-of-house (API layer) and kitchen (model inference layer), with waiters passing orders through a service window, illustrating the three-layer LLM application architecture">
68-
<figcaption><strong>Figure 31.1.2</strong>: As Figure 31.1.4 illustrates, the restaurant kitchen (model inference) and the front-of-house (API layer) communicate through a well-defined service window (API contract), allowing each side to scale and evolve independently.</figcaption>
68+
<figcaption><strong>Figure 31.1.2</strong>: The restaurant kitchen (model inference) and the front-of-house (API layer) communicate through a well-defined service window (API contract), allowing each side to scale and evolve independently.</figcaption>
6969
</figure>
7070

7171
<div class="diagram-container">
72-
<svg viewBox="0 -9 820 429" xmlns="http://www.w3.org/2000/svg" style="font-family: 'Segoe UI', sans-serif;" role="img" aria-label="As Figure 31.1.4 illustrates, the restaurant kitchen (model inference) and the front-of-house (API layer) communicate th">
72+
<svg viewBox="0 -9 820 429" xmlns="http://www.w3.org/2000/svg" style="font-family: 'Segoe UI', sans-serif;" role="img" aria-label="The restaurant kitchen (model inference) and the front-of-house (API layer) communicate through a well-defined service window">
7373
<defs><linearGradient id="stdGrad4" x1="0%" y1="0%" x2="0%" y2="100%"><stop offset="0%" style="stop-color:#f8f9fa;stop-opacity:0.7"/><stop offset="100%" style="stop-color:#e9ecef;stop-opacity:0.3"/></linearGradient>
7474
<filter id="shadowArch" x="-5%" y="-5%" width="110%" height="115%">
7575
<feDropShadow dx="1" dy="2" stdDeviation="2" flood-opacity="0.12"/>
@@ -156,7 +156,7 @@ <h2>1. API Layer with FastAPI <span class="level-badge intermediate" title="Inte
156156
<!-- Bottom annotation -->
157157
<text x="410" y="400" text-anchor="middle" font-size="12" fill="#555">Each layer can be deployed, scaled, tested, and versioned independently</text>
158158
</svg>
159-
<div class="diagram-caption"><strong>Figure 31.1.3</strong> The three-layer architecture separates API concerns, application logic, and model inference so each layer can evolve independently. Code Fragment 31.1.1 below puts this into practice.</p>
159+
<div class="diagram-caption"><strong>Figure 31.1.3</strong> The three-layer architecture separates API concerns, application logic, and model inference so each layer can evolve independently. The code below puts this into practice.</p>
160160
</div>
161161

162162
<h3>Basic Chat Completion Endpoint</h3>

part-8-evaluation-production/module-31-production-engineering/section-31.4.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ <h2>1. Prompt Versioning <span class="level-badge intermediate" title="Intermedi
159159
<line x1="450" y1="420" x2="525" y2="250" stroke="#bbb" stroke-width="1" stroke-dasharray="4" stroke-linecap="round"/>
160160
<line x1="510" y1="420" x2="725" y2="250" stroke="#bbb" stroke-width="1" stroke-dasharray="4" stroke-linecap="round"/>
161161
</svg>
162-
<div class="diagram-caption"><strong>Figure 31.4.1</strong> The LLMOps lifecycle connects four phases (develop, test, deploy, monitor) through a continuous feedback loop, with a shared registry tracking all artifacts. Code Fragment 31.4.1 below puts this into practice.</p>
162+
<div class="diagram-caption"><strong>Figure 31.4.1</strong> The LLMOps lifecycle connects four phases (develop, test, deploy, monitor) through a continuous feedback loop, with a shared registry tracking all artifacts. The code below puts this into practice.</p>
163163
</div>
164164
<pre><code class="language-python">
165165
# Define PromptRegistry; implement __init__, register, get

part-9-safety-strategy/module-32-safety-ethics-regulation/section-32.7.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -295,7 +295,7 @@ <h2>3. Task Vector Unlearning <span class="level-badge intermediate" title="Inte
295295
<text x="710" y="354" text-anchor="middle" font-size="11" fill="#555">far to negate. Too high</text>
296296
<text x="710" y="368" text-anchor="middle" font-size="11" fill="#555">degrades general ability.</text>
297297
</svg>
298-
<div class="diagram-caption"><strong>Figure 32.7.2</strong> Two geometric views of unlearning in weight space. Gradient ascent (left) moves away from the forget set's loss minimum. Task vector negation (right) subtracts the learned skill direction from the base model. Code Fragment 32.7.3 below puts this into practice.</p>
298+
<div class="diagram-caption"><strong>Figure 32.7.2</strong> Two geometric views of unlearning in weight space. Gradient ascent (left) moves away from the forget set's loss minimum. Task vector negation (right) subtracts the learned skill direction from the base model.</p>
299299
</div>
300300

301301
<h2>4. Evaluating Unlearning Quality <span class="level-badge intermediate" title="Intermediate">Intermediate</span></h2>

part-9-safety-strategy/module-33-strategy-product-roi/section-33.1.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -333,7 +333,7 @@ <h3>The Use Case Discovery Workshop</h3>
333333

334334
<text x="425" y="400" text-anchor="middle" font-size="12" fill="#888" font-style="italic">Progressive filtering narrows 25 raw ideas down to 3 high-value, data-ready use cases in 2 hours</text>
335335
</svg>
336-
<div class="diagram-caption"><strong>Figure 33.1.2</strong> The four-phase Use Case Discovery Workshop progressively filters raw pain points into ranked, data-ready LLM use cases Code Fragment 33.1.2 below puts this into practice.</p>
336+
<div class="diagram-caption"><strong>Figure 33.1.2</strong> The four-phase Use Case Discovery Workshop progressively filters raw pain points into ranked, data-ready LLM use cases. The code below puts this into practice.</p>
337337
</div>
338338
<pre><code class="language-python">
339339
# Define UseCase; implement estimated_annual_value, passes_screening

part-9-safety-strategy/module-33-strategy-product-roi/section-33.2.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -279,7 +279,7 @@ <h2>2. Success Metrics for LLM Products <span class="level-badge intermediate" t
279279
<text x="425" y="420" text-anchor="middle" font-size="12" fill="#888" font-style="italic">A product with 95% model accuracy but 20% adoption rate delivers zero business impact.</text>
280280
<text x="425" y="440" text-anchor="middle" font-size="12" fill="#888" font-style="italic">Measure all three layers, and watch for disconnects between them.</text>
281281
</svg>
282-
<div class="diagram-caption"><strong>Figure 33.2.1</strong> The LLM Product Metrics Pyramid showing three measurement layers from model internals to business outcomes Code Fragment 33.2.2 below puts this into practice.</p>
282+
<div class="diagram-caption"><strong>Figure 33.2.1</strong> The LLM Product Metrics Pyramid showing three measurement layers from model internals to business outcomes. The code below puts this into practice.</p>
283283
</div>
284284
<pre><code class="language-python">
285285
# Define LLMProductMetrics; implement health_check

0 commit comments

Comments
 (0)