parea-ai
Version:
Client SDK library to connect to Parea AI.
51 lines (50 loc) • 1.86 kB
JavaScript
;
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;