[AI Infra] Fix Observability AI assistant product docs missing multilingual support#224274
[AI Infra] Fix Observability AI assistant product docs missing multilingual support#224274darnautov merged 50 commits intoelastic:mainfrom
Conversation
7849fef to
079bdd5
Compare
…back to default ELSER. Surface up error if artifact not available with the inference.
079bdd5 to
132c0e6
Compare
|
/ci |
| [REACT_QUERY_KEYS.INSTALL_PRODUCT_DOC], | ||
| () => { | ||
| return productDocBase!.installation.install(); | ||
| (inferenceId?: string) => { |
There was a problem hiding this comment.
Imo this should be required. Any scenarios where we don't want to pass inferenceId?
| (inferenceId?: string) => { | |
| (inferenceId: string) => { |
There was a problem hiding this comment.
Here it's because we will always fallback to ELSER by default, but we can make it a strict enforcement to pass in the inferenceId.
| id: ENSURE_DOC_UP_TO_DATE_TASK_ID, | ||
| taskType: ENSURE_DOC_UP_TO_DATE_TASK_TYPE, | ||
| params: {}, | ||
| params: { inferenceId }, |
There was a problem hiding this comment.
AFAIK ensureScheduled tasks are uniquely scheduled by ID. Meaning that if you have different sources installing for different inferenceId at the same time, only one will be scheduled. Given security solution and the o11y assistant may call it at the same time at startup, this may be an issue
There was a problem hiding this comment.
So, I really don't think that allowing API consumers to directly control which inferenceId to use when installing the product doc is a good idea. This may lead to the product doc being installed multiple times for different models (e.g security solution and o11y assistant using different models on a deployment - which will occurs in the PR current state given given security solution will still use the default elser), and add a lot of complexity in the installation /management logic.
Why not instead having a single Kibana configuration property? That way, customers (or us during testing) can still control which model to use, but we're making sure there is only one single installation of the product doc (e.g security solution and o11y can't select different models). This seems to answer the initial need, while keeping everything more simple and resilient, WDYT?
|
https://github.com/elastic/obs-ai-assistant-team/issues/300 is a follow-up issues that depends on the work in this PR. |
When the inferenceId for the knowledge base changes, we need to update the inferenceId for the product docs. How can we do that if the |
… not the default ELSER, installation status logic
| if (!response.installed) { | ||
| throw new Error('Installation did not complete successfully'); | ||
| throw new Error( | ||
| `Installation did not complete successfully.\n${response.failureReason ?? ''}` |
There was a problem hiding this comment.
There was a problem hiding this comment.
Yeah this is coming from cloud bucket where the artifact is missing. I can remove that message entirely.
|
|
||
| export function ChangeKbModel({ knowledgeBase }: { knowledgeBase: UseKnowledgeBaseResult }) { | ||
| const { overlays } = useKibana().services; | ||
| const { selectedInferenceId, setSelectedInferenceId } = useInferenceId(); |
There was a problem hiding this comment.
Do we need useInferenceId? Can't we get the current inference id from knowledgeBase: knowledgeBase.status.value.currentInferenceId ?
|
|
||
| export function ProductDocEntry() { | ||
| const { overlays } = useKibana().services; | ||
| const { selectedInferenceId } = useInferenceId(); |
There was a problem hiding this comment.
Can you use
| const { selectedInferenceId } = useInferenceId(); | |
| const knowledgeBase = useKnowledgeBase(); |
and then knowledgeBase.status.value.currentInferenceId?
There was a problem hiding this comment.
Initially this is what I did, but the UX was confusing. So when you switch to a different model, I wanted to show the product base for that inference is not installed yet. If we still use currently deployed the info is outdated. But happy to switch it back to your suggestion.
There was a problem hiding this comment.
@sorenlouv Here's the difference for the install doc status. This is with the current approach with the useInferenceId
Screen.Recording.2025-06-27.at.12.59.50.mov
And this is with the knowledgeBase.status.value.currentInferenceId
Screen.Recording.2025-06-27.at.12.59.09.mov
There was a problem hiding this comment.
I suggest going with const knowledgeBase = useKnowledgeBase();. It's the simpler option and I don't believe the UX is worse.
❌ Manual testing failedI tried running the command in the PR description: which returns Afterwards I tried installing the product docs via the UI. It just shows a spinner "Installing..." indefinitely. In the terminal I see these errors: I assume the error is because I was unable to run the node script. Is that something I need to do because I am a dev and this is in development, or do we expect customers to run this command as well? |
|
I was able to test this after adding the following to kibana.yml: |
|
@elasticmachine merge upstream |
stephmilovic
left a comment
There was a problem hiding this comment.
LGTM! Thanks for the fix
🤖 GitHub commentsExpand to view the GitHub comments
Just comment with:
|
|
Starting backport for target branches: 8.19, 9.1 https://github.com/elastic/kibana/actions/runs/16047278927 |
|
Starting backport for target branches: 8.19, 9.1 https://github.com/elastic/kibana/actions/runs/16047284396 |
💚 Build Succeeded
Metrics [docs]Module Count
Public APIs missing comments
Async chunks
Page load bundle
Saved Objects .kibana field count
Unknown metric groupsAPI count
History
cc @qn895 |
💔 All backports failed
Manual backportTo create the backport manually run: Questions ?Please refer to the Backport tool documentation |
1 similar comment
💔 All backports failed
Manual backportTo create the backport manually run: Questions ?Please refer to the Backport tool documentation |
…ingual support (elastic#224274) ## Summary This PR fixes elastic#222176, and rewired the productDoc installation process to accept an `inferenceId` argument to the productDocBase installation API. It: - Allows for concurrent installation of the product docs with two different models: The default ELSER and the multilingual E5. Kibana will only install the one the user needs, but has capacity for other models if user needs both of them (i.e. ELSER for Security AI Assistant and multilingual E5 for Observability AI Assistant). - Modifies the script that generates the artifacts to also allows inferenceId to be passed in. ``` node scripts/build_product_doc_artifacts.js --product-name=security --stack-version=8.18 --inference-id=.multilingual-e5-small-elasticsearch ``` - In parallel with this PR, deploys the public multilingual product doc artifacts for 8.18 - It modifies the installation logic to append the inferenceId's to the target index name's (to distinguish it from the ELSER default) and define the mapping of the target index to use the E5's model_settings - Surfaces up error if there's an error with the installation For example, if there's no corresponding artifact available, or if the artifact fails to fetch. Before:  After, it will prompt the user:  ## Note for Reviewers: - **kibana-core**: Saved object 'product-doc-install-status' was updated to add a new field `inference_id` - **Security Gen AI**: With the newly required inferenceId parameter to the installation endpoints, by default it will use ELSER '.elser-2-elasticsearch' - **Observability AI Assistant**: There are 2 at least todos remaining: 1) Make to sure pass the inferenceId to the retrieveDocumentation so that it reroutes to the right index https://github.com/elastic/kibana/pull/224274/files#diff-e393e350cf2449f8b756cad947fc8a902fddf6e6b30f1363750d469fc7d81b61R74 2) Handle the change in inference model selection for Product Doc. Here this is triggering an update to the product doc installation when user clicks Update model: https://github.com/elastic/kibana/pull/224274/files#diff-7d84fc1bf3106fe3b0cb357c800faefc1b96b853beeb74711f1c3c623ae901b9R151 - ### Checklist Check the PR satisfies following conditions. Reviewers should verify this PR satisfies this list as well. - [x] Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/main/src/platform/packages/shared/kbn-i18n/README.md) - [x] [Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html) was added for features that require explanation or tutorials - [x] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios - [ ] If a plugin configuration key changed, check if it needs to be allowlisted in the cloud and added to the [docker list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker) - [ ] This was checked for breaking HTTP API changes, and any breaking changes have been approved by the breaking-change committee. The `release_note:breaking` label should be applied in these situations. - [ ] [Flaky Test Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was used on any tests changed - [ ] The PR description includes the appropriate Release Notes section, and the correct `release_note:*` label is applied per the [guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process) ### Identify risks Does this PR introduce any risks? For example, consider risks like hard to test bugs, performance regression, potential of data loss. Describe the risk, its severity, and mitigation for each identified risk. Invite stakeholders and evaluate how to proceed before merging. - [ ] [See some risk examples](https://github.com/elastic/kibana/blob/main/RISK_MATRIX.mdx) - [ ] ... --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> Co-authored-by: Dima Arnautov <dmitrii.arnautov@elastic.co> Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com> (cherry picked from commit 4ff731d) # Conflicts: # x-pack/solutions/observability/plugins/observability_ai_assistant_app/server/functions/documentation.ts
💚 All backports created successfully
Note: Successful backport PRs will be merged automatically after passing CI. Questions ?Please refer to the Backport tool documentation |
…ingual support (elastic#224274) ## Summary This PR fixes elastic#222176, and rewired the productDoc installation process to accept an `inferenceId` argument to the productDocBase installation API. It: - Allows for concurrent installation of the product docs with two different models: The default ELSER and the multilingual E5. Kibana will only install the one the user needs, but has capacity for other models if user needs both of them (i.e. ELSER for Security AI Assistant and multilingual E5 for Observability AI Assistant). - Modifies the script that generates the artifacts to also allows inferenceId to be passed in. ``` node scripts/build_product_doc_artifacts.js --product-name=security --stack-version=8.18 --inference-id=.multilingual-e5-small-elasticsearch ``` - In parallel with this PR, deploys the public multilingual product doc artifacts for 8.18 - It modifies the installation logic to append the inferenceId's to the target index name's (to distinguish it from the ELSER default) and define the mapping of the target index to use the E5's model_settings - Surfaces up error if there's an error with the installation For example, if there's no corresponding artifact available, or if the artifact fails to fetch. Before:  After, it will prompt the user:  ## Note for Reviewers: - **kibana-core**: Saved object 'product-doc-install-status' was updated to add a new field `inference_id` - **Security Gen AI**: With the newly required inferenceId parameter to the installation endpoints, by default it will use ELSER '.elser-2-elasticsearch' - **Observability AI Assistant**: There are 2 at least todos remaining: 1) Make to sure pass the inferenceId to the retrieveDocumentation so that it reroutes to the right index https://github.com/elastic/kibana/pull/224274/files#diff-e393e350cf2449f8b756cad947fc8a902fddf6e6b30f1363750d469fc7d81b61R74 2) Handle the change in inference model selection for Product Doc. Here this is triggering an update to the product doc installation when user clicks Update model: https://github.com/elastic/kibana/pull/224274/files#diff-7d84fc1bf3106fe3b0cb357c800faefc1b96b853beeb74711f1c3c623ae901b9R151 - ### Checklist Check the PR satisfies following conditions. Reviewers should verify this PR satisfies this list as well. - [x] Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/main/src/platform/packages/shared/kbn-i18n/README.md) - [x] [Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html) was added for features that require explanation or tutorials - [x] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios - [ ] If a plugin configuration key changed, check if it needs to be allowlisted in the cloud and added to the [docker list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker) - [ ] This was checked for breaking HTTP API changes, and any breaking changes have been approved by the breaking-change committee. The `release_note:breaking` label should be applied in these situations. - [ ] [Flaky Test Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was used on any tests changed - [ ] The PR description includes the appropriate Release Notes section, and the correct `release_note:*` label is applied per the [guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process) ### Identify risks Does this PR introduce any risks? For example, consider risks like hard to test bugs, performance regression, potential of data loss. Describe the risk, its severity, and mitigation for each identified risk. Invite stakeholders and evaluate how to proceed before merging. - [ ] [See some risk examples](https://github.com/elastic/kibana/blob/main/RISK_MATRIX.mdx) - [ ] ... --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> Co-authored-by: Dima Arnautov <dmitrii.arnautov@elastic.co> Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com> (cherry picked from commit 4ff731d) # Conflicts: # src/core/server/integration_tests/ci_checks/saved_objects/check_registered_types.test.ts # x-pack/packages/ai-infra/product-doc-artifact-builder/src/build_artifacts.ts # x-pack/solutions/observability/plugins/observability_ai_assistant_app/scripts/evaluation/scenarios/documentation/index.spec.ts # x-pack/solutions/observability/plugins/observability_ai_assistant_app/server/functions/documentation.ts
…multilingual support (#224274) (#226368) # Backport This will backport the following commits from `main` to `9.1`: - [[AI Infra] Fix Observability AI assistant product docs missing multilingual support (#224274)](#224274) <!--- Backport version: 10.0.1 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sorenlouv/backport) <!--BACKPORT [{"author":{"name":"Quynh Nguyen (Quinn)","email":"43350163+qn895@users.noreply.github.com"},"sourceCommit":{"committedDate":"2025-07-03T09:53:13Z","message":"[AI Infra] Fix Observability AI assistant product docs missing multilingual support (#224274)\n\n## Summary\n\nThis PR fixes #222176, and\nrewired the productDoc installation process to accept an `inferenceId`\nargument to the productDocBase installation API. It:\n\n- Allows for concurrent installation of the product docs with two\ndifferent models: The default ELSER and the multilingual E5. Kibana will\nonly install the one the user needs, but has capacity for other models\nif user needs both of them (i.e. ELSER for Security AI Assistant and\nmultilingual E5 for Observability AI Assistant).\n \n- Modifies the script that generates the artifacts to also allows\ninferenceId to be passed in.\n\n```\nnode scripts/build_product_doc_artifacts.js --product-name=security --stack-version=8.18 --inference-id=.multilingual-e5-small-elasticsearch\n```\n\n- In parallel with this PR, deploys the public multilingual product doc\nartifacts for 8.18\n- It modifies the installation logic to append the inferenceId's to the\ntarget index name's (to distinguish it from the ELSER default) and\ndefine the mapping of the target index to use the E5's model_settings\n- Surfaces up error if there's an error with the installation \n\n\t\nFor example, if there's no corresponding artifact available, or if the\nartifact fails to fetch. Before:\n\n\n\n\n\n\t\n\tAfter, it will prompt the user: \n\n\n\n\n\n## Note for Reviewers:\n\n- **kibana-core**: Saved object 'product-doc-install-status' was updated\nto add a new field `inference_id`\n\n- **Security Gen AI**: With the newly required inferenceId parameter to\nthe installation endpoints, by default it will use ELSER\n'.elser-2-elasticsearch'\n\n- **Observability AI Assistant**: There are 2 at least todos remaining:\n1) Make to sure pass the inferenceId to the retrieveDocumentation so\nthat it reroutes to the right index\nhttps://github.com//pull/224274/files#diff-e393e350cf2449f8b756cad947fc8a902fddf6e6b30f1363750d469fc7d81b61R74\n2) Handle the change in inference model selection for Product Doc. Here\nthis is triggering an update to the product doc installation when user\nclicks Update model:\nhttps://github.com//pull/224274/files#diff-7d84fc1bf3106fe3b0cb357c800faefc1b96b853beeb74711f1c3c623ae901b9R151\n\n- ### Checklist\n\nCheck the PR satisfies following conditions. \n\nReviewers should verify this PR satisfies this list as well.\n\n- [x] Any text added follows [EUI's writing\nguidelines](https://elastic.github.io/eui/#/guidelines/writing), uses\nsentence case text and includes [i18n\nsupport](https://github.com/elastic/kibana/blob/main/src/platform/packages/shared/kbn-i18n/README.md)\n- [x]\n[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)\nwas added for features that require explanation or tutorials\n- [x] [Unit or functional\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\nwere updated or added to match the most common scenarios\n- [ ] If a plugin configuration key changed, check if it needs to be\nallowlisted in the cloud and added to the [docker\nlist](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)\n- [ ] This was checked for breaking HTTP API changes, and any breaking\nchanges have been approved by the breaking-change committee. The\n`release_note:breaking` label should be applied in these situations.\n- [ ] [Flaky Test\nRunner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was\nused on any tests changed\n- [ ] The PR description includes the appropriate Release Notes section,\nand the correct `release_note:*` label is applied per the\n[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)\n\n### Identify risks\n\nDoes this PR introduce any risks? For example, consider risks like hard\nto test bugs, performance regression, potential of data loss.\n\nDescribe the risk, its severity, and mitigation for each identified\nrisk. Invite stakeholders and evaluate how to proceed before merging.\n\n- [ ] [See some risk\nexamples](https://github.com/elastic/kibana/blob/main/RISK_MATRIX.mdx)\n- [ ] ...\n\n---------\n\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>\nCo-authored-by: Dima Arnautov <dmitrii.arnautov@elastic.co>\nCo-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>","sha":"4ff731dcccaf9f60c5ef49ae014ed96800bacbe7","branchLabelMapping":{"^v9.2.0$":"main","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["bug",":ml","release_note:skip","Team:Obs AI Assistant","ci:project-deploy-observability","backport:version","v9.1.0","v8.19.0","v9.2.0"],"title":"[AI Infra] Fix Observability AI assistant product docs missing multilingual support","number":224274,"url":"https://github.com/elastic/kibana/pull/224274","mergeCommit":{"message":"[AI Infra] Fix Observability AI assistant product docs missing multilingual support (#224274)\n\n## Summary\n\nThis PR fixes #222176, and\nrewired the productDoc installation process to accept an `inferenceId`\nargument to the productDocBase installation API. It:\n\n- Allows for concurrent installation of the product docs with two\ndifferent models: The default ELSER and the multilingual E5. Kibana will\nonly install the one the user needs, but has capacity for other models\nif user needs both of them (i.e. ELSER for Security AI Assistant and\nmultilingual E5 for Observability AI Assistant).\n \n- Modifies the script that generates the artifacts to also allows\ninferenceId to be passed in.\n\n```\nnode scripts/build_product_doc_artifacts.js --product-name=security --stack-version=8.18 --inference-id=.multilingual-e5-small-elasticsearch\n```\n\n- In parallel with this PR, deploys the public multilingual product doc\nartifacts for 8.18\n- It modifies the installation logic to append the inferenceId's to the\ntarget index name's (to distinguish it from the ELSER default) and\ndefine the mapping of the target index to use the E5's model_settings\n- Surfaces up error if there's an error with the installation \n\n\t\nFor example, if there's no corresponding artifact available, or if the\nartifact fails to fetch. Before:\n\n\n\n\n\n\t\n\tAfter, it will prompt the user: \n\n\n\n\n\n## Note for Reviewers:\n\n- **kibana-core**: Saved object 'product-doc-install-status' was updated\nto add a new field `inference_id`\n\n- **Security Gen AI**: With the newly required inferenceId parameter to\nthe installation endpoints, by default it will use ELSER\n'.elser-2-elasticsearch'\n\n- **Observability AI Assistant**: There are 2 at least todos remaining:\n1) Make to sure pass the inferenceId to the retrieveDocumentation so\nthat it reroutes to the right index\nhttps://github.com//pull/224274/files#diff-e393e350cf2449f8b756cad947fc8a902fddf6e6b30f1363750d469fc7d81b61R74\n2) Handle the change in inference model selection for Product Doc. Here\nthis is triggering an update to the product doc installation when user\nclicks Update model:\nhttps://github.com//pull/224274/files#diff-7d84fc1bf3106fe3b0cb357c800faefc1b96b853beeb74711f1c3c623ae901b9R151\n\n- ### Checklist\n\nCheck the PR satisfies following conditions. \n\nReviewers should verify this PR satisfies this list as well.\n\n- [x] Any text added follows [EUI's writing\nguidelines](https://elastic.github.io/eui/#/guidelines/writing), uses\nsentence case text and includes [i18n\nsupport](https://github.com/elastic/kibana/blob/main/src/platform/packages/shared/kbn-i18n/README.md)\n- [x]\n[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)\nwas added for features that require explanation or tutorials\n- [x] [Unit or functional\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\nwere updated or added to match the most common scenarios\n- [ ] If a plugin configuration key changed, check if it needs to be\nallowlisted in the cloud and added to the [docker\nlist](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)\n- [ ] This was checked for breaking HTTP API changes, and any breaking\nchanges have been approved by the breaking-change committee. The\n`release_note:breaking` label should be applied in these situations.\n- [ ] [Flaky Test\nRunner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was\nused on any tests changed\n- [ ] The PR description includes the appropriate Release Notes section,\nand the correct `release_note:*` label is applied per the\n[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)\n\n### Identify risks\n\nDoes this PR introduce any risks? For example, consider risks like hard\nto test bugs, performance regression, potential of data loss.\n\nDescribe the risk, its severity, and mitigation for each identified\nrisk. Invite stakeholders and evaluate how to proceed before merging.\n\n- [ ] [See some risk\nexamples](https://github.com/elastic/kibana/blob/main/RISK_MATRIX.mdx)\n- [ ] ...\n\n---------\n\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>\nCo-authored-by: Dima Arnautov <dmitrii.arnautov@elastic.co>\nCo-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>","sha":"4ff731dcccaf9f60c5ef49ae014ed96800bacbe7"}},"sourceBranch":"main","suggestedTargetBranches":["9.1","8.19"],"targetPullRequestStates":[{"branch":"9.1","label":"v9.1.0","branchLabelMappingKey":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"},{"branch":"8.19","label":"v8.19.0","branchLabelMappingKey":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"},{"branch":"main","label":"v9.2.0","branchLabelMappingKey":"^v9.2.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/224274","number":224274,"mergeCommit":{"message":"[AI Infra] Fix Observability AI assistant product docs missing multilingual support (#224274)\n\n## Summary\n\nThis PR fixes #222176, and\nrewired the productDoc installation process to accept an `inferenceId`\nargument to the productDocBase installation API. It:\n\n- Allows for concurrent installation of the product docs with two\ndifferent models: The default ELSER and the multilingual E5. Kibana will\nonly install the one the user needs, but has capacity for other models\nif user needs both of them (i.e. ELSER for Security AI Assistant and\nmultilingual E5 for Observability AI Assistant).\n \n- Modifies the script that generates the artifacts to also allows\ninferenceId to be passed in.\n\n```\nnode scripts/build_product_doc_artifacts.js --product-name=security --stack-version=8.18 --inference-id=.multilingual-e5-small-elasticsearch\n```\n\n- In parallel with this PR, deploys the public multilingual product doc\nartifacts for 8.18\n- It modifies the installation logic to append the inferenceId's to the\ntarget index name's (to distinguish it from the ELSER default) and\ndefine the mapping of the target index to use the E5's model_settings\n- Surfaces up error if there's an error with the installation \n\n\t\nFor example, if there's no corresponding artifact available, or if the\nartifact fails to fetch. Before:\n\n\n\n\n\n\t\n\tAfter, it will prompt the user: \n\n\n\n\n\n## Note for Reviewers:\n\n- **kibana-core**: Saved object 'product-doc-install-status' was updated\nto add a new field `inference_id`\n\n- **Security Gen AI**: With the newly required inferenceId parameter to\nthe installation endpoints, by default it will use ELSER\n'.elser-2-elasticsearch'\n\n- **Observability AI Assistant**: There are 2 at least todos remaining:\n1) Make to sure pass the inferenceId to the retrieveDocumentation so\nthat it reroutes to the right index\nhttps://github.com//pull/224274/files#diff-e393e350cf2449f8b756cad947fc8a902fddf6e6b30f1363750d469fc7d81b61R74\n2) Handle the change in inference model selection for Product Doc. Here\nthis is triggering an update to the product doc installation when user\nclicks Update model:\nhttps://github.com//pull/224274/files#diff-7d84fc1bf3106fe3b0cb357c800faefc1b96b853beeb74711f1c3c623ae901b9R151\n\n- ### Checklist\n\nCheck the PR satisfies following conditions. \n\nReviewers should verify this PR satisfies this list as well.\n\n- [x] Any text added follows [EUI's writing\nguidelines](https://elastic.github.io/eui/#/guidelines/writing), uses\nsentence case text and includes [i18n\nsupport](https://github.com/elastic/kibana/blob/main/src/platform/packages/shared/kbn-i18n/README.md)\n- [x]\n[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)\nwas added for features that require explanation or tutorials\n- [x] [Unit or functional\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\nwere updated or added to match the most common scenarios\n- [ ] If a plugin configuration key changed, check if it needs to be\nallowlisted in the cloud and added to the [docker\nlist](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)\n- [ ] This was checked for breaking HTTP API changes, and any breaking\nchanges have been approved by the breaking-change committee. The\n`release_note:breaking` label should be applied in these situations.\n- [ ] [Flaky Test\nRunner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was\nused on any tests changed\n- [ ] The PR description includes the appropriate Release Notes section,\nand the correct `release_note:*` label is applied per the\n[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)\n\n### Identify risks\n\nDoes this PR introduce any risks? For example, consider risks like hard\nto test bugs, performance regression, potential of data loss.\n\nDescribe the risk, its severity, and mitigation for each identified\nrisk. Invite stakeholders and evaluate how to proceed before merging.\n\n- [ ] [See some risk\nexamples](https://github.com/elastic/kibana/blob/main/RISK_MATRIX.mdx)\n- [ ] ...\n\n---------\n\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>\nCo-authored-by: Dima Arnautov <dmitrii.arnautov@elastic.co>\nCo-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>","sha":"4ff731dcccaf9f60c5ef49ae014ed96800bacbe7"}}]}] BACKPORT--> Co-authored-by: Quynh Nguyen (Quinn) <43350163+qn895@users.noreply.github.com>
… multilingual support (#224274) (#226378) # Backport This will backport the following commits from `main` to `8.19`: - [[AI Infra] Fix Observability AI assistant product docs missing multilingual support (#224274)](#224274) <!--- Backport version: 10.0.1 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sorenlouv/backport) <!--BACKPORT [{"author":{"name":"Quynh Nguyen (Quinn)","email":"43350163+qn895@users.noreply.github.com"},"sourceCommit":{"committedDate":"2025-07-03T09:53:13Z","message":"[AI Infra] Fix Observability AI assistant product docs missing multilingual support (#224274)\n\n## Summary\n\nThis PR fixes #222176, and\nrewired the productDoc installation process to accept an `inferenceId`\nargument to the productDocBase installation API. It:\n\n- Allows for concurrent installation of the product docs with two\ndifferent models: The default ELSER and the multilingual E5. Kibana will\nonly install the one the user needs, but has capacity for other models\nif user needs both of them (i.e. ELSER for Security AI Assistant and\nmultilingual E5 for Observability AI Assistant).\n \n- Modifies the script that generates the artifacts to also allows\ninferenceId to be passed in.\n\n```\nnode scripts/build_product_doc_artifacts.js --product-name=security --stack-version=8.18 --inference-id=.multilingual-e5-small-elasticsearch\n```\n\n- In parallel with this PR, deploys the public multilingual product doc\nartifacts for 8.18\n- It modifies the installation logic to append the inferenceId's to the\ntarget index name's (to distinguish it from the ELSER default) and\ndefine the mapping of the target index to use the E5's model_settings\n- Surfaces up error if there's an error with the installation \n\n\t\nFor example, if there's no corresponding artifact available, or if the\nartifact fails to fetch. Before:\n\n\n\n\n\n\t\n\tAfter, it will prompt the user: \n\n\n\n\n\n## Note for Reviewers:\n\n- **kibana-core**: Saved object 'product-doc-install-status' was updated\nto add a new field `inference_id`\n\n- **Security Gen AI**: With the newly required inferenceId parameter to\nthe installation endpoints, by default it will use ELSER\n'.elser-2-elasticsearch'\n\n- **Observability AI Assistant**: There are 2 at least todos remaining:\n1) Make to sure pass the inferenceId to the retrieveDocumentation so\nthat it reroutes to the right index\nhttps://github.com//pull/224274/files#diff-e393e350cf2449f8b756cad947fc8a902fddf6e6b30f1363750d469fc7d81b61R74\n2) Handle the change in inference model selection for Product Doc. Here\nthis is triggering an update to the product doc installation when user\nclicks Update model:\nhttps://github.com//pull/224274/files#diff-7d84fc1bf3106fe3b0cb357c800faefc1b96b853beeb74711f1c3c623ae901b9R151\n\n- ### Checklist\n\nCheck the PR satisfies following conditions. \n\nReviewers should verify this PR satisfies this list as well.\n\n- [x] Any text added follows [EUI's writing\nguidelines](https://elastic.github.io/eui/#/guidelines/writing), uses\nsentence case text and includes [i18n\nsupport](https://github.com/elastic/kibana/blob/main/src/platform/packages/shared/kbn-i18n/README.md)\n- [x]\n[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)\nwas added for features that require explanation or tutorials\n- [x] [Unit or functional\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\nwere updated or added to match the most common scenarios\n- [ ] If a plugin configuration key changed, check if it needs to be\nallowlisted in the cloud and added to the [docker\nlist](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)\n- [ ] This was checked for breaking HTTP API changes, and any breaking\nchanges have been approved by the breaking-change committee. The\n`release_note:breaking` label should be applied in these situations.\n- [ ] [Flaky Test\nRunner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was\nused on any tests changed\n- [ ] The PR description includes the appropriate Release Notes section,\nand the correct `release_note:*` label is applied per the\n[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)\n\n### Identify risks\n\nDoes this PR introduce any risks? For example, consider risks like hard\nto test bugs, performance regression, potential of data loss.\n\nDescribe the risk, its severity, and mitigation for each identified\nrisk. Invite stakeholders and evaluate how to proceed before merging.\n\n- [ ] [See some risk\nexamples](https://github.com/elastic/kibana/blob/main/RISK_MATRIX.mdx)\n- [ ] ...\n\n---------\n\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>\nCo-authored-by: Dima Arnautov <dmitrii.arnautov@elastic.co>\nCo-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>","sha":"4ff731dcccaf9f60c5ef49ae014ed96800bacbe7","branchLabelMapping":{"^v9.2.0$":"main","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["bug",":ml","release_note:skip","Team:Obs AI Assistant","ci:project-deploy-observability","backport:version","v9.1.0","v8.19.0","v9.2.0"],"title":"[AI Infra] Fix Observability AI assistant product docs missing multilingual support","number":224274,"url":"https://github.com/elastic/kibana/pull/224274","mergeCommit":{"message":"[AI Infra] Fix Observability AI assistant product docs missing multilingual support (#224274)\n\n## Summary\n\nThis PR fixes #222176, and\nrewired the productDoc installation process to accept an `inferenceId`\nargument to the productDocBase installation API. It:\n\n- Allows for concurrent installation of the product docs with two\ndifferent models: The default ELSER and the multilingual E5. Kibana will\nonly install the one the user needs, but has capacity for other models\nif user needs both of them (i.e. ELSER for Security AI Assistant and\nmultilingual E5 for Observability AI Assistant).\n \n- Modifies the script that generates the artifacts to also allows\ninferenceId to be passed in.\n\n```\nnode scripts/build_product_doc_artifacts.js --product-name=security --stack-version=8.18 --inference-id=.multilingual-e5-small-elasticsearch\n```\n\n- In parallel with this PR, deploys the public multilingual product doc\nartifacts for 8.18\n- It modifies the installation logic to append the inferenceId's to the\ntarget index name's (to distinguish it from the ELSER default) and\ndefine the mapping of the target index to use the E5's model_settings\n- Surfaces up error if there's an error with the installation \n\n\t\nFor example, if there's no corresponding artifact available, or if the\nartifact fails to fetch. Before:\n\n\n\n\n\n\t\n\tAfter, it will prompt the user: \n\n\n\n\n\n## Note for Reviewers:\n\n- **kibana-core**: Saved object 'product-doc-install-status' was updated\nto add a new field `inference_id`\n\n- **Security Gen AI**: With the newly required inferenceId parameter to\nthe installation endpoints, by default it will use ELSER\n'.elser-2-elasticsearch'\n\n- **Observability AI Assistant**: There are 2 at least todos remaining:\n1) Make to sure pass the inferenceId to the retrieveDocumentation so\nthat it reroutes to the right index\nhttps://github.com//pull/224274/files#diff-e393e350cf2449f8b756cad947fc8a902fddf6e6b30f1363750d469fc7d81b61R74\n2) Handle the change in inference model selection for Product Doc. Here\nthis is triggering an update to the product doc installation when user\nclicks Update model:\nhttps://github.com//pull/224274/files#diff-7d84fc1bf3106fe3b0cb357c800faefc1b96b853beeb74711f1c3c623ae901b9R151\n\n- ### Checklist\n\nCheck the PR satisfies following conditions. \n\nReviewers should verify this PR satisfies this list as well.\n\n- [x] Any text added follows [EUI's writing\nguidelines](https://elastic.github.io/eui/#/guidelines/writing), uses\nsentence case text and includes [i18n\nsupport](https://github.com/elastic/kibana/blob/main/src/platform/packages/shared/kbn-i18n/README.md)\n- [x]\n[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)\nwas added for features that require explanation or tutorials\n- [x] [Unit or functional\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\nwere updated or added to match the most common scenarios\n- [ ] If a plugin configuration key changed, check if it needs to be\nallowlisted in the cloud and added to the [docker\nlist](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)\n- [ ] This was checked for breaking HTTP API changes, and any breaking\nchanges have been approved by the breaking-change committee. The\n`release_note:breaking` label should be applied in these situations.\n- [ ] [Flaky Test\nRunner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was\nused on any tests changed\n- [ ] The PR description includes the appropriate Release Notes section,\nand the correct `release_note:*` label is applied per the\n[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)\n\n### Identify risks\n\nDoes this PR introduce any risks? For example, consider risks like hard\nto test bugs, performance regression, potential of data loss.\n\nDescribe the risk, its severity, and mitigation for each identified\nrisk. Invite stakeholders and evaluate how to proceed before merging.\n\n- [ ] [See some risk\nexamples](https://github.com/elastic/kibana/blob/main/RISK_MATRIX.mdx)\n- [ ] ...\n\n---------\n\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>\nCo-authored-by: Dima Arnautov <dmitrii.arnautov@elastic.co>\nCo-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>","sha":"4ff731dcccaf9f60c5ef49ae014ed96800bacbe7"}},"sourceBranch":"main","suggestedTargetBranches":["9.1","8.19"],"targetPullRequestStates":[{"branch":"9.1","label":"v9.1.0","branchLabelMappingKey":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"},{"branch":"8.19","label":"v8.19.0","branchLabelMappingKey":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"},{"branch":"main","label":"v9.2.0","branchLabelMappingKey":"^v9.2.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/224274","number":224274,"mergeCommit":{"message":"[AI Infra] Fix Observability AI assistant product docs missing multilingual support (#224274)\n\n## Summary\n\nThis PR fixes #222176, and\nrewired the productDoc installation process to accept an `inferenceId`\nargument to the productDocBase installation API. It:\n\n- Allows for concurrent installation of the product docs with two\ndifferent models: The default ELSER and the multilingual E5. Kibana will\nonly install the one the user needs, but has capacity for other models\nif user needs both of them (i.e. ELSER for Security AI Assistant and\nmultilingual E5 for Observability AI Assistant).\n \n- Modifies the script that generates the artifacts to also allows\ninferenceId to be passed in.\n\n```\nnode scripts/build_product_doc_artifacts.js --product-name=security --stack-version=8.18 --inference-id=.multilingual-e5-small-elasticsearch\n```\n\n- In parallel with this PR, deploys the public multilingual product doc\nartifacts for 8.18\n- It modifies the installation logic to append the inferenceId's to the\ntarget index name's (to distinguish it from the ELSER default) and\ndefine the mapping of the target index to use the E5's model_settings\n- Surfaces up error if there's an error with the installation \n\n\t\nFor example, if there's no corresponding artifact available, or if the\nartifact fails to fetch. Before:\n\n\n\n\n\n\t\n\tAfter, it will prompt the user: \n\n\n\n\n\n## Note for Reviewers:\n\n- **kibana-core**: Saved object 'product-doc-install-status' was updated\nto add a new field `inference_id`\n\n- **Security Gen AI**: With the newly required inferenceId parameter to\nthe installation endpoints, by default it will use ELSER\n'.elser-2-elasticsearch'\n\n- **Observability AI Assistant**: There are 2 at least todos remaining:\n1) Make to sure pass the inferenceId to the retrieveDocumentation so\nthat it reroutes to the right index\nhttps://github.com//pull/224274/files#diff-e393e350cf2449f8b756cad947fc8a902fddf6e6b30f1363750d469fc7d81b61R74\n2) Handle the change in inference model selection for Product Doc. Here\nthis is triggering an update to the product doc installation when user\nclicks Update model:\nhttps://github.com//pull/224274/files#diff-7d84fc1bf3106fe3b0cb357c800faefc1b96b853beeb74711f1c3c623ae901b9R151\n\n- ### Checklist\n\nCheck the PR satisfies following conditions. \n\nReviewers should verify this PR satisfies this list as well.\n\n- [x] Any text added follows [EUI's writing\nguidelines](https://elastic.github.io/eui/#/guidelines/writing), uses\nsentence case text and includes [i18n\nsupport](https://github.com/elastic/kibana/blob/main/src/platform/packages/shared/kbn-i18n/README.md)\n- [x]\n[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)\nwas added for features that require explanation or tutorials\n- [x] [Unit or functional\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\nwere updated or added to match the most common scenarios\n- [ ] If a plugin configuration key changed, check if it needs to be\nallowlisted in the cloud and added to the [docker\nlist](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)\n- [ ] This was checked for breaking HTTP API changes, and any breaking\nchanges have been approved by the breaking-change committee. The\n`release_note:breaking` label should be applied in these situations.\n- [ ] [Flaky Test\nRunner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was\nused on any tests changed\n- [ ] The PR description includes the appropriate Release Notes section,\nand the correct `release_note:*` label is applied per the\n[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)\n\n### Identify risks\n\nDoes this PR introduce any risks? For example, consider risks like hard\nto test bugs, performance regression, potential of data loss.\n\nDescribe the risk, its severity, and mitigation for each identified\nrisk. Invite stakeholders and evaluate how to proceed before merging.\n\n- [ ] [See some risk\nexamples](https://github.com/elastic/kibana/blob/main/RISK_MATRIX.mdx)\n- [ ] ...\n\n---------\n\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>\nCo-authored-by: Dima Arnautov <dmitrii.arnautov@elastic.co>\nCo-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>","sha":"4ff731dcccaf9f60c5ef49ae014ed96800bacbe7"}}]}] BACKPORT--> --------- Co-authored-by: Quynh Nguyen (Quinn) <43350163+qn895@users.noreply.github.com>
…ingual support (elastic#224274) ## Summary This PR fixes elastic#222176, and rewired the productDoc installation process to accept an `inferenceId` argument to the productDocBase installation API. It: - Allows for concurrent installation of the product docs with two different models: The default ELSER and the multilingual E5. Kibana will only install the one the user needs, but has capacity for other models if user needs both of them (i.e. ELSER for Security AI Assistant and multilingual E5 for Observability AI Assistant). - Modifies the script that generates the artifacts to also allows inferenceId to be passed in. ``` node scripts/build_product_doc_artifacts.js --product-name=security --stack-version=8.18 --inference-id=.multilingual-e5-small-elasticsearch ``` - In parallel with this PR, deploys the public multilingual product doc artifacts for 8.18 - It modifies the installation logic to append the inferenceId's to the target index name's (to distinguish it from the ELSER default) and define the mapping of the target index to use the E5's model_settings - Surfaces up error if there's an error with the installation For example, if there's no corresponding artifact available, or if the artifact fails to fetch. Before:  After, it will prompt the user:  ## Note for Reviewers: - **kibana-core**: Saved object 'product-doc-install-status' was updated to add a new field `inference_id` - **Security Gen AI**: With the newly required inferenceId parameter to the installation endpoints, by default it will use ELSER '.elser-2-elasticsearch' - **Observability AI Assistant**: There are 2 at least todos remaining: 1) Make to sure pass the inferenceId to the retrieveDocumentation so that it reroutes to the right index https://github.com/elastic/kibana/pull/224274/files#diff-e393e350cf2449f8b756cad947fc8a902fddf6e6b30f1363750d469fc7d81b61R74 2) Handle the change in inference model selection for Product Doc. Here this is triggering an update to the product doc installation when user clicks Update model: https://github.com/elastic/kibana/pull/224274/files#diff-7d84fc1bf3106fe3b0cb357c800faefc1b96b853beeb74711f1c3c623ae901b9R151 - ### Checklist Check the PR satisfies following conditions. Reviewers should verify this PR satisfies this list as well. - [x] Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/main/src/platform/packages/shared/kbn-i18n/README.md) - [x] [Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html) was added for features that require explanation or tutorials - [x] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios - [ ] If a plugin configuration key changed, check if it needs to be allowlisted in the cloud and added to the [docker list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker) - [ ] This was checked for breaking HTTP API changes, and any breaking changes have been approved by the breaking-change committee. The `release_note:breaking` label should be applied in these situations. - [ ] [Flaky Test Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was used on any tests changed - [ ] The PR description includes the appropriate Release Notes section, and the correct `release_note:*` label is applied per the [guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process) ### Identify risks Does this PR introduce any risks? For example, consider risks like hard to test bugs, performance regression, potential of data loss. Describe the risk, its severity, and mitigation for each identified risk. Invite stakeholders and evaluate how to proceed before merging. - [ ] [See some risk examples](https://github.com/elastic/kibana/blob/main/RISK_MATRIX.mdx) - [ ] ... --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> Co-authored-by: Dima Arnautov <dmitrii.arnautov@elastic.co> Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>

Summary
This PR fixes #222176, and rewired the productDoc installation process to accept an
inferenceIdargument to the productDocBase installation API. It:Allows for concurrent installation of the product docs with two different models: The default ELSER and the multilingual E5. Kibana will only install the one the user needs, but has capacity for other models if user needs both of them (i.e. ELSER for Security AI Assistant and multilingual E5 for Observability AI Assistant).
Modifies the script that generates the artifacts to also allows inferenceId to be passed in.
In parallel with this PR, deploys the public multilingual product doc artifacts for 8.18
It modifies the installation logic to append the inferenceId's to the target index name's (to distinguish it from the ELSER default) and define the mapping of the target index to use the E5's model_settings
Surfaces up error if there's an error with the installation
For example, if there's no corresponding artifact available, or if the artifact fails to fetch. Before:
After, it will prompt the user:
Note for Reviewers:
kibana-core: Saved object 'product-doc-install-status' was updated to add a new field
inference_idSecurity Gen AI: With the newly required inferenceId parameter to the installation endpoints, by default it will use ELSER '.elser-2-elasticsearch'
Observability AI Assistant: There are 2 at least todos remaining:
Checklist
Check the PR satisfies following conditions.
Reviewers should verify this PR satisfies this list as well.
release_note:breakinglabel should be applied in these situations.release_note:*label is applied per the guidelinesIdentify risks
Does this PR introduce any risks? For example, consider risks like hard to test bugs, performance regression, potential of data loss.
Describe the risk, its severity, and mitigation for each identified risk. Invite stakeholders and evaluate how to proceed before merging.