본문 바로가기
WIKI 기술 지식 베이스

Execute Tool API

원문 보기 위키 갱신

출처: 문서

본문

Execute Tool API

3.3에서 도입됨 {: .label .label-purple }

Execute Tool API를 사용하면 에이전트를 먼저 만들지 않고도 개별 도구를 직접 실행할 수 있어요. 이 API는 에이전트 생성 및 관리의 오버헤드가 필요 없는 빠른 단일 도구 작업이 필요한 애플리케이션에 특히 유용해요.

사용 사례

Execute Tool API는 다음과 같은 경우에 적합해요:

  • 직접 도구 실행: 에이전트 설정 없이 검색, 데이터 분석 또는 검색 작업과 같은 특정 도구를 실행해요.
  • 테스트 및 디버깅: 개발 중에 도구 기능을 빠르게 테스트해요.
  • 경량 통합: 전체 에이전트 워크플로 없이 특정 OpenSearch 기능을 애플리케이션에 통합해요.
  • 독립 실행 작업: 대화 메모리나 복잡한 오케스트레이션이 필요 없는 단일 작업을 수행해요.

지원되는 도구

이 API는 사용 가능한 모든 OpenSearch 도구를 지원해요. 각 도구는 고유한 매개변수로 독립적으로 실행할 수 있어요.

사용 가능한 도구 목록에 대한 자세한 내용은 도구를 참조하세요.

엔드포인트

POST /_plugins/_ml/tools/_execute/{tool_name}

<tool_name> 매개변수는 PPLTool, SearchIndexTool, VectorDBTool과 같은 미리 정의된 도구 유형 이름을 나타내며,---사용자가 정의한 사용자 지정 도구 이름이 아니에요. {: .note}

요청 본문 필드

다음 표는 모든 요청 본문 필드를 나열해요.

필드 데이터 유형 필수 설명
parameters Object 예 실행 중인 도구에 따라 달라지는 도구별 매개변수를 포함해요. 각 도구는 기능에 따라 다른 매개변수가 필요해요.

매개변수 구조

parameters 객체는 도구 등록 및 도구 실행 중에 사용되는 매개변수를 결합해요. 특정 필드는 실행 중인 도구에 따라 달라져요.

특정 도구에 필요한 매개변수를 확인하려면 도구 섹션의 개별 도구 설명서를 참조하세요.

구성 요소 설명
도구 등록 매개변수 도구 등록 중에 지정된 매개변수예요.
도구 실행 매개변수 도구 실행 중에 지정된 매개변수예요.

예제 요청

다음은 간단한 도구 실행과 복잡한 도구 실행의 예예요.

예제 1: 간단한 도구 실행

POST /_plugins/_ml/tools/_execute/ListIndexTool
{
  "parameters": {
    "question": "How many indices do I have?"
  }
}

{% include copy-curl.html %}

예제 응답

{
  "inference_results": [
    {
      "output": [
        {
          "name": "response",
          "result": """row,health,status,index,uuid,pri(number of primary shards),rep(number of replica shards),docs.count(number of available documents),docs.deleted(number of deleted documents),store.size(store size of primary and replica shards),pri.store.size(store size of primary shards)
1,yellow,open,movies,kKcJKu2aT0C9uwJIPP4hxw,2,1,2,0,7.8kb,7.8kb
2,green,open,.plugins-ml-config,h8ovp_KFTq6_zvcBEn2kvg,1,0,1,0,4kb,4kb
3,green,open,.plugins-ml-agent,1oGlUBCIRAGXLbLv27Qg8w,1,0,1,0,8kb,8kb
"""
        }
      ]
    }
  ]
}

예제 2: 복잡한 도구 실행

POST /_plugins/_ml/tools/_execute/PPLTool
{
  "parameters": {
    "question": "what's the population of Seattle in 2021?",
    "index": "test-population",
    "model_id": "1TuQQ5gBMJhRgCqgSV79"
  }
}

{% include copy-curl.html %}

예제 응답

{
    "inference_results": [
        {
            "output": [
                {
                    "name": "response",
                    "dataAsMap": {
                        "result":"{\"ppl\":\"source\=test-population | where QUERY_STRING([\'population_description\'], \'Seattle\') AND QUERY_STRING([\'population_description\'], \'2021\')\",\"executionResult\":\"{\\n  \\\"schema\\\": [\\n    {\\n      \\\"name\\\": \\\"population_description\\\",\\n      \\\"type\\\": \\\"string\\\"\\n    }\\n  ],\\n  \\\"datarows\\\": [],\\n  \\\"total\\\": 0,\\n  \\\"size\\\": 0\\n}\"}"
                    }
                }
            ]
        }
    ]
}

더 알아보기 (Learn more)