Skip to content

Commit

Permalink
[8.x](backport #4754) Obs AI Assistant supports other models than ELS…
Browse files Browse the repository at this point in the history
…ER when field type semantic_text is used (#4788)

* Obs AI Assistant supports other models than ELSER when field type semantic_text is used (#4754)

(cherry picked from commit da7cdce)

Co-authored-by: Mike Birnstiehl <[email protected]>
  • Loading branch information
mergify[bot] and mdbirnstiehl authored Jan 27, 2025
1 parent 1af2241 commit 73cac72
Showing 1 changed file with 42 additions and 15 deletions.
57 changes: 42 additions & 15 deletions docs/en/observability/observability-ai-assistant.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,7 @@ Search connectors are only needed when importing external data into the Knowledg

{ref}/es-connectors.html[Connectors] allow you to index content from external sources thereby making it available for the AI Assistant. This can greatly improve the relevance of the AI Assistant’s responses. Data can be integrated from sources such as GitHub, Confluence, Google Drive, Jira, AWS S3, Microsoft Teams, Slack, and more.

UI affordances for creating and managing search connectors are available in the Search Solution in {kib}.
UI affordances for creating and managing search connectors are available in the Search Solution in {kib}.
You can also use the {es} {ref}/connector-apis.html[Connector APIs] to create and manage search connectors.

The infrastructure for deploying connectors can be managed by Elastic or self-managed. Managed connectors require an {enterprise-search-ref}/server.html[Enterprise Search] server connected to the Elastic Stack. Self-managed connectors are run on your own infrastructure and don't require the Enterprise Search service.
Expand All @@ -175,28 +175,55 @@ If your {kib} Space doesn't include the Search solution you will have to create
+
For example, if you create a {ref}/es-connectors-github.html[GitHub native connector] you have to set a `name`, attach it to a new or existing `index`, add your `personal access token` and include the `list of repositories` to synchronize.
+
Learn more about configuring and {ref}/es-connectors-usage.html[using connectors] in the Enterprise Search documentation.
+
. Create a pipeline and process the data with ELSER.
+
To create the embeddings needed by the AI Assistant (weights and tokens into a sparse vector field), you have to create an *ML Inference Pipeline*:
+
.. Open the previously created connector and select the *Pipelines* tab.
.. Select *Copy and customize* button at the `Unlock your custom pipelines` box.
.. Select *Add Inference Pipeline* button at the `Machine Learning Inference Pipelines` box.
.. Select *ELSER (Elastic Learned Sparse EncodeR)* ML model to add the necessary embeddings to the data.
.. Select the fields that need to be evaluated as part of the inference pipeline.
.. Test and save the inference pipeline and the overall pipeline.
Learn more about configuring and {ref}/es-connectors-usage.html[using connectors] in the Elasticsearch documentation.

After creating your connector, create the embeddings needed by the AI Assistant. You can do this using either:

* <<obs-ai-search-connectors-ml-embeddings, a machine learning (ML) pipeline>>: requires the ELSER ML model.
* <<obs-ai-search-connectors-semantic-text, a `semantic_text` field type>>: can use any available ML model (ELSER, E5, or a custom model).

[discrete]
[[obs-ai-search-connectors-ml-embeddings]]
==== Use machine learning pipelines to create AI Assistant embeddings

To create the embeddings needed by the AI Assistant (weights and tokens into a sparse vector field) using an *ML Inference Pipeline*:

. Open the previously created connector, and select the *Pipelines* tab.
. Select *Copy and customize* under `Unlock your custom pipelines`.
. Select *Add Inference Pipeline* under `Machine Learning Inference Pipelines`.
. Select the *ELSER (Elastic Learned Sparse EncodeR)* ML model to add the necessary embeddings to the data.
. Select the fields that need to be evaluated as part of the inference pipeline.
. Test and save the inference pipeline and the overall pipeline.

After creating the pipeline, complete the following steps:

. Sync the data.
+
Once the pipeline is set up, perform a *Full Content Sync* of the connector. The inference pipeline will process the data as follows:
+
* As data comes in, ELSER is applied to the data, and embeddings (weights and tokens into a sparse vector field) are added to capture semantic meaning and context of the data.
* When you look at the documents that are ingested, you can see how the weights and token are added to the `predicted_value` field in the documents.
* As data comes in, ELSER is applied to the data, and embeddings (weights and tokens into a {ref}/query-dsl-sparse-vector-query.html[sparse vector field]) are added to capture semantic meaning and context of the data.
* When you look at the ingested documents, you can see the embeddings are added to the `predicted_value` field in the documents.
. Check if AI Assistant can use the index (optional).
+
Ask something to the AI Assistant related with the indexed data.

[discrete]
[[obs-ai-search-connectors-semantic-text]]
==== Use a `semantic_text` field type to create AI Assistant embeddings

To create the embeddings needed by the AI Assistant using a {ref}/semantic-text.html[`semantic_text`] field type:

. Open the previously created connector, and select the *Mappings* tab.
. Select *Add field*.
. Under *Field type*, select *Semantic text*.
. Under *Reference field*, select the field you want to use for model inference.
. Under *Select an inference endpoint*, select the model you want to use to add the embeddings to the data.
. Add the field to your mapping by selecting *Add field*.
. Sync the data by selecting *Full Content* from the *Sync* menu.

The AI Assistant will now query the connector you've set up using the model you've selected.
Check that the AI Assistant is using the index by asking it something related to the indexed data.

[discrete]
[[obs-ai-interact]]
== Interact with the AI Assistant
Expand Down

0 comments on commit 73cac72

Please sign in to comment.