Skip to content

Commit b777398

Browse files
committed
add another interface
Signed-off-by: xinyual <xinyual@amazon.com>
1 parent e29c011 commit b777398

File tree

7 files changed

+46
-50
lines changed

7 files changed

+46
-50
lines changed

ml-algorithms/src/main/java/org/opensearch/ml/engine/tools/AgentTool.java

+3-9
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
import static org.opensearch.ml.common.utils.StringUtils.gson;
99

1010
import java.util.HashMap;
11-
import java.util.List;
1211
import java.util.Map;
1312

1413
import org.opensearch.action.ActionRequest;
@@ -18,8 +17,8 @@
1817
import org.opensearch.ml.common.dataset.remote.RemoteInferenceInputDataSet;
1918
import org.opensearch.ml.common.input.execute.agent.AgentMLInput;
2019
import org.opensearch.ml.common.output.model.ModelTensorOutput;
21-
import org.opensearch.ml.common.spi.tools.Tool;
2220
import org.opensearch.ml.common.spi.tools.ToolAnnotation;
21+
import org.opensearch.ml.common.spi.tools.WithoutModelTool;
2322
import org.opensearch.ml.common.transport.execute.MLExecuteTaskAction;
2423
import org.opensearch.ml.common.transport.execute.MLExecuteTaskRequest;
2524
import org.opensearch.ml.repackage.com.google.common.annotations.VisibleForTesting;
@@ -33,7 +32,7 @@
3332
*/
3433
@Log4j2
3534
@ToolAnnotation(AgentTool.TYPE)
36-
public class AgentTool implements Tool {
35+
public class AgentTool implements WithoutModelTool {
3736
public static final String TYPE = "AgentTool";
3837
private final Client client;
3938

@@ -98,7 +97,7 @@ public boolean validate(Map<String, String> parameters) {
9897
return true;
9998
}
10099

101-
public static class Factory implements Tool.Factory<AgentTool> {
100+
public static class Factory implements WithoutModelTool.Factory<AgentTool> {
102101
private Client client;
103102

104103
private static Factory INSTANCE;
@@ -139,11 +138,6 @@ public String getDefaultType() {
139138
public String getDefaultVersion() {
140139
return null;
141140
}
142-
143-
@Override
144-
public List<String> getAllModelKeys() {
145-
return List.of();
146-
}
147141
}
148142

149143
private Map<String, String> extractInputParameters(Map<String, String> parameters) {

ml-algorithms/src/main/java/org/opensearch/ml/engine/tools/CatIndexTool.java

+3-8
Original file line numberDiff line numberDiff line change
@@ -45,14 +45,14 @@
4545
import org.opensearch.index.IndexSettings;
4646
import org.opensearch.ml.common.output.model.ModelTensors;
4747
import org.opensearch.ml.common.spi.tools.Parser;
48-
import org.opensearch.ml.common.spi.tools.Tool;
4948
import org.opensearch.ml.common.spi.tools.ToolAnnotation;
5049

5150
import lombok.Getter;
5251
import lombok.Setter;
52+
import org.opensearch.ml.common.spi.tools.WithoutModelTool;
5353

5454
@ToolAnnotation(CatIndexTool.TYPE)
55-
public class CatIndexTool implements Tool {
55+
public class CatIndexTool implements WithoutModelTool {
5656
public static final String TYPE = "CatIndexTool";
5757
private static final String DEFAULT_DESCRIPTION = String
5858
.join(
@@ -309,7 +309,7 @@ public boolean validate(Map<String, String> parameters) {
309309
/**
310310
* Factory for the {@link CatIndexTool}
311311
*/
312-
public static class Factory implements Tool.Factory<CatIndexTool> {
312+
public static class Factory implements WithoutModelTool.Factory<CatIndexTool> {
313313
private Client client;
314314
private ClusterService clusterService;
315315

@@ -360,11 +360,6 @@ public String getDefaultType() {
360360
public String getDefaultVersion() {
361361
return null;
362362
}
363-
364-
@Override
365-
public List<String> getAllModelKeys() {
366-
return List.of();
367-
}
368363
}
369364

370365
private Table getTableWithHeader() {

ml-algorithms/src/main/java/org/opensearch/ml/engine/tools/ConnectorTool.java

+3-8
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@
1818
import org.opensearch.ml.common.output.model.ModelTensorOutput;
1919
import org.opensearch.ml.common.output.model.ModelTensors;
2020
import org.opensearch.ml.common.spi.tools.Parser;
21-
import org.opensearch.ml.common.spi.tools.Tool;
2221
import org.opensearch.ml.common.spi.tools.ToolAnnotation;
22+
import org.opensearch.ml.common.spi.tools.WithoutModelTool;
2323
import org.opensearch.ml.common.transport.connector.MLExecuteConnectorAction;
2424
import org.opensearch.ml.common.transport.connector.MLExecuteConnectorRequest;
2525

@@ -32,7 +32,7 @@
3232
*/
3333
@Log4j2
3434
@ToolAnnotation(ConnectorTool.TYPE)
35-
public class ConnectorTool implements Tool {
35+
public class ConnectorTool implements WithoutModelTool {
3636
public static final String TYPE = "ConnectorTool";
3737
public static final String CONNECTOR_ID = "connector_id";
3838
public static final String CONNECTOR_ACTION = "connector_action";
@@ -102,7 +102,7 @@ public boolean validate(Map<String, String> parameters) {
102102
return true;
103103
}
104104

105-
public static class Factory implements Tool.Factory<ConnectorTool> {
105+
public static class Factory implements WithoutModelTool.Factory<ConnectorTool> {
106106
public static final String TYPE = "ConnectorTool";
107107
public static final String DEFAULT_DESCRIPTION = "This tool will invoke external service.";
108108
private Client client;
@@ -144,10 +144,5 @@ public String getDefaultType() {
144144
public String getDefaultVersion() {
145145
return null;
146146
}
147-
148-
@Override
149-
public List<String> getAllModelKeys() {
150-
return List.of();
151-
}
152147
}
153148
}

ml-algorithms/src/main/java/org/opensearch/ml/engine/tools/IndexMappingTool.java

+3-8
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,14 @@
2424
import org.opensearch.core.action.ActionListener;
2525
import org.opensearch.ml.common.output.model.ModelTensors;
2626
import org.opensearch.ml.common.spi.tools.Parser;
27-
import org.opensearch.ml.common.spi.tools.Tool;
2827
import org.opensearch.ml.common.spi.tools.ToolAnnotation;
2928

3029
import lombok.Getter;
3130
import lombok.Setter;
31+
import org.opensearch.ml.common.spi.tools.WithoutModelTool;
3232

3333
@ToolAnnotation(IndexMappingTool.TYPE)
34-
public class IndexMappingTool implements Tool {
34+
public class IndexMappingTool implements WithoutModelTool {
3535
public static final String TYPE = "IndexMappingTool";
3636
private static final String DEFAULT_DESCRIPTION = String
3737
.join(
@@ -158,7 +158,7 @@ public boolean validate(Map<String, String> parameters) {
158158
/**
159159
* Factory for the {@link IndexMappingTool}
160160
*/
161-
public static class Factory implements Tool.Factory<IndexMappingTool> {
161+
public static class Factory implements WithoutModelTool.Factory<IndexMappingTool> {
162162
private Client client;
163163

164164
private static Factory INSTANCE;
@@ -206,10 +206,5 @@ public String getDefaultType() {
206206
public String getDefaultVersion() {
207207
return null;
208208
}
209-
210-
@Override
211-
public List<String> getAllModelKeys() {
212-
return List.of();
213-
}
214209
}
215210
}

ml-algorithms/src/main/java/org/opensearch/ml/engine/tools/SearchIndexTool.java

+3-8
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
import java.security.AccessController;
1212
import java.security.PrivilegedExceptionAction;
1313
import java.util.HashMap;
14-
import java.util.List;
1514
import java.util.Map;
1615
import java.util.Objects;
1716
import java.util.Optional;
@@ -24,8 +23,8 @@
2423
import org.opensearch.core.action.ActionListener;
2524
import org.opensearch.core.xcontent.NamedXContentRegistry;
2625
import org.opensearch.core.xcontent.XContentParser;
27-
import org.opensearch.ml.common.spi.tools.Tool;
2826
import org.opensearch.ml.common.spi.tools.ToolAnnotation;
27+
import org.opensearch.ml.common.spi.tools.WithoutModelTool;
2928
import org.opensearch.ml.common.transport.connector.MLConnectorSearchAction;
3029
import org.opensearch.ml.common.transport.model.MLModelSearchAction;
3130
import org.opensearch.ml.common.transport.model_group.MLModelGroupSearchAction;
@@ -44,7 +43,7 @@
4443
@Setter
4544
@Log4j2
4645
@ToolAnnotation(SearchIndexTool.TYPE)
47-
public class SearchIndexTool implements Tool {
46+
public class SearchIndexTool implements WithoutModelTool {
4847

4948
public static final String INPUT_FIELD = "input";
5049
public static final String INDEX_FIELD = "index";
@@ -149,7 +148,7 @@ public <T> void run(Map<String, String> parameters, ActionListener<T> listener)
149148
}
150149
}
151150

152-
public static class Factory implements Tool.Factory<SearchIndexTool> {
151+
public static class Factory implements WithoutModelTool.Factory<SearchIndexTool> {
153152

154153
private Client client;
155154
private static Factory INSTANCE;
@@ -197,9 +196,5 @@ public String getDefaultVersion() {
197196
return null;
198197
}
199198

200-
@Override
201-
public List<String> getAllModelKeys() {
202-
return List.of();
203-
}
204199
}
205200
}

ml-algorithms/src/main/java/org/opensearch/ml/engine/tools/VisualizationsTool.java

+3-9
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
package org.opensearch.ml.engine.tools;
77

88
import java.util.Arrays;
9-
import java.util.List;
109
import java.util.Locale;
1110
import java.util.Map;
1211
import java.util.Optional;
@@ -21,7 +20,7 @@
2120
import org.opensearch.index.IndexNotFoundException;
2221
import org.opensearch.index.query.BoolQueryBuilder;
2322
import org.opensearch.index.query.QueryBuilders;
24-
import org.opensearch.ml.common.spi.tools.Tool;
23+
import org.opensearch.ml.common.spi.tools.WithoutModelTool;
2524
import org.opensearch.ml.common.spi.tools.ToolAnnotation;
2625
import org.opensearch.search.SearchHits;
2726
import org.opensearch.search.builder.SearchSourceBuilder;
@@ -33,7 +32,7 @@
3332

3433
@Log4j2
3534
@ToolAnnotation(VisualizationsTool.TYPE)
36-
public class VisualizationsTool implements Tool {
35+
public class VisualizationsTool implements WithoutModelTool {
3736
public static final String NAME = "FindVisualizations";
3837
public static final String TYPE = "VisualizationTool";
3938
public static final String VERSION = "v1.0";
@@ -126,7 +125,7 @@ public boolean validate(Map<String, String> parameters) {
126125
return parameters.containsKey("input") && !Strings.isNullOrEmpty(parameters.get("input"));
127126
}
128127

129-
public static class Factory implements Tool.Factory<VisualizationsTool> {
128+
public static class Factory implements WithoutModelTool.Factory<VisualizationsTool> {
130129
private Client client;
131130

132131
private static Factory INSTANCE;
@@ -175,10 +174,5 @@ public String getDefaultType() {
175174
public String getDefaultVersion() {
176175
return null;
177176
}
178-
179-
@Override
180-
public List<String> getAllModelKeys() {
181-
return List.of();
182-
}
183177
}
184178
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
/*
2+
* Copyright OpenSearch Contributors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package org.opensearch.ml.common.spi.tools;
7+
8+
9+
import java.util.List;
10+
11+
/**
12+
* General tool interface.
13+
*/
14+
public interface WithoutModelTool extends Tool {
15+
/**
16+
* Tool factory which can create instance of {@link Tool}.
17+
* @param <T> The subclass this factory produces
18+
*/
19+
interface Factory<T extends WithoutModelTool> extends Tool.Factory<T> {
20+
/**
21+
* Get model id related field names
22+
* @return the list of all model id related field names
23+
*/
24+
default List<String> getAllModelKeys(){
25+
return List.of();
26+
}
27+
}
28+
}

0 commit comments

Comments
 (0)