UNPKG

parea-ai

Version:

Client SDK library to connect to Parea AI.

51 lines (50 loc) 1.86 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PareaAILangchainTracer = void 0; const types_1 = require("../../types"); const parea_logger_1 = require("../../parea_logger"); const base_1 = require("@langchain/core/tracers/base"); /** * A tracer class for LangChain integration with Parea AI. * @extends BaseTracer * @implements LangChainTracerFields */ class PareaAILangchainTracer extends base_1.BaseTracer { /** * Creates an instance of PareaAILangchainTracer. * @param {LangChainTracerFields} fields - The fields to initialize the tracer with. */ constructor(fields = {}) { super(fields); this.name = 'parea_ai_langchain_tracer'; const { exampleId, projectName } = fields; this.projectName = projectName ?? process.env.LANGCHAIN_PROJECT ?? 'default'; this.exampleId = exampleId; this.client = parea_logger_1.pareaLogger; } /** * Retrieves the parent trace ID. * @returns {Promise<string>} A promise that resolves to the parent trace ID. */ async getParentTraceId() { return this.parentTraceId; } /** * Persists a LangChain run by recording it as a vendor log. * @param {LangchainRun} _run - The LangChain run to persist. * @returns {Promise<void>} A promise that resolves when the run is persisted. * @throws {Error} If there's an error recording the log. */ async persistRun(_run) { this.parentTraceId = _run.id; try { // fire and forget // noinspection ES6MissingAwait this.client.recordVendorLog(_run, types_1.TraceIntegrations.LANGCHAIN); } catch (e) { console.error(`Error recording log for trace ${_run.id}: ${e}`); } } } exports.PareaAILangchainTracer = PareaAILangchainTracer;