Images and voice
For the bundled application hosted in Foundry, start by choosing where the image is processed. Extracting a diagram during ingestion is not the same as sending image pixels with a chat prompt.
Choose a scenario
| You want to… | Shipped hosted path |
|---|---|
| Ask about diagrams in a shared document collection | Native Foundry IQ Blob ingestion can verbalize images; the hosted agent retrieves the resulting content through the knowledge base. |
| Attach a document to this conversation | Optional Agent App Ingestion processes PDF uploads. This is conversation-scoped retrieval, not direct image input to the model. |
| Paste a screenshot and ask the model to inspect it | Not implemented by the bundled hosted adapter. Its Responses input is text-only; the UI upload handler accepts PDFs, not standalone images. |
| Speak to the agent or receive spoken answers | No shipped end-to-end voice flow in the bundled UI/hosted adapter. A Speech resource or an audio-capable model does not enable one. |
Use the hosted default strategy, maf_lite, for these recipes.
multimodal is not admitted by the hosted runtime. Do not select that classic
strategy to enable hosted image retrieval.
Ground answers in document images
Result: a text answer grounded in content extracted from documents, including image descriptions. This does not make the hosted agent a direct vision endpoint.
Before starting, use a working hosted deployment with Foundry IQ retrieval. You need deployment/configuration access, permission to upload test documents to the configured Blob container, and an approved test document with a clearly identifiable diagram. Use a test environment for model or ingestion changes. The Search ingestion identity needs source/model access independently of the signed-in user's retrieval access. In private deployments, follow Network isolation for connected-runner and native Blob connectivity checks. Do not remove source permissions or switch to a service identity to make an allow/deny test pass.
-
Select native Blob ingestion before following the full-stack deployment workflow:
azd env set RETRIEVAL_BACKEND foundry_iq azd env set FOUNDRY_IQ_PATTERN azureBlob azd env set FOUNDRY_IQ_KNOWLEDGE_SOURCE_KIND azureBlob azd env set FOUNDRY_IQ_CONTENT_EXTRACTION_MODE standard -
Check the deployed model and extraction prerequisites. The shipped template enables image verbalization and supplies a chat completion model only for its supported Content Understanding model names.
gpt-4.1is one supported choice; the checked-in default chat model,gpt-5-nano, is not in that template allowlist. Do not assume the default enables this image-processing path. Use the model configuration and Microsoft's Blob knowledge source prerequisites to select an available model/version and supported Content Understanding region. Standard extraction also needs the Foundry AI Services endpoint and an embedding deployment. In the checked-inmain.parameters.json, the chat entry inmodelDeploymentListhascanonical_name: CHAT_DEPLOYMENT_NAME: itsmodel.nameis the model family, while itsnameis the deployment name. Keep the selected model version and regional quota compatible with that entry. - Apply changes through the full deployment workflow. Inspect the provisioned
Blob knowledge source: expect
contentExtractionModeto bestandard,disableImageVerbalizationto befalse, and a non-nullchatCompletionModelbound to the intended deployment. Native Blob ingestion does not require the optional ingestion Container App. - Upload the approved document to the configured source container/folder and wait for its ingestion to complete. Ask a specific question whose answer depends on the diagram, not just its surrounding prose.
- Check the answer against the diagram and open its source reference. Repeat as a user who must not see the document: that content must not appear. A correct answer for one user is not an authorization test.
Microsoft's service documentation can describe newer API capabilities than the pinned release. Keep the release's API configuration; do not upgrade an API version merely to match a documentation example.
Attach a PDF to a conversation
Result: the PDF is ingested and retrieved within the caller's conversation. It is not forwarded as an image attachment to the chat model. Start with a text-bearing PDF. A scanned PDF or a diagram-only page needs successful extraction; upload acceptance alone does not prove its visual content is available to retrieval.
- Follow Ingestion and conversation uploads to select
DEPLOY_INGESTION_CONTAINER_APP=truethrough the full deployment workflow. Fresh bundled deployments default tofalse, which hides and rejects uploads. -
For a native Blob primary source, configure the Foundry IQ conversation-upload source as well:
FOUNDRY_IQ_CONVERSATION_UPLOAD_ENABLED=trueand a provisionedFOUNDRY_IQ_CONVERSATION_KNOWLEDGE_SOURCE_NAME. Retain the pinned2026-05-01-previewAPI required by this upload filter. Enabling ingestion alone does not connect uploads to knowledge-base retrieval. The source name identifies the registered knowledge source, not a URL or conversation ID. Runtime settings use App Configuration labelagent-lz; they are not automaticallyazd env setdeployment inputs. An operator with App Configuration data-write permission can set the nonsecret opt-in using Entra authentication (replace<store-name>with the store name, not its endpoint):az appconfig kv set --name "<store-name>" --auth-mode login --label agent-lz --key FOUNDRY_IQ_CONVERSATION_UPLOAD_ENABLED --value trueRetain the provisioned source name and rerun the full workflow to reconcile the knowledge source and deploy applications with the updated settings. 3. Sign in with an eligible user and send a text message first to establish the hosted conversation identifier. Attach a small PDF and ask a question specific to its contents. The handler accepts at most five PDFs, 15 MiB each and 25 MiB combined. Anonymous Copilot sessions cannot upload. 4. Expect a processed-files confirmation and an answer grounded in that PDF. Test a different user's conversation to confirm the upload is not exposed.
The optional ingestion component also has a MULTIMODAL document-processing
setting for extracting and captioning figures. It does not enable the hosted
multimodal strategy, add image prompt input, or alter native Blob processing.
Do not change it as a workaround for rejected screenshot uploads.
Diagnose a missing image answer
- No attachment control: check the effective ingestion selection first. Native Blob ingestion alone never enables conversation uploads.
- PDF processing failed: the UI does not send the question after an ingestion failure. Reattach the PDF and retry after resolving the reported ingestion problem; retain the UI's reference ID for support.
- PDF processed, but answer uses only the shared collection: verify the conversation-upload knowledge source, conversation ID and authenticated caller ownership. The optional upload source can be skipped or fail without failing shared-corpus retrieval. A successful chat response is not proof it used the PDF.
- Diagram missing from the answer: check ingestion completion, extracted
content and the provisioned chat model binding before changing prompts.
An unsupported model name can leave the Blob source's
chatCompletionModelnull.
Record the previous model/source settings before changing them. Restore those inputs and rerun the matching full workflow to undo a configuration experiment; do not delete indexes or documents as a retry step. Provisioning-managed settings can overwrite portal edits. Runtime settings load at startup: deploy a new hosted agent version and reload the affected UI/ingestion services through the documented deployment workflow, rather than trying to restart a classic orchestrator Container App. See Configuration and Hosted agents.
Direct images or voice need an application extension
For screenshot inspection, implement a caller and adapter that validate and forward image content to a compatible model; changing only the model deployment does not change this application's text-only contract. See Microsoft's vision input guide.
For voice, build a client/service integration for capture, transcription or realtime audio and playback. Microsoft's Realtime audio guide describes the service capability, not a bundled UI feature. Use Build your own application for the extension boundary. Preserve user authentication, OBO and source authorization when connecting either extension to retrieval.