Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Merged
merged 5 commits into from
Jan 27, 2025
Merged
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 35 additions & 12 deletions docs/en/observability/observability-ai-assistant.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,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 @@ -172,17 +172,24 @@ 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 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 Elasticsearch 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.

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>>, which requires the ELSER model, or <<obs-ai-search-connectors-semantic-text, a `semantic_text` field type>>, which can use any available model (ELSER, E5, or a custom model).
mdbirnstiehl marked this conversation as resolved.
Show resolved Hide resolved

[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*:
mdbirnstiehl marked this conversation as resolved.
Show resolved Hide resolved

. 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.
mdbirnstiehl marked this conversation as resolved.
Show resolved Hide resolved
. 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:
Expand All @@ -193,6 +200,22 @@ Once the pipeline is set up, perform a *Full Content Sync* of the connector. The
+
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.
mdbirnstiehl marked this conversation as resolved.
Show resolved Hide resolved
. 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 if 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