36 lines
1022 B
TypeScript
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}`,
|
|
};
|
|
}
|
|
}
|
|
}
|