UNPKG

@maximai/maxim-js

Version:

Maxim AI JS SDK. Visit https://getmaxim.ai for more info.

93 lines (92 loc) 6.68 kB
import { BaseCallbackHandler, BaseCallbackHandlerInput } from "@langchain/core/callbacks/base"; import { MaximLogger } from "../../../../index"; type HandleLLMStartParameters = Parameters<NonNullable<BaseCallbackHandler["handleLLMStart"]>>; type HandleLLMEndParameters = Parameters<NonNullable<BaseCallbackHandler["handleLLMEnd"]>>; type HandleLLMErrorParameters = Parameters<NonNullable<BaseCallbackHandler["handleLLMError"]>>; type HandleChatModelStartParameters = Parameters<NonNullable<BaseCallbackHandler["handleChatModelStart"]>>; type HandleRetrieverStartParameters = Parameters<NonNullable<BaseCallbackHandler["handleRetrieverStart"]>>; type HandleRetrieverEndParameters = Parameters<NonNullable<BaseCallbackHandler["handleRetrieverEnd"]>>; type HandleChainStartParameters = Parameters<NonNullable<BaseCallbackHandler["handleChainStart"]>>; type HandleChainEndParameters = Parameters<NonNullable<BaseCallbackHandler["handleChainEnd"]>>; type HandleToolStartParameters = Parameters<NonNullable<BaseCallbackHandler["handleToolStart"]>>; type HandleToolEndParameters = Parameters<NonNullable<BaseCallbackHandler["handleToolEnd"]>>; type HandleToolErrorParameters = Parameters<NonNullable<BaseCallbackHandler["handleToolError"]>>; type HandleChainErrorParameters = Parameters<NonNullable<BaseCallbackHandler["handleChainError"]>>; /** * LangChain callback handler for automatic observability with the Maxim platform. * * Extends LangChain's BaseCallbackHandler to automatically trace and log * LangChain application executions including LLM calls, chains, tools, and * retrievers. Seamlessly integrates with existing LangChain applications * to provide comprehensive observability without code changes. * * @class MaximLangchainTracer * @extends {BaseCallbackHandler} * @example * import { MaximLangchainTracer } from '@maximai/maxim-js'; * import { ChatOpenAI } from '@langchain/openai'; * * // Basic setup * const maxim = new Maxim({ apiKey: 'your-api-key' }); * const logger = await maxim.logger({ id: 'langchain-app' }); * const tracer = new MaximLangchainTracer(logger); * * // Use with LangChain models * const model = new ChatOpenAI({ * openAIApiKey: process.env.OPENAI_API_KEY, * modelName: "gpt-4o-mini", * callbacks: [tracer], * metadata: { * maxim: { * generationName: "basic-openai-chat", * generationTags: { testType: "basic", model: "openai" } * }, * }, * }); * * const response = await model.invoke("Hello world"); * // Automatically logged to Maxim */ export declare class MaximLangchainTracer extends BaseCallbackHandler { private readonly logger; readonly name = "MaximLangchainTracer"; private containerManager; /** * Creates a new MaximLangchainTracer instance. * * @param logger - The Maxim logger instance to use for tracing * @param input - Optional LangChain callback handler configuration * @example * const maxim = new Maxim({ apiKey: 'your-api-key' }); * const logger = await maxim.logger({ id: 'my-app' }); * const tracer = new MaximLangchainTracer(logger); * * @example * // With custom callback configuration * const tracer = new MaximLangchainTracer(logger, { * ignoreLLM: false, * ignoreChain: false, * ignoreAgent: false * }); */ constructor(logger: MaximLogger, input?: BaseCallbackHandlerInput); /** * Safely serializes any value to string, handling circular references and unsupported types like BigInt */ private safeStringify; private getMetadataClassFromRecord; private getContainer; handleChainStart(_chain: HandleChainStartParameters[0], inputs: HandleChainStartParameters[1], runId: HandleChainStartParameters[2], parentRunId?: HandleChainStartParameters[3], tags?: HandleChainStartParameters[4], metadata?: HandleChainStartParameters[5], _runType?: HandleChainStartParameters[6], runName?: HandleChainStartParameters[7]): void; handleChainEnd(outputs: HandleChainEndParameters[0], runId: HandleChainEndParameters[1], _parentRunId?: HandleChainEndParameters[2], tags?: HandleChainEndParameters[3], _kwargs?: HandleChainEndParameters[4]): void; handleChainError(err: HandleChainErrorParameters[0], runId: HandleChainErrorParameters[1], _parentRunId?: HandleChainErrorParameters[2], tags?: HandleChainErrorParameters[3]): void; handleLLMStart(llm: HandleLLMStartParameters[0], prompts: HandleLLMStartParameters[1], runId: HandleLLMStartParameters[2], parentRunId?: HandleLLMStartParameters[3], extraParams?: HandleLLMStartParameters[4], tags?: HandleLLMStartParameters[5], metadata?: HandleLLMStartParameters[6], name?: HandleLLMStartParameters[7]): Promise<void>; handleLLMEnd(output: HandleLLMEndParameters[0], runId: HandleLLMEndParameters[1], parentRunId?: HandleLLMEndParameters[2], tags?: HandleLLMEndParameters[3]): void; handleLLMError(err: HandleLLMErrorParameters[0], runId: HandleLLMErrorParameters[1], parentRunId?: HandleLLMErrorParameters[2], tags?: HandleLLMErrorParameters[3]): void; handleChatModelStart(llm: HandleChatModelStartParameters[0], messages: HandleChatModelStartParameters[1], runId: HandleChatModelStartParameters[2], parentRunId?: HandleChatModelStartParameters[3], extraParams?: HandleChatModelStartParameters[4], tags?: HandleChatModelStartParameters[5], metadata?: HandleChatModelStartParameters[6], runName?: HandleChatModelStartParameters[7]): Promise<void>; handleRetrieverStart(_retriever: HandleRetrieverStartParameters[0], query: HandleRetrieverStartParameters[1], runId: HandleRetrieverStartParameters[2], parentRunId?: HandleRetrieverStartParameters[3], tags?: HandleRetrieverStartParameters[4], metadata?: HandleRetrieverStartParameters[5], name?: HandleRetrieverStartParameters[6]): void; handleRetrieverEnd(documents: HandleRetrieverEndParameters[0], runId: HandleRetrieverEndParameters[1], parentRunId?: HandleRetrieverEndParameters[2], tags?: HandleRetrieverEndParameters[3]): void; handleToolStart(tool: HandleToolStartParameters[0], input: HandleToolStartParameters[1], runId: HandleToolStartParameters[2], parentRunId?: HandleToolStartParameters[3], tags?: HandleToolStartParameters[4], metadata?: HandleToolStartParameters[5], runName?: HandleToolStartParameters[6]): void; handleToolEnd(output: HandleToolEndParameters[0], runId: HandleToolEndParameters[1], parentRunId?: HandleToolEndParameters[2], tags?: HandleToolEndParameters[3]): void; handleToolError(error: HandleToolErrorParameters[0], runId: HandleToolErrorParameters[1], parentRunId?: HandleToolErrorParameters[2], tags?: HandleToolErrorParameters[3]): void; } export {};