Skip to content

Commit 3552d62

Browse files
jsonbaileyclaude
andcommitted
feat!: Remove bedrock-specific tracker method
Remove the trackBedrockConverseMetrics method from LDAIConfigTracker along with the createBedrockTokenUsage helper and the BedrockTokenUsage module. AWS Bedrock metric tracking will move to a dedicated @launchdarkly/server-sdk-ai-bedrock provider package, matching the pattern used by the OpenAI and LangChain providers. The getting-started/bedrock/converse example is removed as well since it depends on the API being deleted. A new example wired to the provider package will land with that follow-up PR. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 3d8f488 commit 3552d62

16 files changed

Lines changed: 1 addition & 429 deletions

File tree

package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@
4646
"packages/sdk/browser/contract-tests/entity",
4747
"packages/sdk/server-ai",
4848
"packages/sdk/server-ai/examples/getting-started/openai/chat-completions",
49-
"packages/sdk/server-ai/examples/getting-started/bedrock/converse",
5049
"packages/sdk/server-ai/examples/getting-started/vercel-ai/generate-text",
5150
"packages/sdk/server-ai/examples/features/create-model",
5251
"packages/sdk/server-ai/examples/features/create-agent",

packages/sdk/server-ai/__tests__/LDAIConfigTrackerImpl.test.ts

Lines changed: 0 additions & 106 deletions
Original file line numberDiff line numberDiff line change
@@ -167,112 +167,6 @@ it('tracks success', () => {
167167
);
168168
});
169169

170-
it('tracks Bedrock conversation with successful response', () => {
171-
const tracker = new LDAIConfigTrackerImpl(
172-
mockLdClient,
173-
testRunId,
174-
configKey,
175-
variationKey,
176-
version,
177-
modelName,
178-
providerName,
179-
testContext,
180-
);
181-
182-
const TOTAL_TOKENS = 100;
183-
const PROMPT_TOKENS = 49;
184-
const COMPLETION_TOKENS = 51;
185-
186-
const response = {
187-
$metadata: { httpStatusCode: 200 },
188-
metrics: { latencyMs: 500 },
189-
usage: {
190-
inputTokens: PROMPT_TOKENS,
191-
outputTokens: COMPLETION_TOKENS,
192-
totalTokens: TOTAL_TOKENS,
193-
},
194-
};
195-
196-
tracker.trackBedrockConverseMetrics(response);
197-
198-
expect(mockTrack).toHaveBeenCalledWith(
199-
'$ld:ai:generation:success',
200-
testContext,
201-
getExpectedTrackData(),
202-
1,
203-
);
204-
205-
expect(mockTrack).not.toHaveBeenCalledWith(
206-
'$ld:ai:generation:error',
207-
expect.anything(),
208-
expect.anything(),
209-
expect.anything(),
210-
);
211-
212-
expect(mockTrack).toHaveBeenCalledWith(
213-
'$ld:ai:duration:total',
214-
testContext,
215-
getExpectedTrackData(),
216-
500,
217-
);
218-
219-
expect(mockTrack).toHaveBeenCalledWith(
220-
'$ld:ai:tokens:total',
221-
testContext,
222-
getExpectedTrackData(),
223-
TOTAL_TOKENS,
224-
);
225-
226-
expect(mockTrack).toHaveBeenCalledWith(
227-
'$ld:ai:tokens:input',
228-
testContext,
229-
getExpectedTrackData(),
230-
PROMPT_TOKENS,
231-
);
232-
233-
expect(mockTrack).toHaveBeenCalledWith(
234-
'$ld:ai:tokens:output',
235-
testContext,
236-
getExpectedTrackData(),
237-
COMPLETION_TOKENS,
238-
);
239-
});
240-
241-
it('tracks Bedrock conversation with error response', () => {
242-
const tracker = new LDAIConfigTrackerImpl(
243-
mockLdClient,
244-
testRunId,
245-
configKey,
246-
variationKey,
247-
version,
248-
modelName,
249-
providerName,
250-
testContext,
251-
);
252-
253-
const response = {
254-
$metadata: { httpStatusCode: 400 },
255-
};
256-
257-
tracker.trackBedrockConverseMetrics(response);
258-
259-
expect(mockTrack).toHaveBeenCalledTimes(1);
260-
261-
expect(mockTrack).toHaveBeenCalledWith(
262-
'$ld:ai:generation:error',
263-
testContext,
264-
getExpectedTrackData(),
265-
1,
266-
);
267-
268-
expect(mockTrack).not.toHaveBeenCalledWith(
269-
expect.stringMatching(/^\$ld:ai:tokens:/),
270-
expect.anything(),
271-
expect.anything(),
272-
expect.anything(),
273-
);
274-
});
275-
276170
it('tracks tokens', () => {
277171
const tracker = new LDAIConfigTrackerImpl(
278172
mockLdClient,

packages/sdk/server-ai/__tests__/ManagedAgent.test.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ describe('ManagedAgent', () => {
3333
trackFeedback: jest.fn(),
3434
trackTimeToFirstToken: jest.fn(),
3535
trackDurationOf: jest.fn(),
36-
trackBedrockConverseMetrics: jest.fn(),
3736
getSummary: jest.fn().mockReturnValue({ success: true, resumptionToken: 'agent-resumption-token' }),
3837
} as any;
3938

packages/sdk/server-ai/__tests__/ManagedModel.test.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ describe('ManagedModel', () => {
2424
trackFeedback: jest.fn(),
2525
trackTimeToFirstToken: jest.fn(),
2626
trackDurationOf: jest.fn(),
27-
trackBedrockConverseMetrics: jest.fn(),
2827
getSummary: jest.fn().mockReturnValue({}),
2928
trackJudgeResult: jest.fn(),
3029
resumptionToken: 'resumption-token-123',

packages/sdk/server-ai/__tests__/ManagedModelRun.test.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ describe('ManagedModel.run() evaluations', () => {
3333
trackFeedback: jest.fn(),
3434
trackTimeToFirstToken: jest.fn(),
3535
trackDurationOf: jest.fn(),
36-
trackBedrockConverseMetrics: jest.fn(),
3736
getSummary: jest
3837
.fn()
3938
.mockReturnValue({ success: true, resumptionToken: 'test-resumption-token' }),

packages/sdk/server-ai/__tests__/TokenUsage.test.ts

Lines changed: 0 additions & 39 deletions
This file was deleted.

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ These examples show how to integrate LaunchDarkly AI with different providers.
1717

1818
| Provider | Example | Description |
1919
| --- | --- | --- |
20-
| Bedrock | [Converse](getting-started/bedrock/converse/) | `completionConfig` with AWS Bedrock Converse API, metrics tracking |
2120
| OpenAI | [Chat Completions](getting-started/openai/chat-completions/) | `completionConfig` with OpenAI, automatic metrics tracking |
2221
| Vercel AI | [generateText](getting-started/vercel-ai/generate-text/) | `completionConfig` with the Vercel AI SDK, metrics tracking |
2322

packages/sdk/server-ai/examples/getting-started/bedrock/converse/.env.example

Lines changed: 0 additions & 8 deletions
This file was deleted.

packages/sdk/server-ai/examples/getting-started/bedrock/converse/README.md

Lines changed: 0 additions & 29 deletions
This file was deleted.

packages/sdk/server-ai/examples/getting-started/bedrock/converse/package.json

Lines changed: 0 additions & 23 deletions
This file was deleted.

0 commit comments

Comments
 (0)