Skip to content

Commit 9cb401c

Browse files
author
Max Hniebergall
committed
Improvements to request serialization
1 parent 2846942 commit 9cb401c

File tree

2 files changed

+17
-28
lines changed

2 files changed

+17
-28
lines changed

x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/inference/action/UnifiedCompletionRequest.java

Lines changed: 1 addition & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -42,9 +42,7 @@ public record UnifiedCompletionRequest(
4242
@Nullable String user
4343
) implements Writeable {
4444

45-
public sealed interface Content extends NamedWriteable permits ContentObjects, ContentString {
46-
void toXContent(XContentBuilder builder, ToXContent.Params params) throws IOException;
47-
}
45+
public sealed interface Content extends NamedWriteable permits ContentObjects, ContentString {}
4846

4947
@SuppressWarnings("unchecked")
5048
static final ConstructingObjectParser<UnifiedCompletionRequest, Void> PARSER = new ConstructingObjectParser<>(
@@ -177,17 +175,6 @@ public void writeTo(StreamOutput out) throws IOException {
177175
out.writeCollection(contentObjects);
178176
}
179177

180-
@Override
181-
public void toXContent(XContentBuilder builder, ToXContent.Params params) throws IOException {
182-
builder.startArray();
183-
for (ContentObject contentObject : contentObjects) {
184-
builder.startObject();
185-
contentObject.toXContentObject(builder, params);
186-
builder.endObject();
187-
}
188-
builder.endArray();
189-
}
190-
191178
@Override
192179
public String getWriteableName() {
193180
return NAME;
@@ -215,13 +202,6 @@ public void writeTo(StreamOutput out) throws IOException {
215202
out.writeString(type);
216203
}
217204

218-
public XContentBuilder toXContentObject(XContentBuilder builder, ToXContent.Params params) throws IOException {
219-
builder.startObject();
220-
builder.field("text", text);
221-
builder.field("type", type);
222-
builder.endObject();
223-
return builder;
224-
}
225205
}
226206

227207
public record ContentString(String content) implements Content, NamedWriteable {

x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/external/request/openai/OpenAiUnifiedChatCompletionRequestEntity.java

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -101,11 +101,21 @@ public XContentBuilder toXContent(XContentBuilder builder, Params params) throws
101101
for (UnifiedCompletionRequest.Message message : messages) {
102102
builder.startObject();
103103
{
104-
builder.field(CONTENT_FIELD);
105-
message.content().toXContent(builder, params);
104+
switch (message.content()) {
105+
case UnifiedCompletionRequest.ContentString contentString -> builder.field(CONTENT_FIELD, contentString.content());
106+
case UnifiedCompletionRequest.ContentObjects contentObjects -> {
107+
for (UnifiedCompletionRequest.ContentObject contentObject : contentObjects.contentObjects()) {
108+
builder.startObject(CONTENT_FIELD);
109+
builder.field("text", contentObject.text());
110+
builder.field("type", contentObject.type());
111+
builder.endObject();
112+
}
113+
}
114+
}
115+
106116
builder.field(ROLE_FIELD, message.role());
107117
if (message.name() != null) {
108-
builder.field("name", message.name());// <---- HERE
118+
builder.field("name", message.name());
109119
}
110120
if (message.toolCallId() != null) {
111121
builder.field("tool_call_id", message.toolCallId());
@@ -144,10 +154,9 @@ public XContentBuilder toXContent(XContentBuilder builder, Params params) throws
144154
builder.field(NUMBER_OF_RETURNED_CHOICES_FIELD, n);
145155
}
146156
if (stop != null) {
147-
if (stop instanceof UnifiedCompletionRequest.StopString) {
148-
builder.field(STOP_FIELD, ((UnifiedCompletionRequest.StopString) stop).value());
149-
} else if (stop instanceof UnifiedCompletionRequest.StopValues) {
150-
builder.field(STOP_FIELD, ((UnifiedCompletionRequest.StopValues) stop).values());
157+
switch (stop) {
158+
case UnifiedCompletionRequest.StopString stopString -> builder.field(STOP_FIELD, stopString.value());
159+
case UnifiedCompletionRequest.StopValues stopValues -> builder.field(STOP_FIELD, stopValues.values());
151160
}
152161
}
153162
if (temperature != null) {

0 commit comments

Comments
 (0)