@traccia2/sdk 0.0.4 → 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +137 -2
- package/dist/integrations/langchain-callback.d.ts +22 -10
- package/dist/integrations/langchain-callback.d.ts.map +1 -1
- package/dist/integrations/langchain-callback.js +83 -10
- package/dist/integrations/langchain-callback.js.map +1 -1
- package/package.json +1 -1
- package/src/integrations/langchain-callback.ts +105 -10
package/README.md
CHANGED
|
@@ -332,10 +332,10 @@ await stopTracing();
|
|
|
332
332
|
|
|
333
333
|
#### LangChain with Callback Handler
|
|
334
334
|
|
|
335
|
-
The SDK provides a `TraciaCallbackHandler` for seamless integration with LangChain:
|
|
335
|
+
The SDK provides a `TraciaCallbackHandler` for seamless integration with LangChain. It extends LangChain's `BaseCallbackHandler` for proper type safety and interface compliance:
|
|
336
336
|
|
|
337
337
|
```typescript
|
|
338
|
-
import { startTracing,
|
|
338
|
+
import { startTracing, getTracerProvider } from '@traccia/sdk';
|
|
339
339
|
import { TraciaCallbackHandler } from '@traccia/sdk/integrations';
|
|
340
340
|
import { ChatOpenAI } from '@langchain/openai';
|
|
341
341
|
import { AgentExecutor, createOpenAIToolsAgent } from 'langchain/agents';
|
|
@@ -344,6 +344,9 @@ import { AgentExecutor, createOpenAIToolsAgent } from 'langchain/agents';
|
|
|
344
344
|
await startTracing({
|
|
345
345
|
apiKey: 'your-api-key',
|
|
346
346
|
enableConsoleExporter: true,
|
|
347
|
+
enableSpanLogging: true, // Log spans immediately as they complete
|
|
348
|
+
maxExportBatchSize: 1, // Export every span immediately
|
|
349
|
+
scheduleDelayMs: 100, // Quick flush interval
|
|
347
350
|
});
|
|
348
351
|
|
|
349
352
|
// Create callback handler for tracing
|
|
@@ -371,8 +374,140 @@ const executor = new AgentExecutor({
|
|
|
371
374
|
const result = await executor.invoke({
|
|
372
375
|
input: 'Your prompt here',
|
|
373
376
|
});
|
|
377
|
+
|
|
378
|
+
// Flush pending spans to ensure they're exported/logged
|
|
379
|
+
const provider = getTracerProvider();
|
|
380
|
+
await provider.forceFlush();
|
|
374
381
|
```
|
|
375
382
|
|
|
383
|
+
**Using with ChatOllama (Local Models):**
|
|
384
|
+
|
|
385
|
+
If you're using ChatOllama instead of ChatOpenAI for local LLM inference:
|
|
386
|
+
|
|
387
|
+
```typescript
|
|
388
|
+
import { startTracing, getTracerProvider } from '@traccia/sdk';
|
|
389
|
+
import { TraciaCallbackHandler } from '@traccia/sdk/integrations';
|
|
390
|
+
import { ChatOllama } from '@langchain/ollama';
|
|
391
|
+
|
|
392
|
+
// Initialize tracing
|
|
393
|
+
await startTracing({
|
|
394
|
+
enableConsoleExporter: true,
|
|
395
|
+
enableSpanLogging: true,
|
|
396
|
+
maxExportBatchSize: 1,
|
|
397
|
+
scheduleDelayMs: 100,
|
|
398
|
+
});
|
|
399
|
+
|
|
400
|
+
// Create callback handler
|
|
401
|
+
const traciaHandler = new TraciaCallbackHandler();
|
|
402
|
+
|
|
403
|
+
// Use with ChatOllama (local model)
|
|
404
|
+
const model = new ChatOllama({
|
|
405
|
+
model: 'mistral', // or 'llama2', 'neural-chat', etc.
|
|
406
|
+
baseUrl: 'http://localhost:11434', // Ollama server
|
|
407
|
+
callbacks: [traciaHandler], // Enable tracing
|
|
408
|
+
});
|
|
409
|
+
|
|
410
|
+
// Use the model - fully traced!
|
|
411
|
+
const response = await model.invoke({ input: 'Hello, how are you?' });
|
|
412
|
+
console.log(response);
|
|
413
|
+
|
|
414
|
+
// Flush spans
|
|
415
|
+
const provider = getTracerProvider();
|
|
416
|
+
await provider.forceFlush();
|
|
417
|
+
```
|
|
418
|
+
|
|
419
|
+
**Seeing Traces in Console:**
|
|
420
|
+
|
|
421
|
+
To see traces printed to the console immediately, use these configuration options:
|
|
422
|
+
|
|
423
|
+
```typescript
|
|
424
|
+
await startTracing({
|
|
425
|
+
enableConsoleExporter: true, // Export to console
|
|
426
|
+
enableSpanLogging: true, // Log each completed span
|
|
427
|
+
maxExportBatchSize: 1, // Export immediately (don't batch)
|
|
428
|
+
scheduleDelayMs: 100, // Flush frequently
|
|
429
|
+
});
|
|
430
|
+
```
|
|
431
|
+
|
|
432
|
+
Without these options, spans are batched and exported on a delay (default 5 seconds).
|
|
433
|
+
|
|
434
|
+
**Troubleshooting - No Traces in Console:**
|
|
435
|
+
|
|
436
|
+
If you don't see traces in the console, check:
|
|
437
|
+
|
|
438
|
+
1. **LangChain Version Compatibility:**
|
|
439
|
+
- TraciaCallbackHandler is compatible with LangChain 0.0.x, 0.1.x, 0.2.x, and 1.x
|
|
440
|
+
- Verified to work with LangChain 0.2.20
|
|
441
|
+
- Works with both `ChatOpenAI` and `ChatOllama`
|
|
442
|
+
- Check your installed version: `npm list @langchain/core`
|
|
443
|
+
|
|
444
|
+
**For ChatOllama (Ollama local models):**
|
|
445
|
+
```typescript
|
|
446
|
+
// Install Ollama integration
|
|
447
|
+
npm install @langchain/ollama
|
|
448
|
+
|
|
449
|
+
// Use with ChatOllama
|
|
450
|
+
import { ChatOllama } from '@langchain/ollama';
|
|
451
|
+
|
|
452
|
+
const handler = new TraciaCallbackHandler();
|
|
453
|
+
const model = new ChatOllama({
|
|
454
|
+
model: 'mistral',
|
|
455
|
+
baseUrl: 'http://localhost:11434',
|
|
456
|
+
callbacks: [handler], // Enable tracing
|
|
457
|
+
});
|
|
458
|
+
|
|
459
|
+
const response = await model.invoke({ input: 'Hello!' });
|
|
460
|
+
|
|
461
|
+
// Don't forget to flush!
|
|
462
|
+
const provider = getTracerProvider();
|
|
463
|
+
await provider.forceFlush();
|
|
464
|
+
```
|
|
465
|
+
|
|
466
|
+
2. **Callback Handler Configuration:**
|
|
467
|
+
```typescript
|
|
468
|
+
// Make sure the handler is passed to ALL components
|
|
469
|
+
const handler = new TraciaCallbackHandler();
|
|
470
|
+
|
|
471
|
+
const model = new ChatOpenAI({
|
|
472
|
+
callbacks: [handler], // Required for LLM
|
|
473
|
+
});
|
|
474
|
+
|
|
475
|
+
const executor = new AgentExecutor({
|
|
476
|
+
callbacks: [handler], // Required for executor
|
|
477
|
+
// ... other options
|
|
478
|
+
});
|
|
479
|
+
```
|
|
480
|
+
|
|
481
|
+
3. **Force Flush is Critical:**
|
|
482
|
+
```typescript
|
|
483
|
+
// Without this, spans may not be exported!
|
|
484
|
+
const provider = getTracerProvider();
|
|
485
|
+
await provider.forceFlush(); // Wait for all spans to flush
|
|
486
|
+
```
|
|
487
|
+
|
|
488
|
+
4. **Check Configuration:**
|
|
489
|
+
```typescript
|
|
490
|
+
// Verify these are set correctly
|
|
491
|
+
await startTracing({
|
|
492
|
+
enableSpanLogging: true, // Logs each span immediately
|
|
493
|
+
enableConsoleExporter: true, // Exports to console
|
|
494
|
+
maxExportBatchSize: 1, // Export immediately (don't batch)
|
|
495
|
+
scheduleDelayMs: 100, // Quick flush
|
|
496
|
+
});
|
|
497
|
+
```
|
|
498
|
+
|
|
499
|
+
5. **Verify Callbacks Are Being Called:**
|
|
500
|
+
- Add a console.log in your code to confirm model is being invoked
|
|
501
|
+
- Check that the handler instance is the same object passed to all components
|
|
502
|
+
- Ensure no errors are being silently caught
|
|
503
|
+
|
|
504
|
+
6. **Check Node.js Event Loop:**
|
|
505
|
+
- Spans are processed asynchronously
|
|
506
|
+
- Make sure you're not exiting the process immediately
|
|
507
|
+
- Use `await provider.forceFlush()` before process.exit()
|
|
508
|
+
|
|
509
|
+
**What Gets Traced:**
|
|
510
|
+
|
|
376
511
|
The `TraciaCallbackHandler` automatically traces:
|
|
377
512
|
|
|
378
513
|
- **LLM Calls**: Model name, temperature, max tokens, top-p/k, token counts, latency
|
|
@@ -3,25 +3,25 @@
|
|
|
3
3
|
* Integrates with LangChain's callback system to automatically instrument
|
|
4
4
|
* LLM calls, chains, agents, and tools.
|
|
5
5
|
*/
|
|
6
|
+
declare let BaseCallbackHandler: any;
|
|
6
7
|
/**
|
|
7
8
|
* LangChain Callback Handler for Traccia SDK.
|
|
8
9
|
* Automatically traces LLM calls, chains, agents, and tools.
|
|
9
10
|
*
|
|
11
|
+
* Extends LangChain's BaseCallbackHandler for proper interface compliance.
|
|
12
|
+
* Compatible with LangChain 0.0.x, 0.1.x, 0.2.x, and 1.x versions.
|
|
13
|
+
*
|
|
10
14
|
* @example
|
|
11
|
-
* import { ChatOpenAI } from 'langchain/
|
|
12
|
-
* import {
|
|
13
|
-
* import { TraciaCallbackHandler } from '@traccia/sdk/integrations/langchain';
|
|
15
|
+
* import { ChatOpenAI } from '@langchain/openai';
|
|
16
|
+
* import { TraciaCallbackHandler } from '@traccia/sdk/integrations';
|
|
14
17
|
*
|
|
15
18
|
* const handler = new TraciaCallbackHandler();
|
|
16
|
-
* const
|
|
17
|
-
* llm: new ChatOpenAI(),
|
|
18
|
-
* callbacks: [handler],
|
|
19
|
-
* });
|
|
19
|
+
* const model = new ChatOpenAI({ callbacks: [handler] });
|
|
20
20
|
*
|
|
21
|
-
* await
|
|
22
|
-
* // Automatically traced with spans for LLM
|
|
21
|
+
* const response = await model.invoke({ input: 'Hello!' });
|
|
22
|
+
* // Automatically traced with spans for LLM calls, tokens, latency, etc.
|
|
23
23
|
*/
|
|
24
|
-
export declare class TraciaCallbackHandler {
|
|
24
|
+
export declare class TraciaCallbackHandler extends BaseCallbackHandler {
|
|
25
25
|
private tracer;
|
|
26
26
|
private spanStack;
|
|
27
27
|
/**
|
|
@@ -73,5 +73,17 @@ export declare class TraciaCallbackHandler {
|
|
|
73
73
|
* Handle agent finish.
|
|
74
74
|
*/
|
|
75
75
|
handleAgentFinish(finish: any, runId: string): Promise<void>;
|
|
76
|
+
onLLMStart(llm: any, prompts: string[], runId: string, parentRunId?: string): Promise<void>;
|
|
77
|
+
onLLMEnd(output: any, runId: string): Promise<void>;
|
|
78
|
+
onLLMError(error: Error, runId: string): Promise<void>;
|
|
79
|
+
onChainStart(chain: any, inputs: any, runId: string, parentRunId?: string): Promise<void>;
|
|
80
|
+
onChainEnd(output: any, runId: string): Promise<void>;
|
|
81
|
+
onChainError(error: Error, runId: string): Promise<void>;
|
|
82
|
+
onToolStart(tool: any, input: string, runId: string, parentRunId?: string): Promise<void>;
|
|
83
|
+
onToolEnd(output: string, runId: string): Promise<void>;
|
|
84
|
+
onToolError(error: Error, runId: string): Promise<void>;
|
|
85
|
+
onAgentAction(action: any, runId: string): Promise<void>;
|
|
86
|
+
onAgentFinish(finish: any, runId: string): Promise<void>;
|
|
76
87
|
}
|
|
88
|
+
export {};
|
|
77
89
|
//# sourceMappingURL=langchain-callback.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"langchain-callback.d.ts","sourceRoot":"","sources":["../../src/integrations/langchain-callback.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"langchain-callback.d.ts","sourceRoot":"","sources":["../../src/integrations/langchain-callback.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,26 +7,53 @@
|
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
8
|
exports.TraciaCallbackHandler = void 0;
|
|
9
9
|
const auto_1 = require("../auto");
|
|
10
|
+
// Try to import BaseCallbackHandler from different LangChain versions
|
|
11
|
+
let BaseCallbackHandler = class {
|
|
12
|
+
constructor() {
|
|
13
|
+
this.ignoreAgent = false;
|
|
14
|
+
this.ignoreChain = false;
|
|
15
|
+
this.ignoreLLM = false;
|
|
16
|
+
this.ignoreRetriever = false;
|
|
17
|
+
this.ignoreToolUse = false;
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
try {
|
|
21
|
+
// Try LangChain 0.2.x+
|
|
22
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
23
|
+
const { BaseCallbackHandler: Handler } = require('@langchain/core/callbacks/base');
|
|
24
|
+
BaseCallbackHandler = Handler;
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
try {
|
|
28
|
+
// Try older LangChain versions
|
|
29
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
30
|
+
const { BaseCallbackHandler: Handler } = require('langchain/callbacks');
|
|
31
|
+
BaseCallbackHandler = Handler;
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
// Fallback to basic implementation - user likely has LangChain installed
|
|
35
|
+
}
|
|
36
|
+
}
|
|
10
37
|
/**
|
|
11
38
|
* LangChain Callback Handler for Traccia SDK.
|
|
12
39
|
* Automatically traces LLM calls, chains, agents, and tools.
|
|
13
40
|
*
|
|
41
|
+
* Extends LangChain's BaseCallbackHandler for proper interface compliance.
|
|
42
|
+
* Compatible with LangChain 0.0.x, 0.1.x, 0.2.x, and 1.x versions.
|
|
43
|
+
*
|
|
14
44
|
* @example
|
|
15
|
-
* import { ChatOpenAI } from 'langchain/
|
|
16
|
-
* import {
|
|
17
|
-
* import { TraciaCallbackHandler } from '@traccia/sdk/integrations/langchain';
|
|
45
|
+
* import { ChatOpenAI } from '@langchain/openai';
|
|
46
|
+
* import { TraciaCallbackHandler } from '@traccia/sdk/integrations';
|
|
18
47
|
*
|
|
19
48
|
* const handler = new TraciaCallbackHandler();
|
|
20
|
-
* const
|
|
21
|
-
* llm: new ChatOpenAI(),
|
|
22
|
-
* callbacks: [handler],
|
|
23
|
-
* });
|
|
49
|
+
* const model = new ChatOpenAI({ callbacks: [handler] });
|
|
24
50
|
*
|
|
25
|
-
* await
|
|
26
|
-
* // Automatically traced with spans for LLM
|
|
51
|
+
* const response = await model.invoke({ input: 'Hello!' });
|
|
52
|
+
* // Automatically traced with spans for LLM calls, tokens, latency, etc.
|
|
27
53
|
*/
|
|
28
|
-
class TraciaCallbackHandler {
|
|
54
|
+
class TraciaCallbackHandler extends BaseCallbackHandler {
|
|
29
55
|
constructor() {
|
|
56
|
+
super(...arguments);
|
|
30
57
|
this.tracer = (0, auto_1.getTracer)('langchain');
|
|
31
58
|
this.spanStack = new Map();
|
|
32
59
|
}
|
|
@@ -93,6 +120,7 @@ class TraciaCallbackHandler {
|
|
|
93
120
|
if (span) {
|
|
94
121
|
try {
|
|
95
122
|
// Try multiple ways to get token usage
|
|
123
|
+
// OpenAI format
|
|
96
124
|
const tokenUsage = output?.llmOutput?.token_usage ||
|
|
97
125
|
output?.token_usage ||
|
|
98
126
|
output?.metadata?.token_usage;
|
|
@@ -118,6 +146,16 @@ class TraciaCallbackHandler {
|
|
|
118
146
|
span.setAttribute('output_length', firstGeneration[0].text.length);
|
|
119
147
|
}
|
|
120
148
|
}
|
|
149
|
+
else if (output?.message?.content) {
|
|
150
|
+
// Ollama format (uses message.content)
|
|
151
|
+
const content = output.message.content;
|
|
152
|
+
const contentStr = typeof content === 'string' ? content : JSON.stringify(content);
|
|
153
|
+
span.setAttribute('output_length', contentStr.length);
|
|
154
|
+
}
|
|
155
|
+
else if (typeof output === 'string') {
|
|
156
|
+
// Direct string output
|
|
157
|
+
span.setAttribute('output_length', output.length);
|
|
158
|
+
}
|
|
121
159
|
// Capture finish reason if available
|
|
122
160
|
if (output?.llmOutput?.finish_reason) {
|
|
123
161
|
span.setAttribute('finish_reason', output.llmOutput.finish_reason);
|
|
@@ -274,6 +312,41 @@ class TraciaCallbackHandler {
|
|
|
274
312
|
this.spanStack.delete(runId);
|
|
275
313
|
}
|
|
276
314
|
}
|
|
315
|
+
// LangChain uses 'on*' prefix for callback methods
|
|
316
|
+
// Provide aliases for compatibility
|
|
317
|
+
async onLLMStart(llm, prompts, runId, parentRunId) {
|
|
318
|
+
return this.handleLLMStart(llm, prompts, runId, parentRunId);
|
|
319
|
+
}
|
|
320
|
+
async onLLMEnd(output, runId) {
|
|
321
|
+
return this.handleLLMEnd(output, runId);
|
|
322
|
+
}
|
|
323
|
+
async onLLMError(error, runId) {
|
|
324
|
+
return this.handleLLMError(error, runId);
|
|
325
|
+
}
|
|
326
|
+
async onChainStart(chain, inputs, runId, parentRunId) {
|
|
327
|
+
return this.handleChainStart(chain, inputs, runId, parentRunId);
|
|
328
|
+
}
|
|
329
|
+
async onChainEnd(output, runId) {
|
|
330
|
+
return this.handleChainEnd(output, runId);
|
|
331
|
+
}
|
|
332
|
+
async onChainError(error, runId) {
|
|
333
|
+
return this.handleChainError(error, runId);
|
|
334
|
+
}
|
|
335
|
+
async onToolStart(tool, input, runId, parentRunId) {
|
|
336
|
+
return this.handleToolStart(tool, input, runId, parentRunId);
|
|
337
|
+
}
|
|
338
|
+
async onToolEnd(output, runId) {
|
|
339
|
+
return this.handleToolEnd(output, runId);
|
|
340
|
+
}
|
|
341
|
+
async onToolError(error, runId) {
|
|
342
|
+
return this.handleToolError(error, runId);
|
|
343
|
+
}
|
|
344
|
+
async onAgentAction(action, runId) {
|
|
345
|
+
return this.handleAgentAction(action, runId);
|
|
346
|
+
}
|
|
347
|
+
async onAgentFinish(finish, runId) {
|
|
348
|
+
return this.handleAgentFinish(finish, runId);
|
|
349
|
+
}
|
|
277
350
|
}
|
|
278
351
|
exports.TraciaCallbackHandler = TraciaCallbackHandler;
|
|
279
352
|
//# sourceMappingURL=langchain-callback.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"langchain-callback.js","sourceRoot":"","sources":["../../src/integrations/langchain-callback.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAGH,kCAAoC;AAEpC
|
|
1
|
+
{"version":3,"file":"langchain-callback.js","sourceRoot":"","sources":["../../src/integrations/langchain-callback.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -7,25 +7,49 @@
|
|
|
7
7
|
import { ISpan } from '../types';
|
|
8
8
|
import { getTracer } from '../auto';
|
|
9
9
|
|
|
10
|
+
// Try to import BaseCallbackHandler from different LangChain versions
|
|
11
|
+
let BaseCallbackHandler: any = class {
|
|
12
|
+
ignoreAgent = false;
|
|
13
|
+
ignoreChain = false;
|
|
14
|
+
ignoreLLM = false;
|
|
15
|
+
ignoreRetriever = false;
|
|
16
|
+
ignoreToolUse = false;
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
try {
|
|
20
|
+
// Try LangChain 0.2.x+
|
|
21
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
22
|
+
const { BaseCallbackHandler: Handler } = require('@langchain/core/callbacks/base');
|
|
23
|
+
BaseCallbackHandler = Handler;
|
|
24
|
+
} catch {
|
|
25
|
+
try {
|
|
26
|
+
// Try older LangChain versions
|
|
27
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
28
|
+
const { BaseCallbackHandler: Handler } = require('langchain/callbacks');
|
|
29
|
+
BaseCallbackHandler = Handler;
|
|
30
|
+
} catch {
|
|
31
|
+
// Fallback to basic implementation - user likely has LangChain installed
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
10
35
|
/**
|
|
11
36
|
* LangChain Callback Handler for Traccia SDK.
|
|
12
37
|
* Automatically traces LLM calls, chains, agents, and tools.
|
|
13
38
|
*
|
|
39
|
+
* Extends LangChain's BaseCallbackHandler for proper interface compliance.
|
|
40
|
+
* Compatible with LangChain 0.0.x, 0.1.x, 0.2.x, and 1.x versions.
|
|
41
|
+
*
|
|
14
42
|
* @example
|
|
15
|
-
* import { ChatOpenAI } from 'langchain/
|
|
16
|
-
* import {
|
|
17
|
-
* import { TraciaCallbackHandler } from '@traccia/sdk/integrations/langchain';
|
|
43
|
+
* import { ChatOpenAI } from '@langchain/openai';
|
|
44
|
+
* import { TraciaCallbackHandler } from '@traccia/sdk/integrations';
|
|
18
45
|
*
|
|
19
46
|
* const handler = new TraciaCallbackHandler();
|
|
20
|
-
* const
|
|
21
|
-
* llm: new ChatOpenAI(),
|
|
22
|
-
* callbacks: [handler],
|
|
23
|
-
* });
|
|
47
|
+
* const model = new ChatOpenAI({ callbacks: [handler] });
|
|
24
48
|
*
|
|
25
|
-
* await
|
|
26
|
-
* // Automatically traced with spans for LLM
|
|
49
|
+
* const response = await model.invoke({ input: 'Hello!' });
|
|
50
|
+
* // Automatically traced with spans for LLM calls, tokens, latency, etc.
|
|
27
51
|
*/
|
|
28
|
-
export class TraciaCallbackHandler {
|
|
52
|
+
export class TraciaCallbackHandler extends BaseCallbackHandler {
|
|
29
53
|
private tracer = getTracer('langchain');
|
|
30
54
|
private spanStack: Map<string, ISpan> = new Map();
|
|
31
55
|
|
|
@@ -101,6 +125,7 @@ export class TraciaCallbackHandler {
|
|
|
101
125
|
if (span) {
|
|
102
126
|
try {
|
|
103
127
|
// Try multiple ways to get token usage
|
|
128
|
+
// OpenAI format
|
|
104
129
|
const tokenUsage =
|
|
105
130
|
output?.llmOutput?.token_usage ||
|
|
106
131
|
output?.token_usage ||
|
|
@@ -127,6 +152,14 @@ export class TraciaCallbackHandler {
|
|
|
127
152
|
if (firstGeneration?.[0]?.text) {
|
|
128
153
|
span.setAttribute('output_length', firstGeneration[0].text.length);
|
|
129
154
|
}
|
|
155
|
+
} else if (output?.message?.content) {
|
|
156
|
+
// Ollama format (uses message.content)
|
|
157
|
+
const content = output.message.content;
|
|
158
|
+
const contentStr = typeof content === 'string' ? content : JSON.stringify(content);
|
|
159
|
+
span.setAttribute('output_length', contentStr.length);
|
|
160
|
+
} else if (typeof output === 'string') {
|
|
161
|
+
// Direct string output
|
|
162
|
+
span.setAttribute('output_length', output.length);
|
|
130
163
|
}
|
|
131
164
|
|
|
132
165
|
// Capture finish reason if available
|
|
@@ -307,4 +340,66 @@ export class TraciaCallbackHandler {
|
|
|
307
340
|
this.spanStack.delete(runId);
|
|
308
341
|
}
|
|
309
342
|
}
|
|
343
|
+
|
|
344
|
+
// LangChain uses 'on*' prefix for callback methods
|
|
345
|
+
// Provide aliases for compatibility
|
|
346
|
+
public async onLLMStart(
|
|
347
|
+
llm: any,
|
|
348
|
+
prompts: string[],
|
|
349
|
+
runId: string,
|
|
350
|
+
parentRunId?: string
|
|
351
|
+
): Promise<void> {
|
|
352
|
+
return this.handleLLMStart(llm, prompts, runId, parentRunId);
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
public async onLLMEnd(output: any, runId: string): Promise<void> {
|
|
356
|
+
return this.handleLLMEnd(output, runId);
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
public async onLLMError(error: Error, runId: string): Promise<void> {
|
|
360
|
+
return this.handleLLMError(error, runId);
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
public async onChainStart(
|
|
364
|
+
chain: any,
|
|
365
|
+
inputs: any,
|
|
366
|
+
runId: string,
|
|
367
|
+
parentRunId?: string
|
|
368
|
+
): Promise<void> {
|
|
369
|
+
return this.handleChainStart(chain, inputs, runId, parentRunId);
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
public async onChainEnd(output: any, runId: string): Promise<void> {
|
|
373
|
+
return this.handleChainEnd(output, runId);
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
public async onChainError(error: Error, runId: string): Promise<void> {
|
|
377
|
+
return this.handleChainError(error, runId);
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
public async onToolStart(
|
|
381
|
+
tool: any,
|
|
382
|
+
input: string,
|
|
383
|
+
runId: string,
|
|
384
|
+
parentRunId?: string
|
|
385
|
+
): Promise<void> {
|
|
386
|
+
return this.handleToolStart(tool, input, runId, parentRunId);
|
|
387
|
+
}
|
|
388
|
+
|
|
389
|
+
public async onToolEnd(output: string, runId: string): Promise<void> {
|
|
390
|
+
return this.handleToolEnd(output, runId);
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
public async onToolError(error: Error, runId: string): Promise<void> {
|
|
394
|
+
return this.handleToolError(error, runId);
|
|
395
|
+
}
|
|
396
|
+
|
|
397
|
+
public async onAgentAction(action: any, runId: string): Promise<void> {
|
|
398
|
+
return this.handleAgentAction(action, runId);
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
public async onAgentFinish(finish: any, runId: string): Promise<void> {
|
|
402
|
+
return this.handleAgentFinish(finish, runId);
|
|
403
|
+
}
|
|
310
404
|
}
|
|
405
|
+
|