From 117802cbb2ba73df14f82a2ee1caee1bfe5b1ced Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arturo=20Lidue=C3=B1a?= Date: Sun, 16 Feb 2025 09:43:50 +0100 Subject: [PATCH] Pass system message to inferenceCliente.chatComplete (#211263) Closes #211257 ## Summary Regression introduced in 8.18 (https://github.com/elastic/kibana/pull/199286) We no longer pass the `system` message to the inference plugin, and thereby the LLM. This means that we are only passing user messages to the LLM. The system message is important in steering the conversation, and providing guardrails to the LLM. --- .../server/service/client/index.test.ts | 3 +++ .../observability_ai_assistant/server/service/client/index.ts | 2 ++ 2 files changed, 5 insertions(+) diff --git a/x-pack/platform/plugins/shared/observability_ai_assistant/server/service/client/index.test.ts b/x-pack/platform/plugins/shared/observability_ai_assistant/server/service/client/index.test.ts index 83cc9d9e6076..1d9a68ad0248 100644 --- a/x-pack/platform/plugins/shared/observability_ai_assistant/server/service/client/index.test.ts +++ b/x-pack/platform/plugins/shared/observability_ai_assistant/server/service/client/index.test.ts @@ -346,6 +346,7 @@ describe('Observability AI Assistant client', () => { { connectorId: 'foo', stream: true, + system: EXPECTED_STORED_SYSTEM_MESSAGE, messages: expect.arrayContaining([ { role: 'user', content: 'How many alerts do I have?' }, ]), @@ -916,6 +917,7 @@ describe('Observability AI Assistant client', () => { { connectorId: 'foo', stream: true, + system: EXPECTED_STORED_SYSTEM_MESSAGE, messages: expect.arrayContaining([ { role: 'user', content: 'How many alerts do I have?' }, ]), @@ -1077,6 +1079,7 @@ describe('Observability AI Assistant client', () => { { connectorId: 'foo', stream: true, + system: EXPECTED_STORED_SYSTEM_MESSAGE, messages: expect.arrayContaining([ { role: 'user', content: 'How many alerts do I have?' }, ]), diff --git a/x-pack/platform/plugins/shared/observability_ai_assistant/server/service/client/index.ts b/x-pack/platform/plugins/shared/observability_ai_assistant/server/service/client/index.ts index 3885057fd28c..054f9ced4848 100644 --- a/x-pack/platform/plugins/shared/observability_ai_assistant/server/service/client/index.ts +++ b/x-pack/platform/plugins/shared/observability_ai_assistant/server/service/client/index.ts @@ -508,6 +508,8 @@ export class ObservabilityAIAssistantClient { const options = { connectorId, + system: messages.find((message) => message.message.role === MessageRole.System)?.message + .content, messages: convertMessagesForInference( messages.filter((message) => message.message.role !== MessageRole.System) ),