Skip to content

Commit 7df2ac8

Browse files
jsonbaileyclaude
andcommitted
fix: Modernize server-ai examples to current SDK surface
- openai, openai-observability, bedrock, vercel-ai, direct-judge, agent-graph-traversal examples - Drop unnecessary aiConfig.createTracker!() non-null assertions (the field is non-optional in the type) - Replace removed OpenAIProvider.getAIMetricsFromResponse with the bare export in openai-observability README - Update direct-judge dangling comment to use createTracker() factory - Fix agent-graph-traversal README example: trackSuccess() takes no args; tokens go through trackTokens({ total, input, output }) Refs AIC-2383 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 86951b0 commit 7df2ac8

7 files changed

Lines changed: 10 additions & 9 deletions

File tree

packages/sdk/server-ai/examples/agent-graph-traversal/README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,8 @@ inside your traversal callback via `node.getConfig().createTracker?.()`.
100100
graph.traverse((node, executionContext) => {
101101
const nodeTracker = node.getConfig().createTracker?.();
102102
// ... invoke the node's agent ...
103-
nodeTracker?.trackSuccess({ totalTokens: 120, inputTokens: 80, outputTokens: 40 });
103+
nodeTracker?.trackTokens({ total: 120, input: 80, output: 40 });
104+
nodeTracker?.trackSuccess();
104105
return result;
105106
});
106107
```

packages/sdk/server-ai/examples/bedrock/src/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ async function main() {
6767
process.exit(0);
6868
}
6969

70-
const tracker = aiConfig.createTracker!();
70+
const tracker = aiConfig.createTracker();
7171
const completion = tracker.trackBedrockConverseMetrics(
7272
await awsClient.send(
7373
new ConverseCommand({

packages/sdk/server-ai/examples/direct-judge/src/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ async function main() {
6969

7070
// Track the judge result on the tracker for the aiConfig you are evaluating.
7171
// Example:
72-
// aiConfig.tracker.trackJudgeResult(judgeResult);
72+
// aiConfig.createTracker().trackJudgeResult(judgeResult);
7373

7474
console.log('Judge Result:', judgeResult);
7575

packages/sdk/server-ai/examples/openai-observability/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@ This example shows how to use the LaunchDarkly observability plugin when calling
88
2. **Get the AI Config** via `completionConfig()` — this returns the model, messages, and parameters configured in LaunchDarkly, along with a `tracker` for reporting metrics.
99
3. **Call your provider directly** and wrap it with the tracker — the tracker records latency, token usage, and success/error status.
1010

11-
The tracker provides several methods depending on your provider. This example uses `trackMetricsOf` with the LaunchDarkly OpenAI provider's `getAIMetricsFromResponse` extractor:
11+
The tracker provides several methods depending on your provider. This example uses `trackMetricsOf` with the `getAIMetricsFromResponse` extractor exported by `@launchdarkly/server-sdk-ai-openai`:
1212

1313
| Method | Provider |
1414
|--------|----------|
15-
| `tracker.trackMetricsOf(OpenAIProvider.getAIMetricsFromResponse, fn)` | OpenAI (recommended) |
15+
| `tracker.trackMetricsOf(getAIMetricsFromResponse, fn)` | OpenAI (recommended) |
1616
| `tracker.trackBedrockConverseMetrics(response)` | AWS Bedrock |
1717
| `tracker.trackMetricsOf(extractor, fn)` | Any provider (custom extractor) |
1818

packages/sdk/server-ai/examples/openai-observability/src/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ async function main() {
7676

7777
try {
7878
// ── 4. Call OpenAI and track metrics with the provider's extractor ──
79-
const tracker = aiConfig.createTracker!();
79+
const tracker = aiConfig.createTracker();
8080
const completion = await tracker.trackMetricsOf(getAIMetricsFromResponse, () =>
8181
openai.chat.completions.create({
8282
messages: aiConfig.messages || [],

packages/sdk/server-ai/examples/openai/src/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ async function main() {
6565
process.exit(0);
6666
}
6767

68-
const tracker = aiConfig.createTracker!();
68+
const tracker = aiConfig.createTracker();
6969
const completion = await tracker.trackMetricsOf(
7070
getAIMetricsFromResponse,
7171
async () =>

packages/sdk/server-ai/examples/vercel-ai/src/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ async function main() {
7777

7878
const messages = convertMessagesToVercel([...(aiConfig.messages || []), userMessage]);
7979

80-
const tracker = aiConfig.createTracker!();
80+
const tracker = aiConfig.createTracker();
8181
const result = await tracker.trackMetricsOf(getAIMetricsFromResponse, () =>
8282
generateText({ ...parameters, model, messages }),
8383
);
@@ -98,7 +98,7 @@ async function main() {
9898

9999
const messages = convertMessagesToVercel([...(aiConfig.messages || []), userMessage]);
100100

101-
const streamTracker = aiConfig.createTracker!();
101+
const streamTracker = aiConfig.createTracker();
102102
const streamResult = streamTracker.trackStreamMetricsOf(
103103
() => streamText({ ...parameters, model, messages }),
104104
getAIMetricsFromStream,

0 commit comments

Comments
 (0)