Files
llm-observability-mcp/src/controllers/posthog-llm.controller.ts

36 lines
1022 B
TypeScript

import { Logger } from '../utils/logger.util.js';
import { ControllerResponse } from '../types/common.types.js';
import postHogLlmService from '../services/posthog-llm.service.js';
import { PostHogLlmInputSchemaType } from '../types/posthog-llm.types.js';
/**
* Controller for PostHog LLM observability
*/
export class PostHogController {
/**
* Capture LLM observability data
*/
static async capture(
data: PostHogLlmInputSchemaType,
): Promise<ControllerResponse> {
const logger = Logger.forContext('posthog-llm.controller', 'capture');
logger.debug('Capturing LLM observability data', data);
try {
await postHogLlmService.capture(data);
return {
content: 'Event captured successfully.',
};
} catch (error) {
logger.error('Error capturing event:', error);
const errorMessage =
error instanceof Error ? error.message : 'Unknown error';
logger.error('Error capturing event:', errorMessage);
return {
content: `Failed to capture event: ${errorMessage}`,
};
}
}
}