-
Notifications
You must be signed in to change notification settings - Fork 342
Add ContainerFileCitationMessageAnnotation
#792
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 2 commits
275d905
c51fb6f
7f01dc9
12414b8
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,56 @@ | ||
| using NUnit.Framework; | ||
| using OpenAI.Containers; | ||
| using OpenAI.Responses; | ||
| using System; | ||
| using System.Collections.Generic; | ||
| using System.IO; | ||
| using System.Linq; | ||
|
|
||
| namespace OpenAI.Examples; | ||
|
|
||
| // This example uses experimental APIs which are subject to change. To use experimental APIs, | ||
| // please acknowledge their experimental status by suppressing the corresponding warning. | ||
| #pragma warning disable OPENAI001 | ||
|
|
||
| public partial class ResponseExamples | ||
| { | ||
| [Test] | ||
| public void Example10_CodeInterpreter() | ||
| { | ||
| OpenAIResponseClient client = new(model: "gpt-5", apiKey: Environment.GetEnvironmentVariable("OPENAI_API_KEY")); | ||
|
|
||
| CodeInterpreterToolContainer container = new(CodeInterpreterToolContainerConfiguration.CreateAutomaticContainerConfiguration()); | ||
| CodeInterpreterTool codeInterpreterTool = new(container); | ||
|
|
||
| ResponseCreationOptions options = new() | ||
| { | ||
| Tools = { codeInterpreterTool } | ||
| }; | ||
|
|
||
| List<ResponseItem> inputItems = | ||
| [ | ||
| ResponseItem.CreateUserMessageItem("Create a Excel spreadsheet that contains the mathematical times tables from 1-12."), | ||
| ]; | ||
|
|
||
| OpenAIResponse response = client.CreateResponse(inputItems, options); | ||
|
|
||
| MessageResponseItem message = response.OutputItems | ||
| .OfType<MessageResponseItem>() | ||
| .FirstOrDefault(); | ||
|
|
||
| ResponseContentPart contentPart = message.Content | ||
| .Where(part => part.Kind == ResponseContentPartKind.OutputText) | ||
| .FirstOrDefault(); | ||
|
|
||
| ContainerFileCitationMessageAnnotation containerFileCitation = contentPart.OutputTextAnnotations | ||
| .OfType<ContainerFileCitationMessageAnnotation>() | ||
| .FirstOrDefault(); | ||
|
|
||
| ContainerClient containerClient = new(apiKey: Environment.GetEnvironmentVariable("OPENAI_API_KEY")); | ||
| BinaryData fileBytes = containerClient.DownloadContainerFile(containerFileCitation.ContainerId, containerFileCitation.FileId); | ||
| using FileStream stream = File.OpenWrite($"{Guid.NewGuid()}.xlsx"); | ||
| fileBytes.ToStream().CopyTo(stream); | ||
| } | ||
| } | ||
|
|
||
| #pragma warning restore OPENAI001 | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,57 @@ | ||
| using NUnit.Framework; | ||
| using OpenAI.Containers; | ||
| using OpenAI.Responses; | ||
| using System; | ||
| using System.Collections.Generic; | ||
| using System.IO; | ||
| using System.Linq; | ||
| using System.Threading.Tasks; | ||
|
|
||
| namespace OpenAI.Examples; | ||
|
|
||
| // This example uses experimental APIs which are subject to change. To use experimental APIs, | ||
| // please acknowledge their experimental status by suppressing the corresponding warning. | ||
| #pragma warning disable OPENAI001 | ||
|
|
||
| public partial class ResponseExamples | ||
| { | ||
| [Test] | ||
| public async Task Example10_CodeInterpreterAsync() | ||
| { | ||
| OpenAIResponseClient client = new(model: "gpt-5", apiKey: Environment.GetEnvironmentVariable("OPENAI_API_KEY")); | ||
|
|
||
| CodeInterpreterToolContainer container = new(CodeInterpreterToolContainerConfiguration.CreateAutomaticContainerConfiguration()); | ||
| CodeInterpreterTool codeInterpreterTool = new(container); | ||
|
|
||
| ResponseCreationOptions options = new() | ||
| { | ||
| Tools = { codeInterpreterTool } | ||
| }; | ||
|
|
||
| List<ResponseItem> inputItems = | ||
| [ | ||
| ResponseItem.CreateUserMessageItem("Create a Excel spreadsheet that contains the mathematical times tables from 1-12."), | ||
joseharriaga marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| ]; | ||
|
|
||
| OpenAIResponse response = await client.CreateResponseAsync(inputItems, options); | ||
|
|
||
| MessageResponseItem message = response.OutputItems | ||
| .OfType<MessageResponseItem>() | ||
| .FirstOrDefault(); | ||
|
|
||
| ResponseContentPart contentPart = message.Content | ||
| .Where(part => part.Kind == ResponseContentPartKind.OutputText) | ||
| .FirstOrDefault(); | ||
|
|
||
| ContainerFileCitationMessageAnnotation containerFileCitation = contentPart.OutputTextAnnotations | ||
| .OfType<ContainerFileCitationMessageAnnotation>() | ||
| .FirstOrDefault(); | ||
|
|
||
| ContainerClient containerClient = new(apiKey: Environment.GetEnvironmentVariable("OPENAI_API_KEY")); | ||
| BinaryData fileBytes = await containerClient.DownloadContainerFileAsync(containerFileCitation.ContainerId, containerFileCitation.FileId); | ||
| using FileStream stream = File.OpenWrite($"{Guid.NewGuid()}.xlsx"); | ||
|
||
| fileBytes.ToStream().CopyTo(stream); | ||
| } | ||
| } | ||
|
|
||
| #pragma warning restore OPENAI001 | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,7 @@ | ||
| namespace OpenAI.Responses; | ||
|
|
||
| // CUSTOM: Renamed. | ||
| [CodeGenType("ContainerFileCitationBody")] | ||
| public partial class ContainerFileCitationMessageAnnotation | ||
| { | ||
| } |
Uh oh!
There was an error while loading. Please reload this page.