Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .codegen.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{ "engineHash": "a87c352", "specHash": "dd7f7a9", "version": "10.13.0" }
{ "engineHash": "e392e8c", "specHash": "dd7f7a9", "version": "10.13.0" }
2 changes: 1 addition & 1 deletion docs/ai.md
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ See the endpoint docs at

<!-- sample post_ai_extract_structured -->
```
client.getAi().createAiExtractStructured(new AiExtractStructured.Builder(Arrays.asList(new AiItemBase(file.getId()))).fields(Arrays.asList(new AiExtractStructuredFieldsField.Builder("firstName").description("Person first name").displayName("First name").prompt("What is the your first name?").type("string").build(), new AiExtractStructuredFieldsField.Builder("lastName").description("Person last name").displayName("Last name").prompt("What is the your last name?").type("string").build(), new AiExtractStructuredFieldsField.Builder("dateOfBirth").description("Person date of birth").displayName("Birth date").prompt("What is the date of your birth?").type("date").build(), new AiExtractStructuredFieldsField.Builder("age").description("Person age").displayName("Age").prompt("How old are you?").type("float").build(), new AiExtractStructuredFieldsField.Builder("hobby").description("Person hobby").displayName("Hobby").prompt("What is your hobby?").type("multiSelect").options(Arrays.asList(new AiExtractStructuredFieldsOptionsField("guitar"), new AiExtractStructuredFieldsOptionsField("books"))).build())).aiAgent(aiExtractStructuredAgentBasicTextConfig).includeConfidenceScore(true).build())
client.getAi().createAiExtractStructured(new AiExtractStructured.Builder(Arrays.asList(new AiItemBase(file.getId()))).fields(Arrays.asList(new AiExtractStructuredFieldsField.Builder("firstName").description("Person first name").displayName("First name").prompt("What is the your first name?").type("string").build(), new AiExtractStructuredFieldsField.Builder("lastName").description("Person last name").displayName("Last name").prompt("What is the your last name?").type("string").build(), new AiExtractStructuredFieldsField.Builder("dateOfBirth").description("Person date of birth").displayName("Birth date").prompt("What is the date of your birth?").type("date").build(), new AiExtractStructuredFieldsField.Builder("age").description("Person age").displayName("Age").prompt("How old are you?").type("float").build(), new AiExtractStructuredFieldsField.Builder("hobby").description("Person hobby").displayName("Hobby").prompt("What is your hobby?").type("multiSelect").options(Arrays.asList(new AiExtractStructuredFieldsOptionsField("guitar"), new AiExtractStructuredFieldsOptionsField("books"))).build(), new AiExtractStructuredFieldsField.Builder("address").description("Person address").displayName("Address").prompt("Extract the full mailing address.").type("struct").fields(Arrays.asList(new AiExtractSubField.Builder("street").displayName("Street").type("string").build(), new AiExtractSubField.Builder("city").displayName("City").type("string").build(), new AiExtractSubField.Builder("state").displayName("State").type("string").build(), new AiExtractSubField.Builder("zip").displayName("Zip").type("string").build(), new AiExtractSubField.Builder("country").displayName("Country").type("string").build())).build(), new AiExtractStructuredFieldsField.Builder("work_history").description("Person work history").displayName("Work history").prompt("Extract each job as a row.").type("table").fields(Arrays.asList(new AiExtractSubField.Builder("job_title").displayName("Job title").type("string").build(), new AiExtractSubField.Builder("company").displayName("Company").type("string").build(), new AiExtractSubField.Builder("start_year").displayName("Start year").type("string").build(), new AiExtractSubField.Builder("end_year").displayName("End year").type("string").build())).build())).aiAgent(aiExtractStructuredAgentBasicTextConfig).includeConfidenceScore(true).includeReference(true).build())
```

### Arguments
Expand Down
62 changes: 61 additions & 1 deletion src/test/java/com/box/sdkgen/ai/AiITest.java
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
import com.box.sdkgen.schemas.aiextractstructured.AiExtractStructuredFieldsOptionsField;
import com.box.sdkgen.schemas.aiextractstructured.AiExtractStructuredMetadataTemplateField;
import com.box.sdkgen.schemas.aiextractstructuredresponse.AiExtractStructuredResponse;
import com.box.sdkgen.schemas.aiextractsubfield.AiExtractSubField;
import com.box.sdkgen.schemas.aiitemask.AiItemAsk;
import com.box.sdkgen.schemas.aiitemask.AiItemAskTypeField;
import com.box.sdkgen.schemas.aiitembase.AiItemBase;
Expand Down Expand Up @@ -263,7 +264,7 @@ public void testAiExtractStructuredWithFields() {
stringToByteStream(
String.join(
"",
"My name is John Doe. I was born in 4th July 1990. I am 34 years old. My hobby is guitar. My UUID is ",
"My name is John Doe. I was born in 4th July 1990. I am 34 years old. My hobby is guitar. I live at 900 Jefferson Ave, Redwood City, CA 94063, US. My work history: Software Engineer at Box from 2020 to 2024. My UUID is ",
getUuid()))));
FileFull file = uploadedFiles.getEntries().get(0);
delayInSeconds(5);
Expand Down Expand Up @@ -307,17 +308,76 @@ public void testAiExtractStructuredWithFields() {
Arrays.asList(
new AiExtractStructuredFieldsOptionsField("guitar"),
new AiExtractStructuredFieldsOptionsField("books")))
.build(),
new AiExtractStructuredFieldsField.Builder("address")
.description("Person address")
.displayName("Address")
.prompt("Extract the full mailing address.")
.type("struct")
.fields(
Arrays.asList(
new AiExtractSubField.Builder("street")
.displayName("Street")
.type("string")
.build(),
new AiExtractSubField.Builder("city")
.displayName("City")
.type("string")
.build(),
new AiExtractSubField.Builder("state")
.displayName("State")
.type("string")
.build(),
new AiExtractSubField.Builder("zip")
.displayName("Zip")
.type("string")
.build(),
new AiExtractSubField.Builder("country")
.displayName("Country")
.type("string")
.build()))
.build(),
new AiExtractStructuredFieldsField.Builder("work_history")
.description("Person work history")
.displayName("Work history")
.prompt("Extract each job as a row.")
.type("table")
.fields(
Arrays.asList(
new AiExtractSubField.Builder("job_title")
.displayName("Job title")
.type("string")
.build(),
new AiExtractSubField.Builder("company")
.displayName("Company")
.type("string")
.build(),
new AiExtractSubField.Builder("start_year")
.displayName("Start year")
.type("string")
.build(),
new AiExtractSubField.Builder("end_year")
.displayName("End year")
.type("string")
.build()))
.build()))
.aiAgent(aiExtractStructuredAgentBasicTextConfig)
.includeConfidenceScore(true)
.includeReference(true)
.build());
assert !(response.getConfidenceScore() == null);
assert !(response.getReference() == null);
assert !(response.getAiAgentInfo() == null);
assert convertToString(response.getAnswer().get("hobby"))
.equals(convertToString(Arrays.asList("guitar")));
assert convertToString(response.getAnswer().get("firstName")).equals("John");
assert convertToString(response.getAnswer().get("lastName")).equals("Doe");
assert convertToString(response.getAnswer().get("dateOfBirth")).equals("1990-07-04");
assert convertToString(response.getAnswer().get("age")).equals("34");
assert convertToString(response.getAnswer().get("address")).contains("Redwood City");
assert convertToString(response.getAnswer().get("address")).contains("CA");
assert convertToString(response.getAnswer().get("address")).contains("94063");
assert convertToString(response.getAnswer().get("work_history")).contains("Box");
assert response.getCompletionReason().equals("done");
client.getFiles().deleteFileById(file.getId());
}
Expand Down
Loading