Skip to content

Commit 46ef9b6

Browse files
committed
Huge simplification of the bul inference runner & operator
1 parent 38b98ee commit 46ef9b6

File tree

4 files changed

+15
-14
lines changed

4 files changed

+15
-14
lines changed

x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/inference/InferenceFunctionEvaluator.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,13 @@
1010
import org.elasticsearch.action.ActionListener;
1111
import org.elasticsearch.xpack.esql.core.expression.Expression;
1212
import org.elasticsearch.xpack.esql.core.expression.FoldContext;
13+
import org.elasticsearch.xpack.esql.inference.bulk.BulkInferenceRunner;
1314

1415
public interface InferenceFunctionEvaluator {
1516

1617
void eval(FoldContext foldContext, ActionListener<Expression> listener);
1718

1819
interface Factory {
19-
InferenceFunctionEvaluator get(InferenceRunner inferenceRunner);
20+
InferenceFunctionEvaluator get(BulkInferenceRunner inferenceRunner);
2021
}
2122
}

x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/inference/textembedding/TextEmbeddingFunctionEvaluator.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,20 +21,20 @@
2121
import org.elasticsearch.xpack.esql.core.type.DataType;
2222
import org.elasticsearch.xpack.esql.expression.function.inference.TextEmbedding;
2323
import org.elasticsearch.xpack.esql.inference.InferenceFunctionEvaluator;
24-
import org.elasticsearch.xpack.esql.inference.InferenceRunner;
24+
import org.elasticsearch.xpack.esql.inference.bulk.BulkInferenceRunner;
2525

2626
import java.util.ArrayList;
2727
import java.util.List;
2828

2929
public class TextEmbeddingFunctionEvaluator implements InferenceFunctionEvaluator {
3030

31-
private final InferenceRunner inferenceRunner;
31+
private final BulkInferenceRunner bulkInferenceRunner;
3232

3333
private final TextEmbedding f;
3434

35-
public TextEmbeddingFunctionEvaluator(TextEmbedding f, InferenceRunner inferenceRunner) {
35+
public TextEmbeddingFunctionEvaluator(TextEmbedding f, BulkInferenceRunner bulkInferenceRunner) {
3636
this.f = f;
37-
this.inferenceRunner = inferenceRunner;
37+
this.bulkInferenceRunner = bulkInferenceRunner;
3838
}
3939

4040
@Override
@@ -45,7 +45,7 @@ public void eval(FoldContext foldContext, ActionListener<Expression> listener) {
4545
String inferenceId = BytesRefs.toString(f.inferenceId().fold(foldContext));
4646
String inputText = BytesRefs.toString(f.inputText().fold(foldContext));
4747

48-
inferenceRunner.execute(inferenceRequest(inferenceId, inputText), listener.map(this::parseInferenceResponse));
48+
//bulkInferenceRunner.executeBulk(inferenceRequest(inferenceId, inputText), listener.map(this::parseInferenceResponse));
4949
}
5050

5151
private InferenceAction.Request inferenceRequest(String inferenceId, String inputText) {

x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/optimizer/LogicalPlanPreOptimizer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ public class LogicalPlanPreOptimizer {
2828
private final List<PreOptimizerRule> rules;
2929

3030
public LogicalPlanPreOptimizer(TransportActionServices services, LogicalPreOptimizerContext preOptimizerContext) {
31-
rules = List.of(new InferenceFunctionConstantFolding(services.inferenceRunner(), preOptimizerContext.foldCtx()));
31+
rules = List.of(new InferenceFunctionConstantFolding(services.bulkInferenceRunner(), preOptimizerContext.foldCtx()));
3232
}
3333

3434
/**

x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/optimizer/rules/logical/preoptimizer/InferenceFunctionConstantFolding.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
import org.elasticsearch.xpack.esql.core.expression.Expression;
1313
import org.elasticsearch.xpack.esql.core.expression.FoldContext;
1414
import org.elasticsearch.xpack.esql.expression.function.inference.InferenceFunction;
15-
import org.elasticsearch.xpack.esql.inference.InferenceRunner;
15+
import org.elasticsearch.xpack.esql.inference.bulk.BulkInferenceRunner;
1616
import org.elasticsearch.xpack.esql.plan.logical.LogicalPlan;
1717

1818
import java.util.ArrayList;
@@ -31,17 +31,17 @@
3131
* appear after the first round of folding.
3232
*/
3333
public class InferenceFunctionConstantFolding implements PreOptimizerRule {
34-
private final InferenceRunner inferenceRunner;
34+
private final BulkInferenceRunner bulkInferenceRunner;
3535
private final FoldContext foldContext;
3636

3737
/**
3838
* Creates a new instance of the InferenceFunctionConstantFolding rule.
3939
*
40-
* @param inferenceRunner the inference runner to use for evaluating inference functions
41-
* @param foldContext the fold context to use for evaluating inference functions
40+
* @param bulkInferenceRunner the inference runner to use for evaluating inference functions
41+
* @param foldContext the fold context to use for evaluating inference functions
4242
*/
43-
public InferenceFunctionConstantFolding(InferenceRunner inferenceRunner, FoldContext foldContext) {
44-
this.inferenceRunner = inferenceRunner;
43+
public InferenceFunctionConstantFolding(BulkInferenceRunner bulkInferenceRunner, FoldContext foldContext) {
44+
this.bulkInferenceRunner = bulkInferenceRunner;
4545
this.foldContext = foldContext;
4646
}
4747

@@ -139,6 +139,6 @@ private List<InferenceFunction<?>> collectFoldableInferenceFunctions(LogicalPlan
139139
* @param listener the listener to notify when the evaluation is complete
140140
*/
141141
private void foldInferenceFunction(InferenceFunction<?> inferenceFunction, ActionListener<Expression> listener) {
142-
inferenceFunction.inferenceEvaluatorFactory().get(inferenceRunner).eval(foldContext, listener);
142+
inferenceFunction.inferenceEvaluatorFactory().get(bulkInferenceRunner).eval(foldContext, listener);
143143
}
144144
}

0 commit comments

Comments
 (0)