opensearch-project / skills

Apache License 2.0
5 stars 28 forks source link

Add CreateAnomalyDetectorTool #348

Closed gaobinlong closed 2 weeks ago

gaobinlong commented 3 weeks ago

Description

Implement a new tool named CreateAnomalyDetectorTool which can be used to help creating anomaly detector, the only one input parameter is the index name, this tool will get the mappings of the index in flight and let LLM give the suggested category field, aggregation field and correspond aggregation method which are required for the create anomaly detector API, the output of this tool is like:

{
      "index": "opensearch_dashboards_sample_data_ecommerce",
      "categoryField": "geoip.country_iso_code",
      "aggregationField": "total_quantity,total_unique_products,taxful_total_price",
      "aggregationMethod": "sum,count,sum",
      "dateFields": "customer_birth_date,order_date,products.created_on"
 }

Related Issues

https://github.com/opensearch-project/skills/issues/337

Check List

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license. For more information on following Developer Certificate of Origin and signing off your commits, please check here.

zane-neo commented 2 weeks ago

@gaobinlong please fix the conflict

gaobinlong commented 2 weeks ago

@gaobinlong please fix the conflict

Done it, thanks!

xinyual commented 2 weeks ago

This tool will not actually create AD but only return suggested parameters, right?

gaobinlong commented 2 weeks ago

This tool will not actually create AD but only return suggested parameters, right?

Yes. @zane-neo @xinyual I've made some changes following your suggestions, please help to take a look, thank you!

opensearch-trigger-bot[bot] commented 2 weeks ago

The backport to 2.x failed:

The process '/usr/bin/git' failed with exit code 128

To backport manually, run these commands in your terminal:

# Navigate to the root of your repository
cd $(git rev-parse --show-toplevel)
# Fetch latest updates from GitHub
git fetch
# Create a new working tree
git worktree add ../.worktrees/skills/backport-2.x 2.x
# Navigate to the new working tree
pushd ../.worktrees/skills/backport-2.x
# Create a new branch
git switch --create backport/backport-348-to-2.x
# Cherry-pick the merged commit of this pull request and resolve the conflicts
git cherry-pick -x --mainline 1 63be17914b76a686978e9147eb3995f4968ef9d8
# Push it to GitHub
git push --set-upstream origin backport/backport-348-to-2.x
# Go back to the original working tree
popd
# Delete the working tree
git worktree remove ../.worktrees/skills/backport-2.x

Then, create a pull request where the base branch is 2.x and the compare/head branch is backport/backport-348-to-2.x.