mirror of
https://github.com/microsoft/agent-framework.git
synced 2026-06-16 21:04:09 +08:00
52303a8d07
* Add Code Interpreter container file download samples (#3081) - Add Agent_OpenAI_Step06_CodeInterpreterFileDownload (Public OpenAI) - Add Agent_Step24_CodeInterpreterFileDownload (Microsoft Foundry) - Both samples demonstrate downloading cfile_/cntr_ container files via ContainerClient instead of the standard Files API - Update solution file and parent READMEs * Address review feedback: flatten nested foreach loops using SelectMany Addresses https://github.com/microsoft/agent-framework/pull/5014#discussion_r3046908449 and https://github.com/microsoft/agent-framework/pull/5014#discussion_r3046920209 --------- Co-authored-by: Roger Barreto <19890735+rogerbarreto@users.noreply.github.com> Co-authored-by: rogerbarreto <rogerbarreto@users.noreply.github.com>
52303a8d07
·
2026-04-17 16:55:03 +00:00
History
Code Interpreter File Download (OpenAI)
This sample demonstrates how to download files generated by Code Interpreter when using the OpenAI Responses API.
What this sample demonstrates
- Creating an agent with Code Interpreter tool using
ResponsesClient.AsAIAgent() - Generating files through Code Interpreter (e.g., CSV, Excel, images)
- Extracting container file citations from agent response annotations
- Downloading container files using the
ContainerClientAPI
Container files vs regular files
When Code Interpreter generates a file, the file is stored inside a container with a cntr_ prefixed ID. The file itself gets a cfile_ prefixed ID.
These container files cannot be downloaded using the standard Files API (GetOpenAIFileClient), which returns 404 for cfile_ IDs. Instead, you must use the Containers API (GetContainerClient) to download them:
// ❌ This does NOT work for container files
var filesClient = openAIClient.GetOpenAIFileClient();
await filesClient.DownloadFileAsync("cfile_..."); // Returns 404
// ✅ Use ContainerClient instead
var containerClient = openAIClient.GetContainerClient();
await containerClient.DownloadContainerFileAsync("cntr_...", "cfile_...");
The container ID and file ID are available from the ContainerFileCitationMessageAnnotation annotation in the response, accessible via CitationAnnotation.RawRepresentation.
Prerequisites
- .NET 10 SDK or later
- OpenAI API key with access to a model that supports Code Interpreter
Set the following environment variables:
$env:OPENAI_API_KEY="sk-..."
$env:OPENAI_CHAT_MODEL_NAME="gpt-4o-mini" # Optional, defaults to gpt-4o-mini
Run the sample
dotnet run
See also
- Code Interpreter File Download with Foundry — same scenario using Microsoft Foundry
- Code Interpreter — Code Interpreter without file download