UNPKG

@maximai/maxim-js

Version:

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

214 lines 8.56 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MaximLogger = void 0; const generation_1 = require("./components/generation"); const retrieval_1 = require("./components/retrieval"); const session_1 = require("./components/session"); const span_1 = require("./components/span"); const toolCall_1 = require("./components/toolCall"); const trace_1 = require("./components/trace"); const types_1 = require("./components/types"); const utils_1 = require("./utils"); const writer_1 = require("./writer"); class MaximLogger { constructor(params) { const { config, apiKey, baseUrl } = params; if (!config.id) { throw new Error("Logger must be initialized with id of the logger"); } this._id = config.id; this.isDebug = params.isDebug || false; this.writer = new writer_1.LogWriter({ isDebug: this.isDebug, autoFlush: config.autoFlush || true, flushInterval: config.flushIntervalSeconds || 10, baseUrl: baseUrl, apiKey: apiKey, repositoryId: config.id, cache: params.cache, raiseExceptions: params.raiseExceptions, }); } session(config) { return new session_1.Session(config, this.writer); } trace(config) { return new trace_1.Trace(config, this.writer); } get id() { return this._id; } async cleanup() { await this.writer.cleanup(); } sessionTag(sessionId, key, value) { session_1.Session.addTag_(this.writer, sessionId, key, value); } sessionEnd(sessionId, data) { session_1.Session.end_(this.writer, sessionId, data); } sessionFeedback(sessionId, feedback) { session_1.Session.feedback_(this.writer, sessionId, feedback); } sessionTrace(sessionId, config) { return session_1.Session.trace_(this.writer, sessionId, config); } sessionEvaluate(sessionId) { return session_1.Session.evaluate_(this.writer, types_1.Entity.SESSION, sessionId); } traceGeneration(traceId, config) { return trace_1.Trace.generation_(this.writer, traceId, config); } traceToolCall(traceId, config) { return trace_1.Trace.toolCall_(this.writer, traceId, config); } traceRetrieval(traceId, config) { return trace_1.Trace.retrieval_(this.writer, traceId, config); } traceOutput(traceId, output) { trace_1.Trace.output_(this.writer, traceId, output); } traceError(traceId, config) { return trace_1.Trace.error_(this.writer, traceId, config); } traceInput(traceId, input) { trace_1.Trace.input_(this.writer, traceId, input); } traceSpan(traceId, config) { return trace_1.Trace.span_(this.writer, traceId, config); } traceAddToSession(traceId, sessionId) { trace_1.Trace.addToSession_(this.writer, traceId, sessionId); } traceTag(traceId, key, value) { trace_1.Trace.addTag_(this.writer, traceId, key, value); } traceEvent(...args) { try { if (args.length === 3) { const [traceId, eventName, tags] = args; trace_1.Trace.event_(this.writer, types_1.Entity.TRACE, traceId, (0, utils_1.uniqueId)(), eventName, tags); return; } const [traceId, eventId, eventName, tags, metadata] = args; trace_1.Trace.event_(this.writer, types_1.Entity.TRACE, traceId, eventId, eventName, tags, metadata); } catch (error) { console.error(new Error(`Failed to log trace event. Please check the parameters you are passing to the traceEvent method.`)); } } traceFeedback(traceId, feedback) { trace_1.Trace.feedback_(this.writer, traceId, feedback); } traceMetadata(traceId, metadata) { trace_1.Trace.addMetadata_(this.writer, types_1.Entity.TRACE, traceId, metadata); } traceEvaluate(traceId) { return trace_1.Trace.evaluate_(this.writer, types_1.Entity.TRACE, traceId); } traceEnd(traceId, data) { trace_1.Trace.end_(this.writer, traceId, data); } generationSetModel(generationId, model) { generation_1.Generation.setModel_(this.writer, generationId, model); } generationAddTag(generationId, key, value) { generation_1.Generation.addTag_(this.writer, types_1.Entity.GENERATION, generationId, key, value); } generationAddMessage(generationId, messages) { generation_1.Generation.addMessages_(this.writer, generationId, messages); } generationSetModelParameters(generationId, modelParameters) { generation_1.Generation.setModelParameters_(this.writer, generationId, modelParameters); } generationResult(generationId, result) { generation_1.Generation.result_(this.writer, generationId, result); } generationError(generationId, error) { generation_1.Generation.error_(this.writer, generationId, error); } generationMetadata(generationId, metadata) { generation_1.Generation.addMetadata_(this.writer, types_1.Entity.GENERATION, generationId, metadata); } generationEvaluate(generationId) { return generation_1.Generation.evaluate_(this.writer, types_1.Entity.GENERATION, generationId); } generationEnd(generationId, data) { generation_1.Generation.end_(this.writer, generationId, data); } spanGeneration(spanId, config) { return span_1.Span.generation_(this.writer, spanId, config); } spanRetrieval(spanId, config) { return span_1.Span.retrieval_(this.writer, spanId, config); } spanToolCall(spanId, config) { return span_1.Span.toolCall_(this.writer, spanId, config); } spanSpan(spanId, config) { return span_1.Span.span_(this.writer, spanId, config); } spanTag(spanId, key, value) { return span_1.Span.addTag_(this.writer, spanId, key, value); } spanError(spanId, config) { return span_1.Span.error_(this.writer, spanId, config); } spanEvent(...args) { try { if (args.length === 3) { const [spanId, eventName, tags] = args; return span_1.Span.event_(this.writer, types_1.Entity.SPAN, spanId, (0, utils_1.uniqueId)(), eventName, tags); } const [spanId, eventId, eventName, tags, metadata] = args; return span_1.Span.event_(this.writer, types_1.Entity.SPAN, spanId, eventId, eventName, tags, metadata); } catch (error) { console.error(new Error(`Failed to log span event. Please check the parameters you are passing to the spanEvent method.`)); } } spanMetadata(spanId, metadata) { return span_1.Span.addMetadata_(this.writer, types_1.Entity.SPAN, spanId, metadata); } spanEvaluate(spanId) { return span_1.Span.evaluate_(this.writer, types_1.Entity.SPAN, spanId); } spanEnd(spanId, data) { return span_1.Span.end_(this.writer, spanId, data); } retrievalEnd(retrievalId) { retrieval_1.Retrieval.end_(this.writer, retrievalId); } retrievalAddTag(retrievalId, key, value) { retrieval_1.Retrieval.addTag_(this.writer, retrievalId, key, value); } retrievalInput(retrievalId, input) { retrieval_1.Retrieval.input_(this.writer, retrievalId, input); } retrievalOutput(retrievalId, output) { retrieval_1.Retrieval.output_(this.writer, retrievalId, output); } retrievalMetadata(retrievalId, metadata) { return retrieval_1.Retrieval.addMetadata_(this.writer, types_1.Entity.RETRIEVAL, retrievalId, metadata); } retrievalEvaluate(retrievalId) { return retrieval_1.Retrieval.evaluate_(this.writer, types_1.Entity.RETRIEVAL, retrievalId); } toolCallResult(toolCallId, result) { return toolCall_1.ToolCall.result_(this.writer, toolCallId, result); } toolCallError(toolCallId, error) { return toolCall_1.ToolCall.error_(this.writer, toolCallId, error); } toolCallAddTag(toolCallId, key, value) { toolCall_1.ToolCall.addTag_(this.writer, types_1.Entity.TOOL_CALL, toolCallId, key, value); } toolCallMetadata(toolCallId, metadata) { return toolCall_1.ToolCall.addMetadata_(this.writer, types_1.Entity.TOOL_CALL, toolCallId, metadata); } flush() { this.writer.flush(); } } exports.MaximLogger = MaximLogger; //# sourceMappingURL=logger.js.map