diff --git a/.codegen.json b/.codegen.json index cc90bbb1..d1da2423 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "f6257bd", "specHash": "0043492", "version": "0.3.1" } +{ "engineHash": "f6257bd", "specHash": "e95d6fa", "version": "0.3.1" } diff --git a/Box.Sdk.Gen.Tests.Integration/Test/Ai/AiManagerTests.cs b/Box.Sdk.Gen.Tests.Integration/Test/Ai/AiManagerTests.cs index 6bc31cd0..c73dcc78 100644 --- a/Box.Sdk.Gen.Tests.Integration/Test/Ai/AiManagerTests.cs +++ b/Box.Sdk.Gen.Tests.Integration/Test/Ai/AiManagerTests.cs @@ -16,7 +16,7 @@ public AiManagerTests() { [TestMethod] public async System.Threading.Tasks.Task TestAskAiSingleItem() { FileFull fileToAsk = await new CommonsManager().UploadNewFileAsync(); - AiResponse response = await client.Ai.CreateAiAskAsync(requestBody: new AiAsk(mode: "single_item_qa", prompt: "which direction sun rises", items: Array.AsReadOnly(new [] {new AiAskItemsField(id: fileToAsk.Id, type: AiAskItemsTypeField.File) { Content = "Sun rises in the East" }}))); + AiResponse response = await client.Ai.CreateAiAskAsync(requestBody: new AiAsk(mode: AiAskModeField.SingleItemQa, prompt: "which direction sun rises", items: Array.AsReadOnly(new [] {new AiAskItemsField(id: fileToAsk.Id, type: AiAskItemsTypeField.File) { Content = "Sun rises in the East" }}))); Assert.IsTrue(response.Answer.Contains("East")); Assert.IsTrue(response.CompletionReason == "done"); await client.Files.DeleteFileByIdAsync(fileId: fileToAsk.Id); @@ -26,7 +26,7 @@ public async System.Threading.Tasks.Task TestAskAiSingleItem() { public async System.Threading.Tasks.Task TestAskAiMultipleItems() { FileFull fileToAsk1 = await new CommonsManager().UploadNewFileAsync(); FileFull fileToAsk2 = await new CommonsManager().UploadNewFileAsync(); - AiResponse response = await client.Ai.CreateAiAskAsync(requestBody: new AiAsk(mode: "multiple_item_qa", prompt: "Which direction sun rises?", items: Array.AsReadOnly(new [] {new AiAskItemsField(id: fileToAsk1.Id, type: AiAskItemsTypeField.File) { Content = "Earth goes around the sun" },new AiAskItemsField(id: fileToAsk2.Id, type: AiAskItemsTypeField.File) { Content = "Sun rises in the East in the morning" }}))); + AiResponse response = await client.Ai.CreateAiAskAsync(requestBody: new AiAsk(mode: AiAskModeField.MultipleItemQa, prompt: "Which direction sun rises?", items: Array.AsReadOnly(new [] {new AiAskItemsField(id: fileToAsk1.Id, type: AiAskItemsTypeField.File) { Content = "Earth goes around the sun" },new AiAskItemsField(id: fileToAsk2.Id, type: AiAskItemsTypeField.File) { Content = "Sun rises in the East in the morning" }}))); Assert.IsTrue(response.Answer.Contains("East")); Assert.IsTrue(response.CompletionReason == "done"); await client.Files.DeleteFileByIdAsync(fileId: fileToAsk1.Id); diff --git a/Box.Sdk.Gen/Schemas/AiAsk/AiAsk.cs b/Box.Sdk.Gen/Schemas/AiAsk/AiAsk.cs index 93c7fd4f..1d595830 100644 --- a/Box.Sdk.Gen/Schemas/AiAsk/AiAsk.cs +++ b/Box.Sdk.Gen/Schemas/AiAsk/AiAsk.cs @@ -8,6 +8,13 @@ namespace Box.Sdk.Gen.Schemas { public class AiAsk { + /// + /// The mode specifies if this request is for a single or multiple items. If you select `single_item_qa` the `items` array can have one element only. Selecting `multiple_item_qa` allows you to provide up to 25 items. + /// + [JsonPropertyName("mode")] + [JsonConverter(typeof(StringEnumConverter))] + public StringEnum Mode { get; } + /// /// The prompt provided by the client to be answered by the LLM. The prompt's length is limited to 10000 characters. /// @@ -24,7 +31,15 @@ public class AiAsk { [JsonPropertyName("items")] public IReadOnlyList Items { get; } - public AiAsk(string prompt, IReadOnlyList items) { + public AiAsk(AiAskModeField mode, string prompt, IReadOnlyList items) { + Mode = mode; + Prompt = prompt; + Items = items; + } + + [JsonConstructorAttribute] + internal AiAsk(StringEnum mode, string prompt, IReadOnlyList items) { + Mode = mode; Prompt = prompt; Items = items; } diff --git a/Box.Sdk.Gen/Schemas/AiAsk/AiAskModeField.cs b/Box.Sdk.Gen/Schemas/AiAsk/AiAskModeField.cs new file mode 100644 index 00000000..303475d4 --- /dev/null +++ b/Box.Sdk.Gen/Schemas/AiAsk/AiAskModeField.cs @@ -0,0 +1,10 @@ +using System.ComponentModel; + +namespace Box.Sdk.Gen.Schemas { + public enum AiAskModeField { + [Description("multiple_item_qa")] + MultipleItemQa, + [Description("single_item_qa")] + SingleItemQa + } +} \ No newline at end of file diff --git a/docs/Ai.md b/docs/Ai.md index 7dc81147..78d0d31a 100644 --- a/docs/Ai.md +++ b/docs/Ai.md @@ -15,7 +15,7 @@ See the endpoint docs at ``` -await client.Ai.CreateAiAskAsync(requestBody: new AiAsk(mode: "multiple_item_qa", prompt: "Which direction sun rises?", items: Array.AsReadOnly(new [] {new AiAskItemsField(id: fileToAsk1.Id, type: AiAskItemsTypeField.File) { Content = "Earth goes around the sun" },new AiAskItemsField(id: fileToAsk2.Id, type: AiAskItemsTypeField.File) { Content = "Sun rises in the East in the morning" }}))); +await client.Ai.CreateAiAskAsync(requestBody: new AiAsk(mode: AiAskModeField.MultipleItemQa, prompt: "Which direction sun rises?", items: Array.AsReadOnly(new [] {new AiAskItemsField(id: fileToAsk1.Id, type: AiAskItemsTypeField.File) { Content = "Earth goes around the sun" },new AiAskItemsField(id: fileToAsk2.Id, type: AiAskItemsTypeField.File) { Content = "Sun rises in the East in the morning" }}))); ``` ### Arguments