Skip to content

Commit 55d8650

Browse files
committed
Removed googlevertexaicompletion model. Using just GoogleVertexAiChatCompletionModel for completion and chat completion
1 parent 7eabd29 commit 55d8650

File tree

7 files changed

+15
-50
lines changed

7 files changed

+15
-50
lines changed

x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/services/googlevertexai/GoogleVertexAiModel.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ public abstract class GoogleVertexAiModel extends RateLimitGroupingModel {
2525
private final GoogleVertexAiRateLimitServiceSettings rateLimitServiceSettings;
2626

2727
protected URI uri;
28+
protected URI nonStreamingUri;
2829

2930
public GoogleVertexAiModel(
3031
ModelConfigurations configurations,
@@ -60,6 +61,10 @@ public URI uri() {
6061
return uri;
6162
}
6263

64+
public URI nonStreamingUri() {
65+
return nonStreamingUri;
66+
}
67+
6368
@Override
6469
public int rateLimitGroupingHash() {
6570
// In VertexAI rate limiting is scoped to the project, region and model. URI already has this information so we are using that.

x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/services/googlevertexai/GoogleVertexAiService.java

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@
4242
import org.elasticsearch.xpack.inference.services.ServiceUtils;
4343
import org.elasticsearch.xpack.inference.services.googlevertexai.action.GoogleVertexAiActionCreator;
4444
import org.elasticsearch.xpack.inference.services.googlevertexai.completion.GoogleVertexAiChatCompletionModel;
45-
import org.elasticsearch.xpack.inference.services.googlevertexai.completion.GoogleVertexAiCompletionModel;
4645
import org.elasticsearch.xpack.inference.services.googlevertexai.embeddings.GoogleVertexAiEmbeddingsModel;
4746
import org.elasticsearch.xpack.inference.services.googlevertexai.embeddings.GoogleVertexAiEmbeddingsServiceSettings;
4847
import org.elasticsearch.xpack.inference.services.googlevertexai.request.GoogleVertexAiUnifiedChatCompletionRequest;
@@ -89,7 +88,7 @@ public class GoogleVertexAiService extends SenderService {
8988
InputType.INTERNAL_SEARCH
9089
);
9190

92-
private final ResponseHandler COMPLETION_HANDLER = new GoogleVertexAiUnifiedChatCompletionResponseHandler(
91+
public static final ResponseHandler COMPLETION_HANDLER = new GoogleVertexAiUnifiedChatCompletionResponseHandler(
9392
"Google VertexAI chat completion"
9493
);
9594

@@ -360,17 +359,7 @@ private static GoogleVertexAiModel createModel(
360359
context
361360
);
362361

363-
case CHAT_COMPLETION -> new GoogleVertexAiChatCompletionModel(
364-
inferenceEntityId,
365-
taskType,
366-
NAME,
367-
serviceSettings,
368-
taskSettings,
369-
secretSettings,
370-
context
371-
);
372-
373-
case COMPLETION -> new GoogleVertexAiCompletionModel(
362+
case CHAT_COMPLETION, COMPLETION -> new GoogleVertexAiChatCompletionModel(
374363
inferenceEntityId,
375364
taskType,
376365
NAME,

x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/services/googlevertexai/action/GoogleVertexAiActionCreator.java

Lines changed: 2 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@
77

88
package org.elasticsearch.xpack.inference.services.googlevertexai.action;
99

10-
import org.elasticsearch.ElasticsearchStatusException;
11-
import org.elasticsearch.rest.RestStatus;
1210
import org.elasticsearch.xpack.inference.external.action.ExecutableAction;
1311
import org.elasticsearch.xpack.inference.external.action.SenderExecutableAction;
1412
import org.elasticsearch.xpack.inference.external.action.SingleInputSenderExecutableAction;
@@ -23,13 +21,11 @@
2321
import org.elasticsearch.xpack.inference.services.googlevertexai.GoogleVertexAiResponseHandler;
2422
import org.elasticsearch.xpack.inference.services.googlevertexai.GoogleVertexAiUnifiedChatCompletionResponseHandler;
2523
import org.elasticsearch.xpack.inference.services.googlevertexai.completion.GoogleVertexAiChatCompletionModel;
26-
import org.elasticsearch.xpack.inference.services.googlevertexai.completion.GoogleVertexAiCompletionModel;
2724
import org.elasticsearch.xpack.inference.services.googlevertexai.embeddings.GoogleVertexAiEmbeddingsModel;
2825
import org.elasticsearch.xpack.inference.services.googlevertexai.request.GoogleVertexAiUnifiedChatCompletionRequest;
2926
import org.elasticsearch.xpack.inference.services.googlevertexai.rerank.GoogleVertexAiRerankModel;
3027
import org.elasticsearch.xpack.inference.services.googlevertexai.response.GoogleVertexAiCompletionResponseEntity;
3128

32-
import java.net.URISyntaxException;
3329
import java.util.Map;
3430
import java.util.Objects;
3531

@@ -42,10 +38,6 @@ public class GoogleVertexAiActionCreator implements GoogleVertexAiActionVisitor
4238

4339
private final ServiceComponents serviceComponents;
4440

45-
static final ResponseHandler COMPLETION_HANDLER = new GoogleVertexAiUnifiedChatCompletionResponseHandler(
46-
"Google VertexAI chat completion"
47-
);
48-
4941
static final ResponseHandler CHAT_COMPLETION_HANDLER = new GoogleVertexAiResponseHandler(
5042
"Google VertexAI completion",
5143
GoogleVertexAiCompletionResponseEntity::fromResponse,
@@ -81,36 +73,16 @@ public ExecutableAction create(GoogleVertexAiRerankModel model, Map<String, Obje
8173

8274
@Override
8375
public ExecutableAction create(GoogleVertexAiChatCompletionModel model, Map<String, Object> taskSettings) {
84-
8576
var failedToSendRequestErrorMessage = constructFailedToSendRequestMessage(COMPLETION_ERROR_PREFIX);
77+
8678
var manager = new GenericRequestManager<>(
8779
serviceComponents.threadPool(),
8880
model,
89-
COMPLETION_HANDLER,
81+
CHAT_COMPLETION_HANDLER,
9082
inputs -> new GoogleVertexAiUnifiedChatCompletionRequest(new UnifiedChatInput(inputs, USER_ROLE), model),
9183
ChatCompletionInput.class
9284
);
9385

9486
return new SingleInputSenderExecutableAction(sender, manager, failedToSendRequestErrorMessage, COMPLETION_ERROR_PREFIX);
9587
}
96-
97-
@Override
98-
public ExecutableAction create(GoogleVertexAiCompletionModel model, Map<String, Object> taskSettings) {
99-
var failedToSendRequestErrorMessage = constructFailedToSendRequestMessage(COMPLETION_ERROR_PREFIX);
100-
101-
var manager = new GenericRequestManager<>(serviceComponents.threadPool(), model, CHAT_COMPLETION_HANDLER, inputs -> {
102-
try {
103-
model.updateUri(inputs.stream());
104-
} catch (URISyntaxException e) {
105-
throw new ElasticsearchStatusException(
106-
"Error constructing URI for Google VertexAI completion",
107-
RestStatus.INTERNAL_SERVER_ERROR,
108-
e
109-
);
110-
}
111-
return new GoogleVertexAiUnifiedChatCompletionRequest(new UnifiedChatInput(inputs, USER_ROLE), model);
112-
}, ChatCompletionInput.class);
113-
114-
return new SingleInputSenderExecutableAction(sender, manager, failedToSendRequestErrorMessage, COMPLETION_ERROR_PREFIX);
115-
}
11688
}

x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/services/googlevertexai/action/GoogleVertexAiActionVisitor.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99

1010
import org.elasticsearch.xpack.inference.external.action.ExecutableAction;
1111
import org.elasticsearch.xpack.inference.services.googlevertexai.completion.GoogleVertexAiChatCompletionModel;
12-
import org.elasticsearch.xpack.inference.services.googlevertexai.completion.GoogleVertexAiCompletionModel;
1312
import org.elasticsearch.xpack.inference.services.googlevertexai.embeddings.GoogleVertexAiEmbeddingsModel;
1413
import org.elasticsearch.xpack.inference.services.googlevertexai.rerank.GoogleVertexAiRerankModel;
1514

@@ -23,5 +22,4 @@ public interface GoogleVertexAiActionVisitor {
2322

2423
ExecutableAction create(GoogleVertexAiChatCompletionModel model, Map<String, Object> taskSettings);
2524

26-
ExecutableAction create(GoogleVertexAiCompletionModel model, Map<String, Object> taskSettings);
2725
}

x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/services/googlevertexai/request/GoogleVertexAiUnifiedChatCompletionRequest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,8 @@ public GoogleVertexAiUnifiedChatCompletionRequest(UnifiedChatInput unifiedChatIn
3333

3434
@Override
3535
public HttpRequest createHttpRequest() {
36-
HttpPost httpPost = new HttpPost(model.uri());
36+
var uri = unifiedChatInput.stream() ? model.uri() : model.nonStreamingUri();
37+
HttpPost httpPost = new HttpPost(uri);
3738

3839
var requestEntity = new GoogleVertexAiUnifiedChatCompletionRequestEntity(unifiedChatInput);
3940

x-pack/plugin/inference/src/test/java/org/elasticsearch/xpack/inference/services/googlevertexai/action/GoogleVertexAiUnifiedChatCompletionActionTests.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
import static org.elasticsearch.xpack.inference.Utils.inferenceUtilityPool;
3939
import static org.elasticsearch.xpack.inference.Utils.mockClusterServiceEmpty;
4040
import static org.elasticsearch.xpack.inference.external.action.ActionUtils.constructFailedToSendRequestMessage;
41-
import static org.elasticsearch.xpack.inference.services.googlevertexai.action.GoogleVertexAiActionCreator.COMPLETION_HANDLER;
41+
import static org.elasticsearch.xpack.inference.services.googlevertexai.GoogleVertexAiService.COMPLETION_HANDLER;
4242
import static org.elasticsearch.xpack.inference.services.googlevertexai.action.GoogleVertexAiActionCreator.USER_ROLE;
4343
import static org.hamcrest.Matchers.is;
4444
import static org.mockito.ArgumentMatchers.any;
@@ -130,7 +130,7 @@ private ExecutableAction createAction(String location, String projectId, String
130130
var manager = new GenericRequestManager<>(
131131
threadPool,
132132
model,
133-
COMPLETION_HANDLER,
133+
COMPLETION_HANDLER,
134134
inputs -> new GoogleVertexAiUnifiedChatCompletionRequest(new UnifiedChatInput(inputs, USER_ROLE), model),
135135
ChatCompletionInput.class
136136
);

x-pack/plugin/inference/src/test/java/org/elasticsearch/xpack/inference/services/googlevertexai/completion/GoogleVertexAiChatCompletionModelTests.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ public void testBuildUri() throws URISyntaxException {
9191
"https://us-east1-aiplatform.googleapis.com/v1/projects/my-gcp-project"
9292
+ "/locations/global/publishers/google/models/gemini-1.5-flash-001:streamGenerateContent?alt=sse"
9393
);
94-
URI actualUri = GoogleVertexAiChatCompletionModel.buildUri(location, projectId, model);
94+
URI actualUri = GoogleVertexAiChatCompletionModel.buildUriStreaming(location, projectId, model);
9595
assertThat(actualUri, is(expectedUri));
9696
}
9797

@@ -113,6 +113,6 @@ public static GoogleVertexAiChatCompletionModel createCompletionModel(
113113
}
114114

115115
public static URI buildDefaultUri() throws URISyntaxException {
116-
return GoogleVertexAiChatCompletionModel.buildUri(DEFAULT_LOCATION, DEFAULT_PROJECT_ID, DEFAULT_MODEL_ID);
116+
return GoogleVertexAiChatCompletionModel.buildUriStreaming(DEFAULT_LOCATION, DEFAULT_PROJECT_ID, DEFAULT_MODEL_ID);
117117
}
118118
}

0 commit comments

Comments
 (0)