Skip to content

Commit f5a1c29

Browse files
authored
feat: Bump to LangChain 1.0 and drop community package requirement (#1311)
1 parent 778c9a2 commit f5a1c29

3 files changed

Lines changed: 14 additions & 19 deletions

File tree

packages/ai-providers/server-ai-langchain/__tests__/LangChainProvider.test.ts

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -76,12 +76,10 @@ describe('LangChainProvider', () => {
7676
describe('getAIMetricsFromResponse', () => {
7777
it('creates metrics with success=true and token usage', () => {
7878
const mockResponse = new AIMessage('Test response');
79-
mockResponse.response_metadata = {
80-
tokenUsage: {
81-
totalTokens: 100,
82-
promptTokens: 50,
83-
completionTokens: 50,
84-
},
79+
mockResponse.usage_metadata = {
80+
total_tokens: 100,
81+
input_tokens: 50,
82+
output_tokens: 50,
8583
};
8684

8785
const result = LangChainProvider.getAIMetricsFromResponse(mockResponse);

packages/ai-providers/server-ai-langchain/package.json

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -43,11 +43,10 @@
4343
"author": "LaunchDarkly",
4444
"license": "Apache-2.0",
4545
"devDependencies": {
46-
"@langchain/community": "^0.3.0",
47-
"@langchain/core": "^0.3.0",
46+
"@langchain/core": "^1.1.41",
4847
"@launchdarkly/server-sdk-ai": "^0.17.1",
4948
"@opentelemetry/api": "^1.9.0",
50-
"@traceloop/instrumentation-langchain": "^0.22.0",
49+
"@traceloop/instrumentation-langchain": "^0.26.0",
5150
"@trivago/prettier-plugin-sort-imports": "^4.1.1",
5251
"@types/jest": "^29.5.3",
5352
"@typescript-eslint/eslint-plugin": "^6.20.0",
@@ -58,19 +57,18 @@
5857
"eslint-plugin-jest": "^27.6.3",
5958
"eslint-plugin-prettier": "^5.0.0",
6059
"jest": "^29.6.1",
61-
"langchain": "^0.3.0",
60+
"langchain": "^1.3.4",
6261
"prettier": "^3.0.0",
6362
"ts-jest": "^29.1.1",
6463
"tsup": "^8.5.1",
6564
"typescript": "5.1.6"
6665
},
6766
"peerDependencies": {
68-
"@langchain/community": "^0.2.0 || ^0.3.0",
69-
"@langchain/core": "^0.2.0 || ^0.3.0",
67+
"@langchain/core": "^1.0.0",
7068
"@launchdarkly/server-sdk-ai": "^0.17.0",
7169
"@opentelemetry/api": "^1.0.0",
72-
"@traceloop/instrumentation-langchain": "^0.22.0",
73-
"langchain": "^0.2.0 || ^0.3.0"
70+
"@traceloop/instrumentation-langchain": "^0.26.0",
71+
"langchain": "^1.0.0"
7472
},
7573
"peerDependenciesMeta": {
7674
"@opentelemetry/api": {

packages/ai-providers/server-ai-langchain/src/LangChainProvider.ts

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -213,12 +213,11 @@ export class LangChainProvider extends AIProvider {
213213
static getAIMetricsFromResponse(response: AIMessage): LDAIMetrics {
214214
// Extract token usage if available
215215
let usage: LDTokenUsage | undefined;
216-
if (response?.response_metadata?.tokenUsage) {
217-
const { tokenUsage } = response.response_metadata;
216+
if (response?.usage_metadata) {
218217
usage = {
219-
total: tokenUsage.totalTokens || 0,
220-
input: tokenUsage.promptTokens || 0,
221-
output: tokenUsage.completionTokens || 0,
218+
total: response.usage_metadata.total_tokens,
219+
input: response.usage_metadata.input_tokens,
220+
output: response.usage_metadata.output_tokens,
222221
};
223222
}
224223

0 commit comments

Comments
 (0)