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}\"}"
}
}
]
}
]
}