diff --git a/packages/ai-providers/server-ai-langchain/__tests__/LangChainProvider.test.ts b/packages/ai-providers/server-ai-langchain/__tests__/LangChainProvider.test.ts index 7ebfb27f48..c2f284a6a5 100644 --- a/packages/ai-providers/server-ai-langchain/__tests__/LangChainProvider.test.ts +++ b/packages/ai-providers/server-ai-langchain/__tests__/LangChainProvider.test.ts @@ -76,12 +76,10 @@ describe('LangChainProvider', () => { describe('getAIMetricsFromResponse', () => { it('creates metrics with success=true and token usage', () => { const mockResponse = new AIMessage('Test response'); - mockResponse.response_metadata = { - tokenUsage: { - totalTokens: 100, - promptTokens: 50, - completionTokens: 50, - }, + mockResponse.usage_metadata = { + total_tokens: 100, + input_tokens: 50, + output_tokens: 50, }; const result = LangChainProvider.getAIMetricsFromResponse(mockResponse); diff --git a/packages/ai-providers/server-ai-langchain/package.json b/packages/ai-providers/server-ai-langchain/package.json index 1295c625f3..f9466ef2b5 100644 --- a/packages/ai-providers/server-ai-langchain/package.json +++ b/packages/ai-providers/server-ai-langchain/package.json @@ -43,11 +43,10 @@ "author": "LaunchDarkly", "license": "Apache-2.0", "devDependencies": { - "@langchain/community": "^0.3.0", - "@langchain/core": "^0.3.0", + "@langchain/core": "^1.1.41", "@launchdarkly/server-sdk-ai": "^0.17.1", "@opentelemetry/api": "^1.9.0", - "@traceloop/instrumentation-langchain": "^0.22.0", + "@traceloop/instrumentation-langchain": "^0.26.0", "@trivago/prettier-plugin-sort-imports": "^4.1.1", "@types/jest": "^29.5.3", "@typescript-eslint/eslint-plugin": "^6.20.0", @@ -58,19 +57,18 @@ "eslint-plugin-jest": "^27.6.3", "eslint-plugin-prettier": "^5.0.0", "jest": "^29.6.1", - "langchain": "^0.3.0", + "langchain": "^1.3.4", "prettier": "^3.0.0", "ts-jest": "^29.1.1", "tsup": "^8.5.1", "typescript": "5.1.6" }, "peerDependencies": { - "@langchain/community": "^0.2.0 || ^0.3.0", - "@langchain/core": "^0.2.0 || ^0.3.0", + "@langchain/core": "^1.0.0", "@launchdarkly/server-sdk-ai": "^0.17.0", "@opentelemetry/api": "^1.0.0", - "@traceloop/instrumentation-langchain": "^0.22.0", - "langchain": "^0.2.0 || ^0.3.0" + "@traceloop/instrumentation-langchain": "^0.26.0", + "langchain": "^1.0.0" }, "peerDependenciesMeta": { "@opentelemetry/api": { diff --git a/packages/ai-providers/server-ai-langchain/src/LangChainProvider.ts b/packages/ai-providers/server-ai-langchain/src/LangChainProvider.ts index fbaa38dfa2..c8ff337ff4 100644 --- a/packages/ai-providers/server-ai-langchain/src/LangChainProvider.ts +++ b/packages/ai-providers/server-ai-langchain/src/LangChainProvider.ts @@ -213,12 +213,11 @@ export class LangChainProvider extends AIProvider { static getAIMetricsFromResponse(response: AIMessage): LDAIMetrics { // Extract token usage if available let usage: LDTokenUsage | undefined; - if (response?.response_metadata?.tokenUsage) { - const { tokenUsage } = response.response_metadata; + if (response?.usage_metadata) { usage = { - total: tokenUsage.totalTokens || 0, - input: tokenUsage.promptTokens || 0, - output: tokenUsage.completionTokens || 0, + total: response.usage_metadata.total_tokens, + input: response.usage_metadata.input_tokens, + output: response.usage_metadata.output_tokens, }; }