Add Azure OpenAI chat completions to your existing Python FastAPI app. Run one script, deploy with azd up.
This building block adds a fully working AI chat endpoint to an existing app:
- Azure OpenAI provisioned via Bicep (gpt-4o-mini, 10K TPM)
- Managed identity (keyless auth) -- no API keys to manage
- Drop-in ChatClient for Python with streaming support
/chatAPI endpoint added to your FastAPI app- Chat UI widget with floating button and chat panel
- Azure CLI (
az login) - Azure Developer CLI (
azd auth login) - Azure subscription with OpenAI access
- An existing Python FastAPI project (with
main.py,requirements.txt,azure.yaml,infra/main.bicep)
# 1. From your project root, run the script
c:\path\to\chat-building-block\add-chat.ps1
# 2. Deploy
azd upThat's it. Your app now has a /chat endpoint powered by Azure OpenAI.
The add-chat.ps1 script makes 9 changes to your project:
The script is idempotent -- running it again skips already-applied changes.
# Run from your project root (default -- uses the repo's own files)
c:\Users\hahuber\code\chat-building-block\add-chat.ps1
# Or specify a custom block source
.\add-chat.ps1 -BlockSource C:\path\to\chat-building-blockchat-building-block/
add-chat.ps1 # Automation script
block.yaml # Block manifest
code/python/
chat_client.py # Drop-in Azure OpenAI client
requirements.txt # Python dependencies
code/ui/
chat-widget.html # Floating chat widget HTML snippet
chat.css # Chat widget styles
chat.js # Chat widget client-side logic
infra/
chat.bicep # Azure OpenAI infrastructure
chat.parameters.json # Bicep parameters
hooks/
postprovision.ps1 # Post-provision hook (Windows)
postprovision.sh # Post-provision hook (Linux/Mac)
docs/
integration-guide.md # Detailed manual integration guide
tests/python/
test_chat_client.py # Unit tests for ChatClient
After deploying with azd up:
POST /chat
Content-Type: application/json
{"message": "Hello, how can you help me?"}
Look for the chat button in the bottom-right corner of your app.
For a step-by-step manual walkthrough (without the automation script), see docs/integration-guide.md.
