123 lines
3.7 KiB
Markdown
123 lines
3.7 KiB
Markdown
---
|
|
layout: default
|
|
title: Index Mapping tool
|
|
has_children: false
|
|
has_toc: false
|
|
nav_order: 30
|
|
parent: Tools
|
|
grand_parent: Agents and tools
|
|
---
|
|
|
|
<!-- vale off -->
|
|
# Index Mapping tool
|
|
**Introduced 2.12**
|
|
{: .label .label-purple }
|
|
<!-- vale on -->
|
|
|
|
This is an experimental feature and is not recommended for use in a production environment. For updates on the progress of the feature or if you want to leave feedback, see the associated [GitHub issue](https://github.com/opensearch-project/ml-commons/issues/1161).
|
|
{: .warning}
|
|
|
|
The `IndexMappingTool` retrieves mapping and setting information for indexes in your cluster.
|
|
|
|
## Step 1: Register a flow agent that will run the IndexMappingTool
|
|
|
|
A flow agent runs a sequence of tools in order and returns the last tool's output. To create a flow agent, send the following register agent request:
|
|
|
|
```json
|
|
POST /_plugins/_ml/agents/_register
|
|
{
|
|
"name": "Test_Agent_For_IndexMapping_tool",
|
|
"type": "flow",
|
|
"description": "this is a test agent for the IndexMappingTool",
|
|
"tools": [
|
|
{
|
|
"type": "IndexMappingTool",
|
|
"name": "DemoIndexMappingTool",
|
|
"parameters": {
|
|
"index": "${parameters.index}",
|
|
"input": "${parameters.question}"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
```
|
|
{% include copy-curl.html %}
|
|
|
|
For parameter descriptions, see [Register parameters](#register-parameters).
|
|
|
|
OpenSearch responds with an agent ID:
|
|
|
|
```json
|
|
{
|
|
"agent_id": "9X7xWI0Bpc3sThaJdY9i"
|
|
}
|
|
```
|
|
|
|
## Step 2: Run the agent
|
|
|
|
Before you run the agent, make sure that you add the sample OpenSearch Dashboards `Sample eCommerce orders` dataset. To learn more, see [Adding sample data]({{site.url}}{{site.baseurl}}/dashboards/quickstart#adding-sample-data).
|
|
|
|
Then, run the agent by sending the following request and providing the index name and the question:
|
|
|
|
```json
|
|
POST /_plugins/_ml/agents/9X7xWI0Bpc3sThaJdY9i/_execute
|
|
{
|
|
"parameters": {
|
|
"index": [ "sample-ecommerce" ],
|
|
"question": "What fields are in the sample-ecommerce index?"
|
|
}
|
|
}
|
|
```
|
|
{% include copy-curl.html %}
|
|
|
|
OpenSearch returns the mappings and settings for the specified index:
|
|
|
|
```json
|
|
{
|
|
"inference_results": [
|
|
{
|
|
"output": [
|
|
{
|
|
"name": "response",
|
|
"result": """index: sample-ecommerce
|
|
|
|
mappings:
|
|
properties={items_purchased_failure={type=integer}, items_purchased_success={type=integer}, order_id={type=integer}, timestamp={type=date}, total_revenue_usd={type=integer}}
|
|
|
|
|
|
settings:
|
|
index.creation_date=1706752839713
|
|
index.number_of_replicas=1
|
|
index.number_of_shards=1
|
|
index.provided_name=sample-ecommerce
|
|
index.replication.type=DOCUMENT
|
|
index.uuid=UPYOQcAfRGqFAlSxcZlRjw
|
|
index.version.created=137217827
|
|
|
|
|
|
"""
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
## Register parameters
|
|
|
|
The following table lists all tool parameters that are available when registering an agent.
|
|
|
|
Parameter | Type | Required/Optional | Description
|
|
:--- | :--- | :--- | :---
|
|
`input` | String | Required | The user input used to return index information.
|
|
`index` | Array | Required | A comma-delimited list of one or more indexes for which to obtain mapping and setting information. Default is an empty list, which means all indexes.
|
|
`local` | Boolean | Optional | Whether to return information from the local node only instead of the cluster manager node (default is `false`).
|
|
|
|
## Execute parameters
|
|
|
|
The following table lists all tool parameters that are available when running the agent.
|
|
|
|
Parameter | Type | Required/Optional | Description
|
|
:--- | :--- | :--- | :---
|
|
`question` | String | Required | The natural language question to send to the LLM.
|
|
`index` | Array | Optional | A comma-delimited list of one or more indexes for which to obtain mapping and setting information. Default is an empty list, which means all indexes. |