Part of GPT‑RAG
Part of the GPT-RAG solution.
The GPT-RAG Orchestrator service is an agentic orchestration layer built on Azure AI Foundry Agent Service and the Semantic Kernel framework. It enables agent-based RAG workflows by coordinating multiple specialized agents—each with a defined role—to collaboratively generate accurate, context-aware responses for complex user queries.
The orchestrator uses Azure AI Foundry Agent Service for single-agent and connected-agent flows, leveraging its managed runtime for agent lifecycle, state management, and tool orchestration. For multi-agent scenarios, it integrates the Semantic Kernel Agent Framework to compose and coordinate specialized agents working together on tasks. Custom agent strategies enable developers to add domain-specific logic without modifying the core orchestration code.
Developers can extend the orchestrator by creating a new subclass of BaseAgentStrategy
, implementing the required initiate_agent_flow
method (along with any additional helpers), and registering it in AgentStrategyFactory.get_strategy
under a unique key.
Examples of available strategies include the Single Agent RAG Strategy and the NL2SQL Strategy.
Provision the infrastructure first by following the GPT-RAG repository instructions GPT-RAG. This ensures all required Azure resources (e.g., Container App, Storage, AI Search) are in place before deploying the web application.
Click to view software prerequisites
The machine used to customize and or deploy the service should have:
- Azure CLI: Install Azure CLI
- Azure Developer CLI (optional, if using azd): Install azd
- Git: Download Git
- Python 3.12: Download Python 3.12
- Docker CLI: Install Docker
- VS Code (recommended): Download VS Code
Click to view permissions requirements
To customize the service, your user should have the following roles:
Resource | Role | Description |
---|---|---|
App Configuration Store | App Configuration Data Owner | Full control over configuration settings |
Container Registry | AcrPush | Push and pull container images |
Key Vault | Key Vault Contributor | Manage Key Vault Secrets |
AI Search Service | Search Service Contributor | Create or update search service components |
AI Search Service | Search Index Data Contributor | Read and write index data |
Storage Account | Storage Blob Data Contributor | Read and write blob data |
AI Foundry Project | Azure AI Project User | Access and work with the AI Foundry project |
Cosmos DB | Cosmos DB Built-in Data Contributor | Read and write documents in Cosmos DB |
To deploy the service, assign these roles to your user or service principal:
Resource | Role | Description |
---|---|---|
App Configuration Store | App Configuration Data Reader | Read config |
Container Registry | AcrPush | Push images |
Azure Container App | Azure Container Apps Contributor | Manage Container Apps |
Ensure the deployment identity has these roles at the correct scope (subscription or resource group).
Make sure you're logged in to Azure before anything else:
az login
Clone this repository.
Just run:
azd env refresh
azd deploy
Important
Make sure you use the same subscription, resource group, environment name, and location from azd provision
.
You need to set the App Configuration endpoint and run the deploy script.
export APP_CONFIG_ENDPOINT="https://<your-app-config-name>.azconfig.io"
./scripts/deploy.sh
$env:APP_CONFIG_ENDPOINT = "https://<your-app-config-name>.azconfig.io"
.\scripts\deploy.ps1
Note
For earlier versions, use the corresponding release in the GitHub repository (e.g., v1.0.0 for the initial version).
We appreciate contributions! See CONTRIBUTING.md for guidelines on the Contributor License Agreement (CLA), code of conduct, and submitting pull requests.
This project may contain trademarks or logos. Authorized use of Microsoft trademarks or logos must follow Microsoft’s Trademark & Brand Guidelines. Modified versions must not imply sponsorship or cause confusion. Third-party trademarks are subject to their own policies.