# Code Interpreter File Download (Microsoft Foundry) This sample demonstrates how to download files generated by Code Interpreter when using Microsoft Foundry. ## What this sample demonstrates - Creating an agent with Code Interpreter tool using `AIProjectClient.AsAIAgent()` - Generating files through Code Interpreter (e.g., CSV, Excel, images) - Extracting container file citations from agent response annotations - Downloading container files using the `ContainerClient` via `AIProjectClient.GetProjectOpenAIClient()` ## 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** to download them. ### Getting the ContainerClient with Foundry `AzureOpenAIClient.GetContainerClient()` is not supported and throws `InvalidOperationException`. Instead, use the project's OpenAI client which inherits directly from `OpenAI.OpenAIClient`: ```csharp // ❌ AzureOpenAIClient does not support ContainerClient var azureClient = new AzureOpenAIClient(endpoint, credential); azureClient.GetContainerClient(); // Throws InvalidOperationException // ✅ Use AIProjectClient's project OpenAI client var containerClient = aiProjectClient.GetProjectOpenAIClient().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 - Microsoft Foundry service endpoint and deployment configured - Azure CLI installed and authenticated (`az login`) Set the following environment variables: ```powershell $env:AZURE_AI_PROJECT_ENDPOINT="https://your-foundry-service.services.ai.azure.com/api/projects/your-foundry-project" $env:AZURE_AI_MODEL_DEPLOYMENT_NAME="gpt-4o-mini" # Optional, defaults to gpt-4o-mini ``` ## Run the sample ```powershell dotnet run ``` ## See also - [Code Interpreter File Download with OpenAI](../../../02-agents/AgentWithOpenAI/Agent_OpenAI_Step06_CodeInterpreterFileDownload/) — same scenario using Public OpenAI - [Code Interpreter](../Agent_Step14_CodeInterpreter/) — Code Interpreter without file download