From 4c230335f28f463940060846fb8fa1d470b57fe8 Mon Sep 17 00:00:00 2001 From: Carlos Marchal Date: Tue, 4 Nov 2025 19:42:13 +0100 Subject: [PATCH] fix(llma): eval retrieval performance (#40861) --- ...ines--pipeline-destination-page--light.png | Bin 111129 -> 111101 bytes frontend/src/lib/api.ts | 2 +- .../services/temporal.service.test.ts | 25 +++++++++--------- .../services/temporal.service.ts | 8 +++++- .../ingestion-queues/evaluation-scheduler.ts | 3 ++- .../temporal/llm_analytics/run_evaluation.py | 9 +++++-- .../llm_analytics/test_run_evaluation.py | 10 +++++-- .../backend/api/evaluation_runs.py | 3 +++ .../backend/api/test/test_evaluation_runs.py | 4 +++ .../frontend/LLMAnalyticsTraceScene.tsx | 7 ++++- .../frontend/components/EvalsTabContent.tsx | 20 +++++++++++--- .../components/EvaluationRunModal.tsx | 10 +++++-- .../frontend/llmEvaluationExecutionLogic.ts | 9 +++++-- 13 files changed, 82 insertions(+), 28 deletions(-) diff --git a/frontend/__snapshots__/scenes-app-data-pipelines--pipeline-destination-page--light.png b/frontend/__snapshots__/scenes-app-data-pipelines--pipeline-destination-page--light.png index 77339b9eec634972dc3338f9cf01435de5c69ac1..53f216329798ce538844901c77a3fa6d1d5e762a 100644 GIT binary patch delta 74232 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

>Z>=PLTUZusmTmV+XDbWY}+ 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 delta 73556 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 diff --git a/frontend/src/lib/api.ts b/frontend/src/lib/api.ts index e26f22d2a5..4e6a1476cc 100644 --- a/frontend/src/lib/api.ts +++ b/frontend/src/lib/api.ts @@ -4374,7 +4374,7 @@ const api = { }, evaluationRuns: { - async create(data: { evaluation_id: string; target_event_id: string }): Promise<{ + async create(data: { evaluation_id: string; target_event_id: string; timestamp: string }): Promise<{ workflow_id: string status: string evaluation: { id: string; name: string } diff --git a/plugin-server/src/llm-analytics/services/temporal.service.test.ts b/plugin-server/src/llm-analytics/services/temporal.service.test.ts index b58925749c..8c95bcbfb6 100644 --- a/plugin-server/src/llm-analytics/services/temporal.service.test.ts +++ b/plugin-server/src/llm-analytics/services/temporal.service.test.ts @@ -47,7 +47,7 @@ describe('TemporalService', () => { describe('connection management', () => { it('creates client with correct config', async () => { - await service.startEvaluationRunWorkflow('test', 'test') + await service.startEvaluationRunWorkflow('test', 'test', '2024-01-01T00:00:00Z') expect(Connection.connect).toHaveBeenCalledWith({ address: 'localhost:7233', @@ -61,7 +61,7 @@ describe('TemporalService', () => { hub.TEMPORAL_CLIENT_KEY = 'client-key' const newService = new TemporalService(hub) - await newService.startEvaluationRunWorkflow('test', 'test') + await newService.startEvaluationRunWorkflow('test', 'test', '2024-01-01T00:00:00Z') expect(Connection.connect).toHaveBeenCalledWith({ address: 'localhost:7233', @@ -76,7 +76,7 @@ describe('TemporalService', () => { }) it('disconnects client properly', async () => { - await service.startEvaluationRunWorkflow('test', 'test') + await service.startEvaluationRunWorkflow('test', 'test', '2024-01-01T00:00:00Z') await service.disconnect() expect(mockConnection.close).toHaveBeenCalled() @@ -85,7 +85,7 @@ describe('TemporalService', () => { describe('workflow triggering', () => { it('starts evaluation run workflow with correct parameters', async () => { - await service.startEvaluationRunWorkflow('eval-123', 'event-456') + await service.startEvaluationRunWorkflow('eval-123', 'event-456', '2024-01-01T00:00:00Z') expect(mockClient.workflow.start).toHaveBeenCalledWith('run-evaluation', { taskQueue: 'general-purpose-task-queue', @@ -95,14 +95,15 @@ describe('TemporalService', () => { { evaluation_id: 'eval-123', target_event_id: 'event-456', + timestamp: '2024-01-01T00:00:00Z', }, ], }) }) it('generates deterministic workflow IDs', async () => { - await service.startEvaluationRunWorkflow('eval-123', 'event-456') - await service.startEvaluationRunWorkflow('eval-123', 'event-456') + await service.startEvaluationRunWorkflow('eval-123', 'event-456', '2024-01-01T00:00:00Z') + await service.startEvaluationRunWorkflow('eval-123', 'event-456', '2024-01-01T00:00:00Z') const calls = (mockClient.workflow.start as jest.Mock).mock.calls const workflowId1 = calls[0][1].workflowId @@ -113,8 +114,8 @@ describe('TemporalService', () => { }) it('generates different workflow IDs for different events', async () => { - await service.startEvaluationRunWorkflow('eval-123', 'event-1') - await service.startEvaluationRunWorkflow('eval-123', 'event-2') + await service.startEvaluationRunWorkflow('eval-123', 'event-1', '2024-01-01T00:00:00Z') + await service.startEvaluationRunWorkflow('eval-123', 'event-2', '2024-01-01T00:00:00Z') const calls = (mockClient.workflow.start as jest.Mock).mock.calls const workflowId1 = calls[0][1].workflowId @@ -126,7 +127,7 @@ describe('TemporalService', () => { }) it('returns workflow handle on success', async () => { - const handle = await service.startEvaluationRunWorkflow('eval-123', 'event-456') + const handle = await service.startEvaluationRunWorkflow('eval-123', 'event-456', '2024-01-01T00:00:00Z') expect(handle).toBeDefined() expect(handle).toBe(mockWorkflowHandle) @@ -135,9 +136,9 @@ describe('TemporalService', () => { it('throws on workflow start failure', async () => { ;(mockClient.workflow.start as jest.Mock).mockRejectedValue(new Error('Temporal unavailable')) - await expect(service.startEvaluationRunWorkflow('eval-123', 'event-456')).rejects.toThrow( - 'Temporal unavailable' - ) + await expect( + service.startEvaluationRunWorkflow('eval-123', 'event-456', '2024-01-01T00:00:00Z') + ).rejects.toThrow('Temporal unavailable') }) }) }) diff --git a/plugin-server/src/llm-analytics/services/temporal.service.ts b/plugin-server/src/llm-analytics/services/temporal.service.ts index 871218d546..64558e7be3 100644 --- a/plugin-server/src/llm-analytics/services/temporal.service.ts +++ b/plugin-server/src/llm-analytics/services/temporal.service.ts @@ -93,7 +93,11 @@ export class TemporalService { return client } - async startEvaluationRunWorkflow(evaluationId: string, targetEventId: string): Promise { + async startEvaluationRunWorkflow( + evaluationId: string, + targetEventId: string, + timestamp: string + ): Promise { const client = await this.ensureConnected() const workflowId = `${evaluationId}-${targetEventId}-ingestion` @@ -103,6 +107,7 @@ export class TemporalService { { evaluation_id: evaluationId, target_event_id: targetEventId, + timestamp: timestamp, }, ], taskQueue: EVALUATION_TASK_QUEUE, @@ -116,6 +121,7 @@ export class TemporalService { workflowId, evaluationId, targetEventId, + timestamp, }) return handle diff --git a/plugin-server/src/main/ingestion-queues/evaluation-scheduler.ts b/plugin-server/src/main/ingestion-queues/evaluation-scheduler.ts index 810f7f09c3..58b8645392 100644 --- a/plugin-server/src/main/ingestion-queues/evaluation-scheduler.ts +++ b/plugin-server/src/main/ingestion-queues/evaluation-scheduler.ts @@ -69,6 +69,7 @@ export function filterAndParseMessages(messages: Message[]): RawKafkaEvent[] { } }) .filter((event): event is RawKafkaEvent => event !== null) + .filter((event) => event.event === '$ai_generation') } export function groupEventsByTeam(events: RawKafkaEvent[]): Map { @@ -288,6 +289,6 @@ async function processEventEvaluationMatch( evaluationMatchesCounter.labels({ outcome: 'matched' }).inc() - await temporalService.startEvaluationRunWorkflow(evaluationDefinition.id, event.uuid) + await temporalService.startEvaluationRunWorkflow(evaluationDefinition.id, event.uuid, event.timestamp) evaluationSchedulerEventsProcessed.labels({ status: 'success' }).inc() } diff --git a/posthog/temporal/llm_analytics/run_evaluation.py b/posthog/temporal/llm_analytics/run_evaluation.py index b103881116..d785ad1248 100644 --- a/posthog/temporal/llm_analytics/run_evaluation.py +++ b/posthog/temporal/llm_analytics/run_evaluation.py @@ -30,6 +30,7 @@ DEFAULT_JUDGE_MODEL = "gpt-4" class RunEvaluationInputs: evaluation_id: str target_event_id: str + timestamp: str @temporalio.activity.defn @@ -45,12 +46,15 @@ async def fetch_target_event_activity(inputs: RunEvaluationInputs, team_id: int) distinct_id, person_id FROM events - WHERE uuid = %(event_id)s AND team_id = %(team_id)s + WHERE team_id = %(team_id)s + AND toDate(timestamp) = toDate(parseDateTimeBestEffort(%(target_timestamp)s)) + AND event = '$ai_generation' + AND uuid = %(event_id)s LIMIT 1 """ result = await database_sync_to_async(sync_execute, thread_sensitive=False)( - query, {"event_id": inputs.target_event_id, "team_id": team_id} + query, {"event_id": inputs.target_event_id, "team_id": team_id, "target_timestamp": inputs.timestamp} ) if not result: @@ -239,6 +243,7 @@ class RunEvaluationWorkflow(PostHogWorkflow): return RunEvaluationInputs( evaluation_id=inputs[0], target_event_id=inputs[1], + timestamp=inputs[2], ) @temporalio.workflow.run diff --git a/posthog/temporal/llm_analytics/test_run_evaluation.py b/posthog/temporal/llm_analytics/test_run_evaluation.py index 7f8e88f614..4d5134cfe7 100644 --- a/posthog/temporal/llm_analytics/test_run_evaluation.py +++ b/posthog/temporal/llm_analytics/test_run_evaluation.py @@ -60,7 +60,10 @@ class TestRunEvaluationWorkflow: ) ] - inputs = RunEvaluationInputs(evaluation_id=str(evaluation.id), target_event_id=event_id) + timestamp = datetime.now().isoformat() + inputs = RunEvaluationInputs( + evaluation_id=str(evaluation.id), target_event_id=event_id, timestamp=timestamp + ) result = await fetch_target_event_activity(inputs, team.id) @@ -80,7 +83,10 @@ class TestRunEvaluationWorkflow: evaluation = setup_data["evaluation"] team = setup_data["team"] - inputs = RunEvaluationInputs(evaluation_id=str(evaluation.id), target_event_id=str(uuid.uuid4())) + timestamp = datetime.now().isoformat() + inputs = RunEvaluationInputs( + evaluation_id=str(evaluation.id), target_event_id=str(uuid.uuid4()), timestamp=timestamp + ) with patch("posthog.temporal.llm_analytics.run_evaluation.Evaluation.objects.get") as mock_get: mock_evaluation = MagicMock() diff --git a/products/llm_analytics/backend/api/evaluation_runs.py b/products/llm_analytics/backend/api/evaluation_runs.py index 8fc33a37cb..1daedcc773 100644 --- a/products/llm_analytics/backend/api/evaluation_runs.py +++ b/products/llm_analytics/backend/api/evaluation_runs.py @@ -22,6 +22,7 @@ logger = structlog.get_logger(__name__) class EvaluationRunRequestSerializer(serializers.Serializer): evaluation_id = serializers.UUIDField(required=True) target_event_id = serializers.UUIDField(required=True) + timestamp = serializers.DateTimeField(required=True) class EvaluationRunViewSet(TeamAndOrgViewSetMixin, viewsets.ViewSet): @@ -41,6 +42,7 @@ class EvaluationRunViewSet(TeamAndOrgViewSetMixin, viewsets.ViewSet): evaluation_id = str(serializer.validated_data["evaluation_id"]) target_event_id = str(serializer.validated_data["target_event_id"]) + timestamp = serializer.validated_data["timestamp"].isoformat() # Verify evaluation exists and belongs to this team try: @@ -52,6 +54,7 @@ class EvaluationRunViewSet(TeamAndOrgViewSetMixin, viewsets.ViewSet): inputs = RunEvaluationInputs( evaluation_id=evaluation_id, target_event_id=target_event_id, + timestamp=timestamp, ) # Generate unique workflow ID diff --git a/products/llm_analytics/backend/api/test/test_evaluation_runs.py b/products/llm_analytics/backend/api/test/test_evaluation_runs.py index 4f3b531cb4..fe189f07f3 100644 --- a/products/llm_analytics/backend/api/test/test_evaluation_runs.py +++ b/products/llm_analytics/backend/api/test/test_evaluation_runs.py @@ -1,4 +1,5 @@ import uuid +from datetime import datetime from posthog.test.base import APIBaseTest from unittest.mock import AsyncMock, MagicMock, patch @@ -38,6 +39,7 @@ class TestEvaluationRunViewSet(APIBaseTest): { "evaluation_id": str(self.evaluation.id), "target_event_id": target_event_id, + "timestamp": datetime.now().isoformat(), }, ) @@ -63,6 +65,7 @@ class TestEvaluationRunViewSet(APIBaseTest): { "evaluation_id": str(uuid.uuid4()), "target_event_id": str(uuid.uuid4()), + "timestamp": datetime.now().isoformat(), }, ) @@ -97,6 +100,7 @@ class TestEvaluationRunViewSet(APIBaseTest): { "evaluation_id": str(other_evaluation.id), "target_event_id": str(uuid.uuid4()), + "timestamp": datetime.now().isoformat(), }, ) diff --git a/products/llm_analytics/frontend/LLMAnalyticsTraceScene.tsx b/products/llm_analytics/frontend/LLMAnalyticsTraceScene.tsx index 04add421c8..e3a8865ad7 100644 --- a/products/llm_analytics/frontend/LLMAnalyticsTraceScene.tsx +++ b/products/llm_analytics/frontend/LLMAnalyticsTraceScene.tsx @@ -792,7 +792,12 @@ const EventContent = React.memo( { key: TraceViewMode.Evals, label: 'Evaluations', - content: , + content: ( + + ), }, ] : []), diff --git a/products/llm_analytics/frontend/components/EvalsTabContent.tsx b/products/llm_analytics/frontend/components/EvalsTabContent.tsx index c7ee517334..e9e351cefe 100644 --- a/products/llm_analytics/frontend/components/EvalsTabContent.tsx +++ b/products/llm_analytics/frontend/components/EvalsTabContent.tsx @@ -8,15 +8,27 @@ import { generationEvaluationRunsLogic } from '../generationEvaluationRunsLogic' import { llmEvaluationExecutionLogic } from '../llmEvaluationExecutionLogic' import { GenerationEvalRunsTable } from './GenerationEvalRunsTable' -export function EvalsTabContent({ generationEventId }: { generationEventId: string }): JSX.Element { +export function EvalsTabContent({ + generationEventId, + timestamp, +}: { + generationEventId: string + timestamp: string +}): JSX.Element { return ( - + ) } -function EvalsTabContentInner({ generationEventId }: { generationEventId: string }): JSX.Element { +function EvalsTabContentInner({ + generationEventId, + timestamp, +}: { + generationEventId: string + timestamp: string +}): JSX.Element { const { evaluations, evaluationsLoading } = useValues(llmEvaluationsLogic) const { runEvaluation } = useActions(llmEvaluationExecutionLogic) const { evaluationRunLoading } = useValues(llmEvaluationExecutionLogic) @@ -48,7 +60,7 @@ function EvalsTabContentInner({ generationEventId }: { generationEventId: string icon={} onClick={() => { if (selectedEvaluationId) { - runEvaluation(selectedEvaluationId, generationEventId) + runEvaluation(selectedEvaluationId, generationEventId, timestamp) } }} loading={evaluationRunLoading} diff --git a/products/llm_analytics/frontend/components/EvaluationRunModal.tsx b/products/llm_analytics/frontend/components/EvaluationRunModal.tsx index 813b9ab9a5..5aee867401 100644 --- a/products/llm_analytics/frontend/components/EvaluationRunModal.tsx +++ b/products/llm_analytics/frontend/components/EvaluationRunModal.tsx @@ -9,10 +9,16 @@ import { llmEvaluationExecutionLogic } from '../llmEvaluationExecutionLogic' interface EvaluationRunModalProps { visible: boolean targetEventId: string + timestamp: string onClose: () => void } -export function EvaluationRunModal({ visible, targetEventId, onClose }: EvaluationRunModalProps): JSX.Element { +export function EvaluationRunModal({ + visible, + targetEventId, + timestamp, + onClose, +}: EvaluationRunModalProps): JSX.Element { const { evaluations, evaluationsLoading } = useValues(llmEvaluationsLogic) const { runEvaluation } = useActions(llmEvaluationExecutionLogic) const { evaluationRunLoading } = useValues(llmEvaluationExecutionLogic) @@ -21,7 +27,7 @@ export function EvaluationRunModal({ visible, targetEventId, onClose }: Evaluati const handleRun = (): void => { if (selectedEvaluationId) { - runEvaluation(selectedEvaluationId, targetEventId) + runEvaluation(selectedEvaluationId, targetEventId, timestamp) onClose() } } diff --git a/products/llm_analytics/frontend/llmEvaluationExecutionLogic.ts b/products/llm_analytics/frontend/llmEvaluationExecutionLogic.ts index a0b6a693ef..7513ffa93c 100644 --- a/products/llm_analytics/frontend/llmEvaluationExecutionLogic.ts +++ b/products/llm_analytics/frontend/llmEvaluationExecutionLogic.ts @@ -13,13 +13,17 @@ export const llmEvaluationExecutionLogic = kea( values: [teamLogic, ['currentTeamId']], })), actions({ - runEvaluation: (evaluationId: string, targetEventId: string) => ({ evaluationId, targetEventId }), + runEvaluation: (evaluationId: string, targetEventId: string, timestamp: string) => ({ + evaluationId, + targetEventId, + timestamp, + }), }), loaders(({ values }) => ({ evaluationRun: [ null as { workflow_id: string } | null, { - runEvaluation: async ({ evaluationId, targetEventId }) => { + runEvaluation: async ({ evaluationId, targetEventId, timestamp }) => { if (!values.currentTeamId) { throw new Error('No team selected') } @@ -28,6 +32,7 @@ export const llmEvaluationExecutionLogic = kea( const response = await api.evaluationRuns.create({ evaluation_id: evaluationId, target_event_id: targetEventId, + timestamp: timestamp, }) lemonToast.success('Evaluation started successfully')