Skip to content

Commit 045af07

Browse files
committed
feat: add option to retrive generative provider metadata
1 parent 81b5488 commit 045af07

File tree

1 file changed

+37
-4
lines changed

1 file changed

+37
-4
lines changed

src/main/java/io/weaviate/client6/v1/api/collections/generate/GenerativeTask.java

Lines changed: 37 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ void appendTo(WeaviateProtoGenerative.GenerativeSearch.Builder req) {
5858
}
5959
}
6060

61-
public record Single(String prompt, boolean debug, List<GenerativeProvider> providers) {
61+
public record Single(String prompt, boolean debug, boolean returnMetadata, List<GenerativeProvider> providers) {
6262
public static Single of(String prompt) {
6363
return of(prompt, ObjectBuilder.identity());
6464
}
@@ -68,13 +68,17 @@ public static Single of(String prompt, Function<Builder, ObjectBuilder<Single>>
6868
}
6969

7070
public Single(Builder builder) {
71-
this(builder.prompt, builder.debug, builder.providers);
71+
this(builder.prompt,
72+
builder.debug,
73+
builder.returnMetadata,
74+
builder.providers);
7275
}
7376

7477
public static class Builder implements ObjectBuilder<Single> {
7578
private final String prompt;
7679
private final List<GenerativeProvider> providers = new ArrayList<>();
7780
private boolean debug = false;
81+
private boolean returnMetadata = false;
7882

7983
public Builder(String prompt) {
8084
this.prompt = prompt;
@@ -85,6 +89,16 @@ public Builder debug(boolean enable) {
8589
return this;
8690
}
8791

92+
/**
93+
* Return generative provider metadata alongside the query result. Metadata is
94+
* only available if {@link #generativeProvider(GenerativeProvider)} is set
95+
* explicitly..
96+
*/
97+
public Builder metadata(boolean enable) {
98+
this.returnMetadata = enable;
99+
return this;
100+
}
101+
88102
public Builder generativeProvider(GenerativeProvider provider) {
89103
providers.clear(); // Protobuf allows `repeated` but the server expects there to be 1.
90104
providers.add(provider);
@@ -102,6 +116,7 @@ public void appendTo(WeaviateProtoGenerative.GenerativeSearch.Builder req) {
102116
.map(provider -> {
103117
var proto = WeaviateProtoGenerative.GenerativeProvider.newBuilder();
104118
provider.appendTo(proto);
119+
proto.setReturnMetadata(returnMetadata);
105120
return proto.build();
106121
})
107122
.toList();
@@ -114,7 +129,8 @@ public void appendTo(WeaviateProtoGenerative.GenerativeSearch.Builder req) {
114129
}
115130
}
116131

117-
public record Grouped(String prompt, boolean debug, List<String> properties, List<GenerativeProvider> providers) {
132+
public record Grouped(String prompt, boolean debug, boolean returnMetadata, List<String> properties,
133+
List<GenerativeProvider> providers) {
118134
public static Grouped of(String prompt) {
119135
return of(prompt, ObjectBuilder.identity());
120136
}
@@ -124,14 +140,20 @@ public static Grouped of(String prompt, Function<Builder, ObjectBuilder<Grouped>
124140
}
125141

126142
public Grouped(Builder builder) {
127-
this(builder.prompt, builder.debug, builder.properties, builder.providers);
143+
this(
144+
builder.prompt,
145+
builder.debug,
146+
builder.returnMetadata,
147+
builder.properties,
148+
builder.providers);
128149
}
129150

130151
public static class Builder implements ObjectBuilder<Grouped> {
131152
private final String prompt;
132153
private final List<GenerativeProvider> providers = new ArrayList<>();
133154
private final List<String> properties = new ArrayList<>();
134155
private boolean debug = false;
156+
private boolean returnMetadata = false;
135157

136158
public Builder(String prompt) {
137159
this.prompt = prompt;
@@ -152,6 +174,16 @@ public Builder generativeProvider(GenerativeProvider provider) {
152174
return this;
153175
}
154176

177+
/**
178+
* Return generative provider metadata alongside the query result. Metadata is
179+
* only available if {@link #generativeProvider(GenerativeProvider)} is set
180+
* explicitly..
181+
*/
182+
public Builder metadata(boolean enable) {
183+
this.returnMetadata = enable;
184+
return this;
185+
}
186+
155187
public Builder debug(boolean enable) {
156188
this.debug = enable;
157189
return this;
@@ -179,6 +211,7 @@ public void appendTo(WeaviateProtoGenerative.GenerativeSearch.Builder req) {
179211
.map(provider -> {
180212
var proto = WeaviateProtoGenerative.GenerativeProvider.newBuilder();
181213
provider.appendTo(proto);
214+
proto.setReturnMetadata(returnMetadata);
182215
return proto.build();
183216
})
184217
.toList();

0 commit comments

Comments
 (0)