diff --git a/config/serverless.es.yml b/config/serverless.es.yml index 73748cf4343e8..0107fbfcf2cf1 100644 --- a/config/serverless.es.yml +++ b/config/serverless.es.yml @@ -114,10 +114,10 @@ xpack.searchQueryRules.enabled: true ## Search Connectors in stack management xpack.contentConnectors.ui.enabled: false -# Elastic Managed LLM +# Elastic Managed LLMs xpack.actions.preconfigured: - Elastic-Managed-LLM: - name: Elastic Managed LLM + General-Purpose-LLM-v1: + name: General Purpose LLM v1 actionTypeId: .inference exposeConfig: true config: @@ -126,3 +126,23 @@ xpack.actions.preconfigured: inferenceId: ".rainbow-sprinkles-elastic" providerConfig: model_id: "rainbow-sprinkles" + General-Purpose-LLM-v2: + name: General Purpose LLM v2 + actionTypeId: .inference + exposeConfig: true + config: + provider: "elastic" + taskType: "chat_completion" + inferenceId: ".gp-llm-v2-chat_completion" + providerConfig: + model_id: "gp-llm-v2" + General-Purpose-LLM-v3: + name: General Purpose LLM v3 + actionTypeId: .inference + exposeConfig: true + config: + provider: "elastic" + taskType: "chat_completion" + inferenceId: ".gp-llm-v3-chat_completion" + providerConfig: + model_id: "gp-llm-v3" diff --git a/config/serverless.oblt.complete.yml b/config/serverless.oblt.complete.yml index f1a68b39df09c..348b2f04933dd 100644 --- a/config/serverless.oblt.complete.yml +++ b/config/serverless.oblt.complete.yml @@ -23,15 +23,35 @@ xpack.features.overrides: ### Workflows Management should be moved from Analytics category to the Observability one. workflowsManagement.category: 'observability' -# Elastic Managed LLM +# Elastic Managed LLMs xpack.actions.preconfigured: - Elastic-Managed-LLM: - name: Elastic Managed LLM + General-Purpose-LLM-v1: + name: General Purpose LLM v1 actionTypeId: .inference exposeConfig: true config: - provider: 'elastic' - taskType: 'chat_completion' - inferenceId: '.rainbow-sprinkles-elastic' + provider: "elastic" + taskType: "chat_completion" + inferenceId: ".rainbow-sprinkles-elastic" providerConfig: - model_id: 'rainbow-sprinkles' + model_id: "rainbow-sprinkles" + General-Purpose-LLM-v2: + name: General Purpose LLM v2 + actionTypeId: .inference + exposeConfig: true + config: + provider: "elastic" + taskType: "chat_completion" + inferenceId: ".gp-llm-v2-chat_completion" + providerConfig: + model_id: "gp-llm-v2" + General-Purpose-LLM-v3: + name: General Purpose LLM v3 + actionTypeId: .inference + exposeConfig: true + config: + provider: "elastic" + taskType: "chat_completion" + inferenceId: ".gp-llm-v3-chat_completion" + providerConfig: + model_id: "gp-llm-v3" diff --git a/config/serverless.security.complete.yml b/config/serverless.security.complete.yml index abfeec062cf24..2c98bf7866e1b 100644 --- a/config/serverless.security.complete.yml +++ b/config/serverless.security.complete.yml @@ -7,10 +7,10 @@ xpack.features.overrides: ### Workflows Management should be moved from Analytics category to the Security one. workflowsManagement.category: "security" -# Elastic Managed LLM +# Elastic Managed LLMs xpack.actions.preconfigured: - Elastic-Managed-LLM: - name: Elastic Managed LLM + General-Purpose-LLM-v1: + name: General Purpose LLM v1 actionTypeId: .inference exposeConfig: true config: @@ -19,3 +19,23 @@ xpack.actions.preconfigured: inferenceId: ".rainbow-sprinkles-elastic" providerConfig: model_id: "rainbow-sprinkles" + General-Purpose-LLM-v2: + name: General Purpose LLM v2 + actionTypeId: .inference + exposeConfig: true + config: + provider: "elastic" + taskType: "chat_completion" + inferenceId: ".gp-llm-v2-chat_completion" + providerConfig: + model_id: "gp-llm-v2" + General-Purpose-LLM-v3: + name: General Purpose LLM v3 + actionTypeId: .inference + exposeConfig: true + config: + provider: "elastic" + taskType: "chat_completion" + inferenceId: ".gp-llm-v3-chat_completion" + providerConfig: + model_id: "gp-llm-v3" diff --git a/config/serverless.security.search_ai_lake.yml b/config/serverless.security.search_ai_lake.yml index 79ff1abca7c00..2766bb1e079f0 100644 --- a/config/serverless.security.search_ai_lake.yml +++ b/config/serverless.security.search_ai_lake.yml @@ -94,15 +94,35 @@ xpack.fleet.integrationsHomeOverride: '/app/security/configurations/integrations xpack.fleet.prereleaseEnabledByDefault: true xpack.fleet.internal.registry.searchAiLakePackageAllowlistEnabled: true -# Elastic Managed LLM +# Elastic Managed LLMs xpack.actions.preconfigured: - Elastic-Managed-LLM: - name: Elastic Managed LLM + General-Purpose-LLM-v1: + name: General Purpose LLM v1 actionTypeId: .inference exposeConfig: true config: - provider: 'elastic' - taskType: 'chat_completion' - inferenceId: '.rainbow-sprinkles-elastic' + provider: "elastic" + taskType: "chat_completion" + inferenceId: ".rainbow-sprinkles-elastic" providerConfig: - model_id: 'rainbow-sprinkles' + model_id: "rainbow-sprinkles" + General-Purpose-LLM-v2: + name: General Purpose LLM v2 + actionTypeId: .inference + exposeConfig: true + config: + provider: "elastic" + taskType: "chat_completion" + inferenceId: ".gp-llm-v2-chat_completion" + providerConfig: + model_id: "gp-llm-v2" + General-Purpose-LLM-v3: + name: General Purpose LLM v3 + actionTypeId: .inference + exposeConfig: true + config: + provider: "elastic" + taskType: "chat_completion" + inferenceId: ".gp-llm-v3-chat_completion" + providerConfig: + model_id: "gp-llm-v3" diff --git a/config/serverless.workplaceai.yml b/config/serverless.workplaceai.yml index ec731b1bd3ee1..04d770fca66f9 100644 --- a/config/serverless.workplaceai.yml +++ b/config/serverless.workplaceai.yml @@ -29,10 +29,10 @@ xpack.contentConnectors.enabled: false ## Disable Kibana Product Intercept xpack.product_intercept.enabled: false -# Elastic Managed LLM +# Elastic Managed LLMs xpack.actions.preconfigured: - Elastic-Managed-LLM: - name: Elastic Managed LLM + General-Purpose-LLM-v1: + name: General Purpose LLM v1 actionTypeId: .inference exposeConfig: true config: @@ -41,3 +41,23 @@ xpack.actions.preconfigured: inferenceId: ".rainbow-sprinkles-elastic" providerConfig: model_id: "rainbow-sprinkles" + General-Purpose-LLM-v2: + name: General Purpose LLM v2 + actionTypeId: .inference + exposeConfig: true + config: + provider: "elastic" + taskType: "chat_completion" + inferenceId: ".gp-llm-v2-chat_completion" + providerConfig: + model_id: "gp-llm-v2" + General-Purpose-LLM-v3: + name: General Purpose LLM v3 + actionTypeId: .inference + exposeConfig: true + config: + provider: "elastic" + taskType: "chat_completion" + inferenceId: ".gp-llm-v3-chat_completion" + providerConfig: + model_id: "gp-llm-v3" diff --git a/x-pack/platform/packages/shared/kbn-elastic-assistant/impl/assistant/helpers.ts b/x-pack/platform/packages/shared/kbn-elastic-assistant/impl/assistant/helpers.ts index ff704f0bd0ecf..8ada4916d3e09 100644 --- a/x-pack/platform/packages/shared/kbn-elastic-assistant/impl/assistant/helpers.ts +++ b/x-pack/platform/packages/shared/kbn-elastic-assistant/impl/assistant/helpers.ts @@ -38,7 +38,7 @@ export const getMessageFromRawResponse = ( } }; -const ELASTIC_LLM_CONNECTOR_ID = 'Elastic-Managed-LLM'; +const ELASTIC_LLM_CONNECTOR_IDS = ['Elastic-Managed-LLM', 'General-Purpose-LLM-v1']; /** * Returns a default connector if there is only one connector @@ -67,7 +67,7 @@ export const getDefaultConnector = ( // In case the default connector is not set or is invalid, return the prioritized connector const prioritizedConnectors = [...validConnectors].sort((a, b) => { const priority = (connector: (typeof validConnectors)[number]) => { - if (connector.id === ELASTIC_LLM_CONNECTOR_ID) return 0; + if (ELASTIC_LLM_CONNECTOR_IDS.includes(connector.id)) return 0; if ( connector.apiProvider === OpenAiProviderType.OpenAi || connector.apiProvider === OpenAiProviderType.AzureAi diff --git a/x-pack/platform/plugins/shared/fleet/cypress/tasks/api_calls/connectors.ts b/x-pack/platform/plugins/shared/fleet/cypress/tasks/api_calls/connectors.ts index 2b27fc90f19ec..06559c1a47822 100644 --- a/x-pack/platform/plugins/shared/fleet/cypress/tasks/api_calls/connectors.ts +++ b/x-pack/platform/plugins/shared/fleet/cypress/tasks/api_calls/connectors.ts @@ -25,7 +25,12 @@ export const request = ({ ...options, }); }; -export const INTERNAL_INFERENCE_CONNECTORS = ['Elastic-Managed-LLM']; +export const INTERNAL_INFERENCE_CONNECTORS = [ + 'Elastic-Managed-LLM', + 'General-Purpose-LLM-v1', + 'General-Purpose-LLM-v2', + 'General-Purpose-LLM-v3', +]; export const INTERNAL_CLOUD_CONNECTORS = ['Elastic-Cloud-SMTP']; export const getConnectors = () => diff --git a/x-pack/solutions/security/plugins/security_solution/public/management/cypress/tasks/insights.ts b/x-pack/solutions/security/plugins/security_solution/public/management/cypress/tasks/insights.ts index e008c56a99d25..4055f2a0183fa 100644 --- a/x-pack/solutions/security/plugins/security_solution/public/management/cypress/tasks/insights.ts +++ b/x-pack/solutions/security/plugins/security_solution/public/management/cypress/tasks/insights.ts @@ -17,7 +17,12 @@ import { } from '../../../../common/endpoint/constants'; const INTERNAL_CLOUD_CONNECTORS = ['Elastic-Cloud-SMTP']; -const INTERNAL_INFERENCE_CONNECTORS = ['Elastic-Managed-LLM']; +const INTERNAL_INFERENCE_CONNECTORS = [ + 'Elastic-Managed-LLM', + 'General-Purpose-LLM-v1', + 'General-Purpose-LLM-v2', + 'General-Purpose-LLM-v3', +]; const INTERNAL_CONNECTORS = [...INTERNAL_CLOUD_CONNECTORS, ...INTERNAL_INFERENCE_CONNECTORS]; export const createBedrockAIConnector = (connectorName?: string) =>