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.
Before deploying the application, you must provision the infrastructure as described in the GPT-RAG repo. This includes creating all necessary Azure resources required to support the application runtime.
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
Initialize the template:
azd init -t azure/gpt-rag-orchestrator
Important
Use the same environment name with azd init
as in the infrastructure deployment to keep components consistent.
Update env variables then deploy:
azd env refresh
azd deploy
Important
Run azd env refresh
with the same subscription and resource group used in the infrastructure deployment.
Aqui está uma versão mais clara, direta e consistente da instrução:
To deploy using a script, first clone the repository, set the App Configuration endpoint, and then run the deployment script.
git clone https://github.com/Azure/gpt-rag-orchestrator.git
$env:APP_CONFIG_ENDPOINT = "https://<your-app-config-name>.azconfig.io"
cd gpt-rag-orchestrator
.\scripts\deploy.ps1
git clone https://github.com/Azure/gpt-rag-orchestrator.git
export APP_CONFIG_ENDPOINT="https://<your-app-config-name>.azconfig.io"
cd gpt-rag-orchestrator
./scripts/deploy.sh
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 for guidelines on 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.