GenAI for customer support: Explore the Elastic Support Assistant

144760---2nd-Batch-of-10-GAI-blog-header-images_07_(1).jpg

We are excited to announce the launch of Elastic's Support Assistant. This blog takes you through a tour of our latest generative AI tool and some common scenarios where it can help with your own use of Elastic technology.

Elastic Support Assistant is now available on the Support Hub

Today we announce the general availability of the Elastic Support Assistant for all customers and trial users with a support account, accessible through the Support Hub. The Support Assistant is a generative AI powered chat experience designed to answer a wide range of product questions across all Elastic products. We have documented the build through a series of technical blogs highlighting interesting steps along the way. Read more:

Overview: AI Assistants at Elastic

Just as generative AI has moved faster than anyone could have expected, Elastic has moved fast and developed assistants aimed at solving different use cases for our customers. Here is a quick overview of the assistants that are available to customers today:

  • Observability AI Assistant

    • Provides insights and chat support for observability data analysis and issue remediation

    • Integrates with external AI models for contextual assistance

    • Requires an Enterprise subscription and Elastic Stack 8.9 or later

  • Security AI Assistant

    • Aids in cybersecurity tasks like alert investigation and incident response

    • Uses generative AI to interact and generate queries in natural language

    • Requires an Enterprise subscription and is available from Elastic Stack 8.8.1 onward

  • Support Assistant (this product launch)

    • Chat experience providing general support across all Elastic products, informed by all of our available context (product documentation, blogs, Knowledge Base, etc.)

    • Uses generative AI and a retrieval augmented architecture to summarize content to answer specific questions

    • Not dependent on deployment version or subscription level

How to access the Support Assistant

Video thumbnail

The Elastic Support Assistant is now available in the Support Hub for all Elastic customers with either a trial or an active subscription. Once logged in, the Support Assistant can be found in the lower right corner. From there, you can start your first conversation.

The Support Assistant is designed to help with technical insights into Elastic technology and has access to the entirety of Elastic’s blogs, product docs for 114 major/minor versions of Elastic, technical support articles, and onboarding guides. While it does not have access to any deployment health information or your data, the Support Assistant is deeply knowledgeable about Elastic across a wide span of use cases. Over 200 of our own Elasticians use it daily, and we’re excited to expand use to Elastic customers as well.

Ways to leverage the Support Assistant for your deployments

The Support Assistant is designed to enhance our customers' Elastic technical product knowledge, and its accuracy is continually being refined. However, as with all AI tools, users should exercise caution, as responses may vary. It is recommended to verify the information provided with source documentation to ensure accuracy.

1. Troubleshooting configurations
If you encounter issues during deployment or configuration, the Support Assistant can provide guidance tailored to the specific versions of Elastic that you explicitly mention. For example, if you're setting up a new 8.14 cluster and run into errors, the Assistant can help diagnose the problem by cross-referencing your issue with related documentation and known issues from the Elastic product docs and knowledge base.

This can be particularly helpful when you aren’t sure where to find a specific error. Instead of searching the Kibana docs for an error that is actually for Elasticsearch, the Assistant can save time by figuring out the appropriate context for you.

2. Performance tuning
You can query the Support Assistant for best practices on optimizing the performance of your Elasticsearch clusters. Whether you're dealing with slow queries or need advice on resource allocation, the Assistant can suggest configuration changes, shard management strategies, and other performance-enhancing techniques based on your deployment's specifics.

3. Upgrades
Planning to upgrade to a newer version of Elastic? The Support Assistant can find the needed steps to guide you through the upgrade process, highlighting potential breaking changes and offering recommendations for a smoother experience. 

4. Security and compliance
The Assistant can offer guidance on securing your Elastic deployment, from setting up role-based access control (RBAC) to configuring encryption and audit logging. For customers in regulated industries, it can also provide information on how Elastic's security features align with compliance requirements like GDPR or HIPAA.

5. Monitoring and alerting
The Support Assistant can help with providing steps for setting up monitoring for your deployment. Whether you need to configure Kibana dashboards or set up alerting for specific events, the Assistant can walk you through the necessary steps, ensuring your deployment remains healthy and issues are flagged promptly. 

Once you’re up and running with your monitoring and alerting, the Observability AI Assistant can help to answer any questions you have about the data you collect.

6. Custom use cases and integrations
If you're looking to extend Elastic's capabilities by integrating it with other tools or building custom applications, the Support Assistant can provide code snippets, integration guides, and examples relevant to your specific needs. It can help you troubleshoot issues with Logstash pipelines, Kibana visualizations, or Beats configurations.

What do Elasticians ask the Support Assistant?

Our internal teams rely on the Support Assistant in their daily workflows. Here are a few examples they found useful, which might offer ideas on how you can make use of it.

Synthesizing answers across multiple documents

Question: Explain the difference between query_string and query terms in Elasticsearch.

Support Assistant’s answer:

In Elasticsearch, `query_string` and `terms` queries serve different purposes and have distinct behaviors:

1. `query_string` Query:
The `query_string` query is a powerful query that allows you to execute complex searches using a query string syntax. It can parse and split the provided query string based on operators such as AND, OR, NOT, and more. The `query_string` query supports field-specific queries, wildcards, regular expressions, fuzziness, proximity searches, and range queries. It is very flexible but also strict; if the query string contains any invalid syntax, it will return an error. Due to its complexity and strictness, it is not recommended for direct use in search boxes where users can enter free-form text.
Here is an example of a `query_string` query:
```json
GET /_search
{
  "query": {
    "query_string": {
      "query": "(new york city) OR (big apple)",
      "default_field": "content"
    }
  }
}
```
2. `terms` Query:
The `terms` query is used for filtering documents based on an exact match with one or more values specified in an array. It is much simpler than the `query_string` query and is used for structured searches where you know the exact values to look for. The `terms` query does not analyze the search terms, so it will look for exact matches in the inverted index. It is commonly used for filtering on keyword fields, IDs, tags, and other structured data.
Here is an example of a `terms` query:
```json
GET /_search
{
  "query": {
    "terms": {
      "user.id": ["kimchy", "elkbee"]
    }
  }
}
```
In summary, the `query_string` query is used for complex, full-text searches with a rich query syntax, while the `terms` query is used for simple, exact-match filtering on specific values. The choice between the two depends on the use case and the nature of the search you want to perform.

References:
- [Query string query](https://www.elastic.co/guide/en/elasticsearch/reference/8.14/query-dsl-query-string-query.html)
- [Terms query](https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-terms-query.html) (not directly provided in the context, but relevant for the explanation)

Step-by-step help

Question: How can I list tasks running when high CPU is seen in the Kibana stack monitoring metrics view?

Support Assistant’s answer:

To list tasks running when high CPU usage is detected in the Kibana Stack Monitoring metrics view, you would typically follow these steps:
1. **Access Kibana**: Open Kibana in your web browser and log in if necessary.
2. **Navigate to Stack Monitoring**: Click on the "Stack Monitoring" link in the main menu to access the monitoring features of your Elastic Stack.
3. **Identify the Node with High CPU Usage**: In the Stack Monitoring section, you should be able to see an overview of your Elasticsearch cluster, including CPU usage metrics. Identify the node or nodes that are experiencing high CPU usage.
4. **View Node Details**: Click on the node with high CPU usage to get more detailed metrics. This will take you to a page with more in-depth information about that particular node.
5. **Access the Elasticsearch API**: To list the tasks running on the node, you will need to use the Elasticsearch `_tasks` API. You can do this directly through the Dev Tools console in Kibana or by using a tool like `curl`.
6. **Use the `_tasks` API**: In the Dev Tools console, you can run the following command to list the tasks on the node with high CPU usage:
   ```
   GET /_tasks?nodes=<node_id>&detailed=true&actions=*search*
   ```
   Replace `<node_id>` with the actual ID of the node you're investigating. This command will list all the detailed tasks related to search actions, which are often a common cause of high CPU usage. You can adjust the `actions` parameter to filter for different types of tasks if necessary.
7. **Analyze the Task List**: The output will show you a list of tasks currently running on the node, including their IDs, types, start times, running times, and other relevant information. This can help you identify which tasks are consuming the most CPU resources.
8. **Take Action**: Depending on what you find, you may need to optimize your queries, scale your cluster, or take other actions to address the high CPU usage.
Please note that the `_tasks` API can provide a lot of information, and you might need to filter the results to find the relevant tasks. Additionally, if you have ongoing performance issues, you might want to set up more detailed monitoring or alerting to catch these issues proactively.
The context provided does not include specific instructions for listing tasks using the Kibana UI, but the general approach outlined above is how you would typically investigate high CPU usage in an Elasticsearch cluster using Kibana and Elasticsearch APIs.

For more detailed information on the `_tasks` API, you can refer to the Elasticsearch documentation:
https://www.elastic.co/guide/en/elasticsearch/reference/current/tasks.html

Building your own Elastic-powered Support Assistant

Internal to Elastic, the Field Technology team builds tools for Elastic employees. We use our own technologies heavily and are often customer zero for our Search and Observability solutions. The image below shows our architecture at the time of this release.  

user flowchart

With so many architecture and software options available, finding the right approach can be difficult. If you're interested in building a chatbot, our related blog, chatbot-tutorial, provides a step-by-step guide to help you get started. As documented in this blog series, we found that a RAG architecture powered by Elasticsearch delivered the best results for our users and provided a platform for future generative AI solutions. 

To fully harness the power of search and drive GenAI innovation across your enterprise, we highly recommend partnering with Elastic Consulting. Whether you're developing highly personalized ecommerce experiences or implementing interactive chatbots, our consultants have the technical expertise to design and deploy GenAI solutions tailored to your unique business needs.

Experience the Elastic-powered Support Assistant

The Support Assistant is the latest enhancement to the Elastic Support Hub, reflecting our ongoing commitment to empowering our customers through self-service knowledge discovery and agent-driven support cases. Accuracy has always been a priority for us, beginning nearly a year ago with our transition to semantic search, and the addition of the Support Assistant is no exception. We will continue to monitor and improve response accuracy over time. 

Give the Support Assistant a try and let us know your thoughts — your feedback will shape its future improvements.

The release and timing of any features or functionality described in this post remain at Elastic's sole discretion. Any features or functionality not currently available may not be delivered on time or at all.

In this blog post, we may have used or referred to third party generative AI tools, which are owned and operated by their respective owners. Elastic does not have any control over the third party tools and we have no responsibility or liability for their content, operation or use, nor for any loss or damage that may arise from your use of such tools. Please exercise caution when using AI tools with personal, sensitive or confidential information. Any data you submit may be used for AI training or other purposes. There is no guarantee that information you provide will be kept secure or confidential. You should familiarize yourself with the privacy practices and terms of use of any generative AI tools prior to use. 

Elastic, Elasticsearch, ESRE, Elasticsearch Relevance Engine and associated marks are trademarks, logos or registered trademarks of Elasticsearch N.V. in the United States and other countries. All other company and product names are trademarks, logos or registered trademarks of their respective owners.